@@ -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
297330static void
0 commit comments