update to 1.20.2

This commit is contained in:
raveit65 2018-06-03 15:47:12 +02:00
parent c796e034ce
commit c037c9a242
16 changed files with 822 additions and 63 deletions

1
.gitignore vendored
View File

@ -40,3 +40,4 @@
/mate-settings-daemon-1.19.2.tar.xz
/mate-settings-daemon-1.20.0.tar.xz
/mate-settings-daemon-1.20.1.tar.xz
/mate-settings-daemon-1.20.2.tar.xz

View File

@ -13,9 +13,9 @@
%{!?rel_build:%global git_tar %{name}-%{version}-%{git_ver}.tar.xz}
Name: mate-settings-daemon
Version: %{branch}.1
Version: %{branch}.2
%if 0%{?rel_build}
Release: 2%{?dist}
Release: 1%{?dist}
%else
Release: 0.6%{?git_rel}%{?dist}
%endif
@ -33,8 +33,19 @@ URL: http://mate-desktop.org
%if 0%{?rhel}
Patch1: mate-settings-daemon_fix-xrdb-plugin-for-rhel.patch
%endif
# https://github.com/mate-desktop/mate-settings-daemon/pull/217
Patch2: mate-settings-daemon_0001-Support-background-fallback-on-HiDPI.patch
# xrandr-applet improvements from upstream
Patch2: mate-settings-daemon_0001-xrandr-applet-don-t-hard-code-label-colors-in-menu.patch
Patch3: mate-settings-daemon_0002-xrandr-applet-drop-non-working-bg-from-menu.patch
Patch4: mate-settings-daemon_0003-xrandr-applet-add-a-style-class-for-menuitems.patch
Patch5: mate-settings-daemon_0004-xrandr-applet-popup-add-monitor-icons-to-monitor-lab.patch
Patch6: mate-settings-daemon_0005-xrandr-applet-popup-use-colored-bg-again-in-monitor-.patch
Patch7: mate-settings-daemon_0006-xrandr-applet-popup-add-a-border-to-colored-monitor-.patch
Patch8: mate-settings-daemon_0007-xrandr-applet-popup-allow-themes-to-override-monitor.patch
Patch9: mate-settings-daemon_0008-xrandr-fix-indent.patch
Patch10: mate-settings-daemon_0009-xrander-applet-popup-remove-draw-callback.patch
Patch11: mate-settings-daemon_0010-Xrandr-applet-popup-Special-case-the-GNOME-themes-fo.patch
Patch12: mate-settings-daemon_0011-xrandr-applet-popup-handle-Greybird-etc-XFCE-themes.patch
Patch13: mate-settings-daemon_0012-xrandr-applet-popup-show-icon-only-if-menus-have-ico.patch
BuildRequires: dbus-glib-devel
BuildRequires: dconf-devel
@ -136,6 +147,10 @@ desktop-file-validate %{buildroot}%{_sysconfdir}/xdg/autostart/mate-settings-dae
%changelog
* Sun Jun 03 2018 Wolfgang Ulbrich <fedora@raveit.de> - 1.20.2-1
- update to 1.20.2
- use xrandr-applet improvements from upstream
* Wed Apr 18 2018 Wolfgang Ulbrich <fedora@raveit.de> - 1.20.1-2
- improve background handling for HIDPI monitors
- use https://github.com/mate-desktop/mate-settings-daemon/pull/217

View File

@ -1,58 +0,0 @@
From da629637721a95836efd9044ad1b4c978d0abffa Mon Sep 17 00:00:00 2001
From: Victor Kareh <vkareh@vkareh.net>
Date: Tue, 10 Apr 2018 00:54:35 -0400
Subject: [PATCH] Support background fallback on HiDPI
This change is a super hacky way of supporting the fallback desktop background (without caja) on HiDPI displays. It does this by doing two things: using a new function that scales up the background surface; and by loading settings using an updated function that triggers a redraw.
---
plugins/background/msd-background-manager.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/plugins/background/msd-background-manager.c b/plugins/background/msd-background-manager.c
index b4eaca6..724e01e 100644
--- a/plugins/background/msd-background-manager.c
+++ b/plugins/background/msd-background-manager.c
@@ -185,11 +185,12 @@ real_draw_bg (MsdBackgroundManager *manager,
{
MsdBackgroundManagerPrivate *p = manager->priv;
GdkWindow *window = gdk_screen_get_root_window (screen);
- gint width = WidthOfScreen (gdk_x11_screen_get_xscreen (screen));
- gint height = HeightOfScreen (gdk_x11_screen_get_xscreen (screen));
+ gint scale = gdk_window_get_scale_factor (window);
+ gint width = WidthOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale;
+ gint height = HeightOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale;
free_bg_surface (manager);
- p->surface = mate_bg_create_surface (p->bg, window, width, height, TRUE);
+ p->surface = mate_bg_create_surface_scale (p->bg, window, width, height, scale, TRUE);
if (p->do_fade)
{
@@ -255,10 +256,12 @@ on_screen_size_changed (GdkScreen *screen,
if (!p->msd_can_draw || p->draw_in_progress || caja_is_drawing_bg (manager))
return;
+ GdkWindow *window = gdk_screen_get_root_window (screen);
+ gint scale = gdk_window_get_scale_factor (window);
gint scr_num = gdk_x11_screen_get_screen_number (screen);
gchar *old_size = g_list_nth_data (manager->priv->scr_sizes, scr_num);
- gchar *new_size = g_strdup_printf ("%dx%d", WidthOfScreen (gdk_x11_screen_get_xscreen (screen)),
- HeightOfScreen (gdk_x11_screen_get_xscreen (screen)));
+ gchar *new_size = g_strdup_printf ("%dx%d", WidthOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale,
+ HeightOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale);
if (g_strcmp0 (old_size, new_size) != 0)
{
g_debug ("Screen%d size changed: %s -> %s", scr_num, old_size, new_size);
@@ -297,8 +300,7 @@ settings_change_event_idle_cb (MsdBackgroundManager *manager)
{
mate_settings_profile_start ("settings_change_event_idle_cb");
- mate_bg_load_from_gsettings (manager->priv->bg,
- manager->priv->settings);
+ mate_bg_load_from_preferences (manager->priv->bg);
mate_settings_profile_end ("settings_change_event_idle_cb");
--
2.17.0

View File

@ -0,0 +1,38 @@
From 2674157347d3950b3ed055cfecc0a3dd65bb614a Mon Sep 17 00:00:00 2001
From: raveit65 <mate@raveit.de>
Date: Mon, 7 May 2018 21:01:29 +0200
Subject: [PATCH 01/22] xrandr-applet: don't hard code label colors in menu
Using black color makes the label unreadable with dark themes
---
plugins/xrandr/msd-xrandr-manager.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index 580e157..eaa4cef 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1787,7 +1787,6 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
GtkWidget *item;
GtkWidget *label;
char *str;
- GdkColor black = { 0, 0, 0, 0 };
item = gtk_menu_item_new ();
@@ -1799,12 +1798,6 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_label_set_markup (GTK_LABEL (label), str);
g_free (str);
- /* Make the label explicitly black. We don't want it to follow the
- * theme's colors, since the label is always shown against a light
- * pastel background. See bgo#556050
- */
- gtk_widget_modify_fg (label, gtk_widget_get_state (label), &black);
-
/* Add padding around the label to fit the box that we'll draw for color-coding */
gtk_label_set_xalign (GTK_LABEL (label), 0.0);
gtk_label_set_yalign (GTK_LABEL (label), 0.5);
--
2.17.1

View File

@ -0,0 +1,111 @@
From 0f327170ef19d5af67f48fd1f9e7e623e326ff30 Mon Sep 17 00:00:00 2001
From: raveit65 <mate@raveit.de>
Date: Mon, 7 May 2018 21:45:38 +0200
Subject: [PATCH 02/22] xrandr-applet: drop non-working bg from menu
---
plugins/xrandr/msd-xrandr-manager.c | 81 -----------------------------
1 file changed, 81 deletions(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index eaa4cef..e1b9986 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1672,76 +1672,6 @@ status_icon_popup_menu_selection_done_cb (GtkMenuShell *menu_shell, gpointer dat
#define OUTPUT_TITLE_ITEM_BORDER 2
#define OUTPUT_TITLE_ITEM_PADDING 4
-/* This is an expose-event hander for the title label for each MateRROutput.
- * We want each title to have a colored background, so we paint that background, then
- * return FALSE to let GtkLabel expose itself (i.e. paint the label's text), and then
- * we have a signal_connect_after handler as well. See the comments below
- * to see why that "after" handler is needed.
- */
-static gboolean
-output_title_label_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
-{
- MsdXrandrManager *manager = MSD_XRANDR_MANAGER (data);
- struct MsdXrandrManagerPrivate *priv = manager->priv;
- MateRROutputInfo *output;
- GdkRGBA color;
- GtkAllocation allocation;
-
- g_assert (GTK_IS_LABEL (widget));
-
- output = g_object_get_data (G_OBJECT (widget), "output");
- g_assert (output != NULL);
-
- g_assert (priv->labeler != NULL);
-
- /* Draw a black rectangular border, filled with the color that corresponds to this output */
- mate_rr_labeler_get_rgba_for_output (priv->labeler, output, &color);
-
- cairo_set_source_rgb (cr, 0, 0, 0);
- cairo_set_line_width (cr, OUTPUT_TITLE_ITEM_BORDER);
- gtk_widget_get_allocation (widget, &allocation);
- cairo_rectangle (cr,
- allocation.x + OUTPUT_TITLE_ITEM_BORDER / 2.0,
- allocation.y + OUTPUT_TITLE_ITEM_BORDER / 2.0,
- allocation.width - OUTPUT_TITLE_ITEM_BORDER,
- allocation.height - OUTPUT_TITLE_ITEM_BORDER);
- cairo_stroke (cr);
-
- gdk_cairo_set_source_rgba (cr, &color);
- cairo_rectangle (cr,
- allocation.x + OUTPUT_TITLE_ITEM_BORDER,
- allocation.y + OUTPUT_TITLE_ITEM_BORDER,
- allocation.width - 2 * OUTPUT_TITLE_ITEM_BORDER,
- allocation.height - 2 * OUTPUT_TITLE_ITEM_BORDER);
-
- cairo_fill (cr);
-
- /* We want the label to always show up as if it were sensitive
- * ("style->fg[GTK_STATE_NORMAL]"), even though the label is insensitive
- * due to being inside an insensitive menu item. So, here we have a
- * HACK in which we frob the label's state directly. GtkLabel's expose
- * handler will be run after this function, so it will think that the
- * label is in GTK_STATE_NORMAL. We reset the label's state back to
- * insensitive in output_title_label_after_expose_event_cb().
- *
- * Yay for fucking with GTK+'s internals.
- */
-
- gtk_widget_set_state (widget, GTK_STATE_NORMAL);
-
- return FALSE;
-}
-
-/* See the comment in output_title_event_box_expose_event_cb() about this funny label widget */
-static gboolean
-output_title_label_after_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
-{
- g_assert (GTK_IS_LABEL (widget));
- gtk_widget_set_state (widget, GTK_STATE_INSENSITIVE);
-
- return FALSE;
-}
-
static void
title_item_size_allocate_cb (GtkWidget *widget, GtkAllocation *allocation, gpointer data)
{
@@ -1808,17 +1738,6 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_container_add (GTK_CONTAINER (item), label);
- /* We want to paint a colored box as the background of the label, so we connect
- * to its expose-event signal. See the comment in *** to see why need to connect
- * to the label both 'before' and 'after'.
- */
- g_signal_connect (label, "draw",
- G_CALLBACK (output_title_label_draw_cb), manager);
- g_signal_connect_after (label, "draw",
- G_CALLBACK (output_title_label_after_draw_cb) , manager);
-
- g_object_set_data (G_OBJECT (label), "output", output);
-
gtk_widget_set_sensitive (item, FALSE); /* the title is not selectable */
gtk_widget_show_all (item);
--
2.17.1

View File

@ -0,0 +1,33 @@
From a386cd65925199e5c1f76012ac4fdc5b35b4472f Mon Sep 17 00:00:00 2001
From: raveit65 <mate@raveit.de>
Date: Wed, 16 May 2018 11:41:38 +0200
Subject: [PATCH 03/22] xrandr-applet: add a style class for menuitems
---
plugins/xrandr/msd-xrandr-manager.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index e1b9986..77ddcd2 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1714,11 +1714,14 @@ title_item_size_allocate_cb (GtkWidget *widget, GtkAllocation *allocation, gpoin
static GtkWidget *
make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *output)
{
- GtkWidget *item;
- GtkWidget *label;
+ GtkWidget *item;
+ GtkStyleContext *context;
+ GtkWidget *label;
char *str;
item = gtk_menu_item_new ();
+ context = gtk_widget_get_style_context (item);
+ gtk_style_context_add_class (context, "xrandr-applet");
g_signal_connect (item, "size-allocate",
G_CALLBACK (title_item_size_allocate_cb), NULL);
--
2.17.1

View File

@ -0,0 +1,42 @@
From 57b6fa4e37afa3449208abf6578bfc5a773c60b2 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Fri, 18 May 2018 01:53:38 -0400
Subject: [PATCH 04/22] xrandr applet popup: add monitor icons to monitor label
menuitems
---
plugins/xrandr/msd-xrandr-manager.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index 77ddcd2..ea5446e 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1717,9 +1717,13 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
GtkWidget *item;
GtkStyleContext *context;
GtkWidget *label;
+ GtkWidget *image;
+ GtkWidget *box;
char *str;
item = gtk_menu_item_new ();
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+ image = gtk_image_new_from_icon_name ("computer-symbolic", GTK_ICON_SIZE_MENU);
context = gtk_widget_get_style_context (item);
gtk_style_context_add_class (context, "xrandr-applet");
@@ -1739,7 +1743,9 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_widget_set_margin_top (label, OUTPUT_TITLE_ITEM_BORDER + OUTPUT_TITLE_ITEM_PADDING);
gtk_widget_set_margin_bottom (label, OUTPUT_TITLE_ITEM_BORDER + OUTPUT_TITLE_ITEM_PADDING);
- gtk_container_add (GTK_CONTAINER (item), label);
+ gtk_container_add (GTK_CONTAINER (box), image);
+ gtk_container_add (GTK_CONTAINER (box), label);
+ gtk_container_add (GTK_CONTAINER (item), box);
gtk_widget_set_sensitive (item, FALSE); /* the title is not selectable */
gtk_widget_show_all (item);
--
2.17.1

View File

@ -0,0 +1,115 @@
From fff8a2f369a80ed7254a1a73bac9bf8e1b337668 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Fri, 18 May 2018 16:33:44 -0400
Subject: [PATCH 05/22] xrandr-applet-popup: use colored bg again in monitor
labels
*Build a cssprovider from strings, use a variable to apply the same colors as used on the rectangles shown on each monitor to the matching label backgrounds in the popup menu. Bring back the draw callback to handle it, so necessary data can be passed to mate_rr_labeler_get_rgba_for_output
*Keep disabled item dimming effects off the monitor label icons
*Tie the dynamic cssprovider to the label so it always gets the correct color
---
plugins/xrandr/msd-xrandr-manager.c | 63 ++++++++++++++++++++++++++++-
1 file changed, 62 insertions(+), 1 deletion(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index ea5446e..8aeacc4 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1671,6 +1671,45 @@ status_icon_popup_menu_selection_done_cb (GtkMenuShell *menu_shell, gpointer dat
#define OUTPUT_TITLE_ITEM_BORDER 2
#define OUTPUT_TITLE_ITEM_PADDING 4
+static gboolean
+output_title_label_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
+{
+ MsdXrandrManager *manager = MSD_XRANDR_MANAGER (data);
+ struct MsdXrandrManagerPrivate *priv = manager->priv;
+ MateRROutputInfo *output;
+ GdkRGBA color;
+ GString *string;
+ gchar *css, *color_string;
+ GtkStyleContext *context;
+ GtkCssProvider *provider;
+
+ output = g_object_get_data (G_OBJECT (widget), "output");
+
+ mate_rr_labeler_get_rgba_for_output (priv->labeler, output, &color);
+
+ color_string = gdk_rgba_to_string (&color);
+
+ string = g_string_new(NULL);
+ g_string_append (string, ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n");
+ g_string_append (string, "color: black;");
+ g_string_append (string, "padding-left: 4px; padding-right: 4px;");
+ g_string_append (string, "background-color:");
+ g_string_append (string, color_string);
+ g_string_append (string," }");
+
+ css = g_string_free (string, FALSE);
+
+ context = gtk_widget_get_style_context (widget);
+ provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (provider,css, -1, NULL);
+
+ gtk_style_context_add_provider (context,
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref (provider);
+
+ return FALSE;
+}
static void
title_item_size_allocate_cb (GtkWidget *widget, GtkAllocation *allocation, gpointer data)
@@ -1716,6 +1755,7 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
{
GtkWidget *item;
GtkStyleContext *context;
+ GtkCssProvider *provider;
GtkWidget *label;
GtkWidget *image;
GtkWidget *box;
@@ -1723,10 +1763,25 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
item = gtk_menu_item_new ();
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
- image = gtk_image_new_from_icon_name ("computer-symbolic", GTK_ICON_SIZE_MENU);
+ image = gtk_image_new_from_icon_name ("computer", GTK_ICON_SIZE_MENU);
context = gtk_widget_get_style_context (item);
gtk_style_context_add_class (context, "xrandr-applet");
+ /*Disable effects applied to icons in an insensitive menu item*/
+ context = gtk_widget_get_style_context (image);
+ provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (provider,
+ ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>image{\n"
+ "opacity: 1.0; \n"
+ "-gtk-icon-effect: none; \n"
+ "}",
+ -1, NULL);
+ gtk_style_context_add_provider (context,
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref (provider);
+
+
g_signal_connect (item, "size-allocate",
G_CALLBACK (title_item_size_allocate_cb), NULL);
@@ -1747,7 +1802,13 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_container_add (GTK_CONTAINER (box), label);
gtk_container_add (GTK_CONTAINER (item), box);
+ g_signal_connect (label, "draw",
+ G_CALLBACK (output_title_label_draw_cb), manager);
+
+ g_object_set_data (G_OBJECT (label), "output", output);
+
gtk_widget_set_sensitive (item, FALSE); /* the title is not selectable */
+
gtk_widget_show_all (item);
return item;
--
2.17.1

View File

@ -0,0 +1,35 @@
From c6f56932dee1819097d1f9afa933be4726b1ad35 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Sat, 19 May 2018 03:11:01 -0400
Subject: [PATCH 06/22] xrandr-applet-popup: add a border to colored monitor
labels
---
plugins/xrandr/msd-xrandr-manager.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index 8aeacc4..58b77f5 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1693,6 +1693,9 @@ output_title_label_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
g_string_append (string, ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n");
g_string_append (string, "color: black;");
g_string_append (string, "padding-left: 4px; padding-right: 4px;");
+ g_string_append (string, "border-style: inset;");
+ g_string_append (string, "border-width: 1px;");
+ g_string_append (string, "border-color: gray;");
g_string_append (string, "background-color:");
g_string_append (string, color_string);
g_string_append (string," }");
@@ -1774,6 +1777,7 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>image{\n"
"opacity: 1.0; \n"
"-gtk-icon-effect: none; \n"
+ "min-height: 36px; \n" /*Use as a spacer so label border does not put scrollbars on popup*/
"}",
-1, NULL);
gtk_style_context_add_provider (context,
--
2.17.1

View File

@ -0,0 +1,82 @@
From 6bc54f101dfaa0db6dd8199d358b311a9a3f35e1 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Sat, 19 May 2018 17:58:03 -0400
Subject: [PATCH 07/22] xrandr-applet-popup: allow themes to override monitor
label colors
Use the monitor label colors in the monitor label menuitems by default,
*Also move the border-width and style definitions to the second cssprovider, as otherwise they are set too late, and scrollbars result from attempted expansion of the popup
---
plugins/xrandr/msd-xrandr-manager.c | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index 58b77f5..5fabe82 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1689,12 +1689,11 @@ output_title_label_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
color_string = gdk_rgba_to_string (&color);
+ /*This can be overriden by themes, check all label:insensitive entries if it does not show up*/
string = g_string_new(NULL);
g_string_append (string, ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n");
- g_string_append (string, "color: black;");
+ /* g_string_append (string, "color: black;"); Does not work-overridden in all themes*/
g_string_append (string, "padding-left: 4px; padding-right: 4px;");
- g_string_append (string, "border-style: inset;");
- g_string_append (string, "border-width: 1px;");
g_string_append (string, "border-color: gray;");
g_string_append (string, "background-color:");
g_string_append (string, color_string);
@@ -1708,7 +1707,7 @@ output_title_label_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
gtk_style_context_add_provider (context,
GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
g_object_unref (provider);
return FALSE;
@@ -1770,22 +1769,33 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
context = gtk_widget_get_style_context (item);
gtk_style_context_add_class (context, "xrandr-applet");
- /*Disable effects applied to icons in an insensitive menu item*/
- context = gtk_widget_get_style_context (image);
+ /*This is NOT overrridden by themes as FALLBACK won't work here
+ *
+ *Disable dim/opacity effects applied to icons in an insensitive menu item
+ *And apply the final label border width and style here
+ *(style required too because "none" will define zero width)
+ *before the draw call so label width is defined here
+ *Draw call is too late and will cause scrollbars to appear from
+ *delayed expansion of the label
+ */
+
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider,
".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>image{\n"
"opacity: 1.0; \n"
"-gtk-icon-effect: none; \n"
- "min-height: 36px; \n" /*Use as a spacer so label border does not put scrollbars on popup*/
+ "}"
+ ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n"
+ "border-width: 1px;"
+ "border-style: inset;"
"}",
-1, NULL);
- gtk_style_context_add_provider (context,
+ /*Need to handle both the image and the label, so has to be for screen to work*/
+ gtk_style_context_add_provider_for_screen (gdk_screen_get_default(),
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);
-
g_signal_connect (item, "size-allocate",
G_CALLBACK (title_item_size_allocate_cb), NULL);
--
2.17.1

View File

@ -0,0 +1,25 @@
From 0ca8f6d53e9651c80cb36416968228de9e4e9c21 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Sun, 20 May 2018 21:12:30 -0400
Subject: [PATCH 08/22] xrandr:fix indent
---
plugins/xrandr/msd-xrandr-manager.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index 5fabe82..c82d7e9 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1705,7 +1705,7 @@ output_title_label_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider,css, -1, NULL);
- gtk_style_context_add_provider (context,
+ gtk_style_context_add_provider (context,
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
g_object_unref (provider);
--
2.17.1

View File

@ -0,0 +1,167 @@
From 7bc681f10188c61ab267719c5f8d6c808729ade3 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Mon, 21 May 2018 22:20:57 -0400
Subject: [PATCH 09/22] xrander-applet-popup: remove draw callback
---
plugins/xrandr/msd-xrandr-manager.c | 122 ++++++++++++----------------
1 file changed, 51 insertions(+), 71 deletions(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index c82d7e9..c58ecf5 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1671,47 +1671,6 @@ status_icon_popup_menu_selection_done_cb (GtkMenuShell *menu_shell, gpointer dat
#define OUTPUT_TITLE_ITEM_BORDER 2
#define OUTPUT_TITLE_ITEM_PADDING 4
-static gboolean
-output_title_label_draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data)
-{
- MsdXrandrManager *manager = MSD_XRANDR_MANAGER (data);
- struct MsdXrandrManagerPrivate *priv = manager->priv;
- MateRROutputInfo *output;
- GdkRGBA color;
- GString *string;
- gchar *css, *color_string;
- GtkStyleContext *context;
- GtkCssProvider *provider;
-
- output = g_object_get_data (G_OBJECT (widget), "output");
-
- mate_rr_labeler_get_rgba_for_output (priv->labeler, output, &color);
-
- color_string = gdk_rgba_to_string (&color);
-
- /*This can be overriden by themes, check all label:insensitive entries if it does not show up*/
- string = g_string_new(NULL);
- g_string_append (string, ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n");
- /* g_string_append (string, "color: black;"); Does not work-overridden in all themes*/
- g_string_append (string, "padding-left: 4px; padding-right: 4px;");
- g_string_append (string, "border-color: gray;");
- g_string_append (string, "background-color:");
- g_string_append (string, color_string);
- g_string_append (string," }");
-
- css = g_string_free (string, FALSE);
-
- context = gtk_widget_get_style_context (widget);
- provider = gtk_css_provider_new ();
- gtk_css_provider_load_from_data (provider,css, -1, NULL);
-
- gtk_style_context_add_provider (context,
- GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
- g_object_unref (provider);
-
- return FALSE;
-}
static void
title_item_size_allocate_cb (GtkWidget *widget, GtkAllocation *allocation, gpointer data)
@@ -1762,6 +1721,11 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
GtkWidget *image;
GtkWidget *box;
char *str;
+ GString *string;
+ GdkRGBA color;
+ gchar *css, *color_string;
+
+ struct MsdXrandrManagerPrivate *priv = manager->priv;
item = gtk_menu_item_new ();
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
@@ -1769,33 +1733,6 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
context = gtk_widget_get_style_context (item);
gtk_style_context_add_class (context, "xrandr-applet");
- /*This is NOT overrridden by themes as FALLBACK won't work here
- *
- *Disable dim/opacity effects applied to icons in an insensitive menu item
- *And apply the final label border width and style here
- *(style required too because "none" will define zero width)
- *before the draw call so label width is defined here
- *Draw call is too late and will cause scrollbars to appear from
- *delayed expansion of the label
- */
-
- provider = gtk_css_provider_new ();
- gtk_css_provider_load_from_data (provider,
- ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>image{\n"
- "opacity: 1.0; \n"
- "-gtk-icon-effect: none; \n"
- "}"
- ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n"
- "border-width: 1px;"
- "border-style: inset;"
- "}",
- -1, NULL);
- /*Need to handle both the image and the label, so has to be for screen to work*/
- gtk_style_context_add_provider_for_screen (gdk_screen_get_default(),
- GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- g_object_unref (provider);
-
g_signal_connect (item, "size-allocate",
G_CALLBACK (title_item_size_allocate_cb), NULL);
@@ -1816,10 +1753,53 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_container_add (GTK_CONTAINER (box), label);
gtk_container_add (GTK_CONTAINER (item), box);
- g_signal_connect (label, "draw",
- G_CALLBACK (output_title_label_draw_cb), manager);
+ mate_rr_labeler_get_rgba_for_output (priv->labeler, output, &color);
+
+ color_string = gdk_rgba_to_string (&color);
+
+ /*This can be overriden by themes, check all label:insensitive entries if it does not show up*/
+ string = g_string_new(NULL);
+ g_string_append (string, ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n");
+ /*g_string_append (string, "color: black;"); Does not work-overridden in all themes*/
+ g_string_append (string, "padding-left: 4px; padding-right: 4px;");
+ g_string_append (string, "border-color: gray;");
+ g_string_append (string,"border-width: 1px;");
+ g_string_append (string,"border-style: inset;");
+ g_string_append (string, "background-color:");
+ g_string_append (string, color_string);
+ g_string_append (string," }");
+
+ css = g_string_free (string, FALSE);
+
+ context = gtk_widget_get_style_context (label);
+ provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (provider,css, -1, NULL);
+
+ gtk_style_context_add_provider (context,
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
+
+ g_object_unref (provider);
+ g_free (color_string);
+ g_free (css);
+
+ /*This is NOT overrridden by themes as FALLBACK won't work here
+ *Disable dim/opacity effects applied to icons in an insensitive menu item
+ */
- g_object_set_data (G_OBJECT (label), "output", output);
+ context = gtk_widget_get_style_context (image);
+ provider = gtk_css_provider_new ();
+
+ gtk_css_provider_load_from_data (provider,
+ ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>image{\n"
+ "opacity: 1.0; \n"
+ "-gtk-icon-effect: none; \n"
+ "}",
+ -1, NULL);
+ gtk_style_context_add_provider (context,
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref (provider);
gtk_widget_set_sensitive (item, FALSE); /* the title is not selectable */
--
2.17.1

View File

@ -0,0 +1,70 @@
From 2aa4cec72dad5441eecff2a28730f3b0a964e991 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Wed, 23 May 2018 02:18:14 -0400
Subject: [PATCH 10/22] Xrandr-applet-popup: Special case the GNOME themes for
black text on monitor labels
---
plugins/xrandr/msd-xrandr-manager.c | 32 +++++++++++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index c58ecf5..526f702 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1716,14 +1716,15 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
{
GtkWidget *item;
GtkStyleContext *context;
- GtkCssProvider *provider;
+ GtkCssProvider *provider, *provider2;
GtkWidget *label;
GtkWidget *image;
GtkWidget *box;
char *str;
GString *string;
GdkRGBA color;
- gchar *css, *color_string;
+ gchar *css, *color_string, *theme_name;
+ GtkSettings *settings;
struct MsdXrandrManagerPrivate *priv = manager->priv;
@@ -1799,7 +1800,34 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_style_context_add_provider (context,
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+ /*Deal with the GNOME themes*/
+ provider2 = gtk_css_provider_new ();
+ settings = gtk_settings_get_default();
+ context = gtk_widget_get_style_context (label);
+ g_object_get (settings, "gtk-theme-name", &theme_name, NULL);
+ if (g_strcmp0 (theme_name, "Adwaita") == 0 ||
+ g_strcmp0 (theme_name, "Adwaita-dark") == 0 ||
+ g_strcmp0 (theme_name, "Raleigh") == 0 ||
+ g_strcmp0 (theme_name, "win32") == 0 ||
+ g_strcmp0 (theme_name, "HighContrast") == 0 ||
+ g_strcmp0 (theme_name, "HighContrastInverse") == 0){
+ gtk_css_provider_load_from_data (provider2,
+ ".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n"
+ "color: black;\n"
+ "}",
+ -1, NULL);
+ gtk_style_context_add_provider(context,
+ GTK_STYLE_PROVIDER (provider2),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ }
+ /*Keep or take this off all other themes as soon as the theme changes*/
+ else{
+ gtk_style_context_remove_provider(context, GTK_STYLE_PROVIDER (provider2));
+ }
+
g_object_unref (provider);
+ g_object_unref (provider2);
gtk_widget_set_sensitive (item, FALSE); /* the title is not selectable */
--
2.17.1

View File

@ -0,0 +1,45 @@
From 06306441a0ee70ac79a9136a40d8e2ef365d31a2 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Wed, 23 May 2018 15:08:27 -0400
Subject: [PATCH 11/22] xrandr-applet-popup: handle Greybird (etc) XFCE themes
Also ensure default bg images don't override label bg color, and don't use symbolic icon in GNOME HighContrast themes as it gets the disabled color
---
plugins/xrandr/msd-xrandr-manager.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index 526f702..4222923 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1766,6 +1766,7 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
g_string_append (string, "border-color: gray;");
g_string_append (string,"border-width: 1px;");
g_string_append (string,"border-style: inset;");
+ g_string_append (string, "background-image: none;");
g_string_append (string, "background-color:");
g_string_append (string, color_string);
g_string_append (string," }");
@@ -1794,6 +1795,7 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_css_provider_load_from_data (provider,
".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>image{\n"
"opacity: 1.0; \n"
+ "-gtk-icon-style:regular; \n" /* symbolic icons would get the disabled color*/
"-gtk-icon-effect: none; \n"
"}",
-1, NULL);
@@ -1811,7 +1813,10 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
g_strcmp0 (theme_name, "Raleigh") == 0 ||
g_strcmp0 (theme_name, "win32") == 0 ||
g_strcmp0 (theme_name, "HighContrast") == 0 ||
- g_strcmp0 (theme_name, "HighContrastInverse") == 0){
+ g_strcmp0 (theme_name, "HighContrastInverse") == 0 ||
+ g_strcmp0 (theme_name, "Blackbird") == 0 ||
+ g_strcmp0 (theme_name, "Bluebird") == 0 ||
+ g_strcmp0 (theme_name, "Greybird") == 0){
gtk_css_provider_load_from_data (provider2,
".mate-panel-menu-bar menuitem.xrandr-applet:disabled>box>label{\n"
"color: black;\n"
--
2.17.1

View File

@ -0,0 +1,38 @@
From 05d1d3ca7fedda82eff13abffd085235d2440797 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Wed, 23 May 2018 22:48:21 -0400
Subject: [PATCH 12/22] xrandr-applet-popup: show icon only if
"menus-have-icons" is not turned off
---
plugins/xrandr/msd-xrandr-manager.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/plugins/xrandr/msd-xrandr-manager.c b/plugins/xrandr/msd-xrandr-manager.c
index 4222923..7cdaf69 100644
--- a/plugins/xrandr/msd-xrandr-manager.c
+++ b/plugins/xrandr/msd-xrandr-manager.c
@@ -1725,6 +1725,7 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
GdkRGBA color;
gchar *css, *color_string, *theme_name;
GtkSettings *settings;
+ GSettings *icon_settings;
struct MsdXrandrManagerPrivate *priv = manager->priv;
@@ -1750,7 +1751,11 @@ make_menu_item_for_output_title (MsdXrandrManager *manager, MateRROutputInfo *ou
gtk_widget_set_margin_top (label, OUTPUT_TITLE_ITEM_BORDER + OUTPUT_TITLE_ITEM_PADDING);
gtk_widget_set_margin_bottom (label, OUTPUT_TITLE_ITEM_BORDER + OUTPUT_TITLE_ITEM_PADDING);
- gtk_container_add (GTK_CONTAINER (box), image);
+ /*Load the icon unless the user has icons in menus turned off*/
+ icon_settings = g_settings_new ("org.mate.interface");
+ if (g_settings_get_boolean (icon_settings, "menus-have-icons")){
+ gtk_container_add (GTK_CONTAINER (box), image);
+ }
gtk_container_add (GTK_CONTAINER (box), label);
gtk_container_add (GTK_CONTAINER (item), box);
--
2.17.1

View File

@ -1 +1 @@
SHA512 (mate-settings-daemon-1.20.1.tar.xz) = 87dbf87f5dbe13a44bacfe3b517270021bbbfc7930c0db07dd9294e1f8cbe388d891d4e6fd3eb6600c893d04894cd22427bde45421f8492b92a8724ab7e151af
SHA512 (mate-settings-daemon-1.20.2.tar.xz) = 9da7d7da39ba2782c19440c000bcc72270316a572464e2753bf3ff6a26d0c1b9d2c0072ec0220a81278c1332130bc7572d9b7dc4322ae2cc959c1f8d49f9c550