From 9949bbf7deee741297e79850b4a22bf29a579157 Mon Sep 17 00:00:00 2001 From: Andreas Müller Date: Fri, 11 Oct 2019 10:06:27 +0200 Subject: xfce4-panel: Draw icons/background properly when compositing is disabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A similar patch was sent for master [1] but that was superseded by upgrade of xfce4-panel 4.14.0 -> 4.14.1 [2] [1] http://lists.openembedded.org/pipermail/openembedded-devel/2019-September/201966.html [2] http://lists.openembedded.org/pipermail/openembedded-devel/2019-September/201986.html Signed-off-by: Andreas Müller Acked-by: Kai Kang Signed-off-by: Armin Kuster --- ...y-Fix-icons-without-compositing-Bug-14577.patch | 80 ++++++++++++++++++++++ .../recipes-xfce/xfce4-panel/xfce4-panel_4.13.4.bb | 1 + 2 files changed, 81 insertions(+) create mode 100644 meta-xfce/recipes-xfce/xfce4-panel/files/0002-systray-Fix-icons-without-compositing-Bug-14577.patch diff --git a/meta-xfce/recipes-xfce/xfce4-panel/files/0002-systray-Fix-icons-without-compositing-Bug-14577.patch b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-systray-Fix-icons-without-compositing-Bug-14577.patch new file mode 100644 index 0000000000..8fac5ad81d --- /dev/null +++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-systray-Fix-icons-without-compositing-Bug-14577.patch @@ -0,0 +1,80 @@ +From f6f70cce417fd2982c2ce6f01016ed01deb6a9ae Mon Sep 17 00:00:00 2001 +From: "Ivan A. Melnikov" +Date: Mon, 23 Sep 2019 16:18:10 +0400 +Subject: [PATCH] systray: Fix icons without compositing (Bug #14577) + +Wrapper window uses RGBA visual when it's available; +systray manager should try to do the same for +the transparent or parent-relative background to work. + +That means that the manager and icons will work with +RGBA visual even if the screen is not compositing; so +we should always force-redraw the icons. + +Upstream-Status: Accepted [1] + +[1] https://git.xfce.org/xfce/xfce4-panel/commit?id=f6f70cce417fd2982c2ce6f01016ed01deb6a9ae + +Refs: https://bugzilla.xfce.org/show_bug.cgi?id=14577 +Signed-off-by: Ivan A. Melnikov +--- + plugins/systray/systray-manager.c | 10 ++++++---- + plugins/systray/systray.c | 10 ---------- + 2 files changed, 6 insertions(+), 14 deletions(-) + +diff --git a/plugins/systray/systray-manager.c b/plugins/systray/systray-manager.c +index 68836554..4915649c 100644 +--- a/plugins/systray/systray-manager.c ++++ b/plugins/systray/systray-manager.c +@@ -751,6 +751,7 @@ static void + systray_manager_set_visual (SystrayManager *manager) + { + GdkDisplay *display; ++ GdkVisual *visual; + Visual *xvisual; + Atom visual_atom; + gulong data[1]; +@@ -768,11 +769,12 @@ systray_manager_set_visual (SystrayManager *manager) + visual_atom = gdk_x11_get_xatom_by_name_for_display (display, + "_NET_SYSTEM_TRAY_VISUAL"); + +- if (gdk_screen_is_composited (gtk_widget_get_screen (manager->invisible)) +- && (gdk_screen_get_rgba_visual (screen) != NULL)) ++ visual = gdk_screen_get_rgba_visual (screen); ++ panel_debug (PANEL_DEBUG_SYSTRAY, "rgba visual is %p", visual); ++ if (visual != NULL) + { +- /* get the rgba visual */ +- xvisual = GDK_VISUAL_XVISUAL (gdk_screen_get_rgba_visual (screen)); ++ /* use the rgba visual */ ++ xvisual = GDK_VISUAL_XVISUAL (visual); + } + else + { +diff --git a/plugins/systray/systray.c b/plugins/systray/systray.c +index 3fb9520c..beae1973 100644 +--- a/plugins/systray/systray.c ++++ b/plugins/systray/systray.c +@@ -728,19 +728,9 @@ systray_plugin_box_draw (GtkWidget *box, + gpointer user_data) + { + SystrayPlugin *plugin = XFCE_SYSTRAY_PLUGIN (user_data); +- GdkScreen *screen; +- + panel_return_if_fail (XFCE_IS_SYSTRAY_PLUGIN (plugin)); + panel_return_if_fail (cr != NULL); + +- screen = gtk_widget_get_screen (GTK_WIDGET (plugin)); +- +- if (G_LIKELY (screen != NULL)) +- { +- if (!gdk_screen_is_composited (screen)) +- return; +- } +- + /* separately draw all the composed tray icons after gtk + * handled the draw event */ + gtk_container_foreach (GTK_CONTAINER (box), +-- +2.21.0 + diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.4.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.4.bb index 18e054c9d4..ecae873c30 100644 --- a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.4.bb +++ b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.4.bb @@ -12,6 +12,7 @@ SRC_URI[md5sum] = "c0f132fed2110d37f351aadc9e80a034" SRC_URI[sha256sum] = "36ffd26ef7f5867c01ba310475b4358ff0e588cfd5599a266f0037a6c20052a1" SRC_URI += " \ file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \ + file://0002-systray-Fix-icons-without-compositing-Bug-14577.patch \ " python populate_packages_prepend() { -- cgit 1.2.3-korg