Skip to content

Commit 37ae832

Browse files
lukefromdcraveit65
authored andcommitted
Accessibility: white/black applet handles in GNOME high contrast themes
Special case the GNOME HighContrast and HighContrastInverse themes to give max contrast on tray and window list applet handles. Follow-on to 2e0a74d
1 parent 5f38df2 commit 37ae832

File tree

1 file changed

+60
-27
lines changed

1 file changed

+60
-27
lines changed

mate-panel/libmate-panel-applet-private/panel-applet-frame-dbus.c

Lines changed: 60 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,8 @@ mate_panel_applet_frame_dbus_change_background (MatePanelAppletFrame *frame,
245245
MatePanelAppletFrameDBus *dbus_frame = MATE_PANEL_APPLET_FRAME_DBUS (frame);
246246
MatePanelAppletFrameDBusPrivate *priv = dbus_frame->priv;
247247
char *bg_str;
248+
gchar *theme_name;
249+
GtkSettings *settings;
248250

249251
bg_str = _mate_panel_applet_frame_get_background_string (
250252
frame, PANEL_WIDGET (gtk_widget_get_parent (GTK_WIDGET (frame))), type);
@@ -264,34 +266,65 @@ mate_panel_applet_frame_dbus_change_background (MatePanelAppletFrame *frame,
264266
}
265267
GtkCssProvider *provider;
266268
provider = gtk_css_provider_new ();
267-
gtk_css_provider_load_from_data (provider,
268-
"MatePanelAppletFrameDBus > MatePanelAppletFrameDBus { \n"
269-
"border-style: solid; \n"
270-
"border-width: 3px; \n"
271-
"border-color: transparent; \n"
272-
"background-repeat: no-repeat; \n"
273-
"background-position: left; \n"
274-
"background-image: linear-gradient(to bottom, \n"
275-
"transparent, \n"
276-
"transparent 20%, \n"
277-
"alpha (#999999, 0.6) 21%, \n"
278-
"alpha (#999999, 0.6) 29%, \n"
279-
"transparent 30%, \n"
280-
"transparent 45%, \n"
281-
"alpha (#999999, 0.6) 46%, \n"
282-
"alpha (#999999, 0.6) 54%, \n"
283-
"transparent 55%, \n"
284-
"transparent 70%, \n"
285-
"alpha (#999999, 0.6) 71%, \n"
286-
"alpha (#999999, 0.6) 79%, \n"
287-
"transparent 80%, \n"
288-
"transparent); \n"
289-
"}",
290-
-1, NULL);
269+
270+
settings = gtk_settings_get_default();
271+
g_object_get (settings, "gtk-theme-name", &theme_name, NULL);
272+
273+
/*Special case the GNOME high contrast themes*/
274+
if (g_strcmp0 (theme_name, "HighContrast") == 0 ||
275+
g_strcmp0 (theme_name, "HighContrastInverse") == 0){
276+
gtk_css_provider_load_from_data (provider,
277+
"MatePanelAppletFrameDBus > MatePanelAppletFrameDBus { \n"
278+
"border-style: solid; \n"
279+
"border-width: 3px; \n"
280+
"border-color: @theme_bg_color; \n"
281+
"background-repeat: no-repeat; \n"
282+
"background-position: left; \n"
283+
"background-image: linear-gradient(to bottom, \n"
284+
"@theme_fg_color, \n"
285+
"@theme_fg_color 25%, \n"
286+
"@theme_bg_color 28%, \n"
287+
"@theme_bg_color 33%, \n"
288+
"@theme_fg_color 34%, \n"
289+
"@theme_fg_color 65%, \n"
290+
"@theme_bg_color 66%, \n"
291+
"@theme_bg_color 72%, \n"
292+
"@theme_fg_color 75%, \n"
293+
"@theme_fg_color); \n"
294+
"}",
295+
-1, NULL);
296+
}
297+
else{
298+
gtk_css_provider_load_from_data (provider,
299+
"MatePanelAppletFrameDBus > MatePanelAppletFrameDBus { \n"
300+
"border-style: solid; \n"
301+
"border-width: 3px; \n"
302+
"border-color: transparent; \n"
303+
"background-repeat: no-repeat; \n"
304+
"background-position: left; \n"
305+
"background-image: linear-gradient(to bottom, \n"
306+
"transparent, \n"
307+
"transparent 20%, \n"
308+
"alpha (#999999, 0.6) 21%, \n"
309+
"alpha (#999999, 0.6) 29%, \n"
310+
"transparent 30%, \n"
311+
"transparent 45%, \n"
312+
"alpha (#999999, 0.6) 46%, \n"
313+
"alpha (#999999, 0.6) 54%, \n"
314+
"transparent 55%, \n"
315+
"transparent 70%, \n"
316+
"alpha (#999999, 0.6) 71%, \n"
317+
"alpha (#999999, 0.6) 79%, \n"
318+
"transparent 80%, \n"
319+
"transparent); \n"
320+
"}",
321+
-1, NULL);
322+
}
291323
gtk_style_context_add_provider (gtk_widget_get_style_context(GTK_WIDGET(frame)),
292-
GTK_STYLE_PROVIDER (provider),
293-
GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
294-
g_object_unref (provider);
324+
GTK_STYLE_PROVIDER (provider),
325+
GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
326+
g_object_unref (provider);
327+
g_free (theme_name);
295328
}
296329

297330
static void

0 commit comments

Comments
 (0)