summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Müller <schnitzeltony@gmail.com>2019-10-11 10:06:27 +0200
committerArmin Kuster <akuster808@gmail.com>2019-10-19 08:13:54 -0700
commit9949bbf7deee741297e79850b4a22bf29a579157 (patch)
tree43859cb6086cb48fc7222f325ecc3f31bba7139e
parentf4ccdf2bc3fe4f00778629088baab840c868e36b (diff)
downloadmeta-openembedded-9949bbf7deee741297e79850b4a22bf29a579157.tar.gz
xfce4-panel: Draw icons/background properly when compositing is disabled
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 <schnitzeltony@gmail.com> Acked-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/files/0002-systray-Fix-icons-without-compositing-Bug-14577.patch80
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.4.bb1
2 files changed, 81 insertions, 0 deletions
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 000000000..8fac5ad81
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-systray-Fix-icons-without-compositing-Bug-14577.patch
@@ -0,0 +1,80 @@
1From f6f70cce417fd2982c2ce6f01016ed01deb6a9ae Mon Sep 17 00:00:00 2001
2From: "Ivan A. Melnikov" <iv@altlinux.org>
3Date: Mon, 23 Sep 2019 16:18:10 +0400
4Subject: [PATCH] systray: Fix icons without compositing (Bug #14577)
5
6Wrapper window uses RGBA visual when it's available;
7systray manager should try to do the same for
8the transparent or parent-relative background to work.
9
10That means that the manager and icons will work with
11RGBA visual even if the screen is not compositing; so
12we should always force-redraw the icons.
13
14Upstream-Status: Accepted [1]
15
16[1] https://git.xfce.org/xfce/xfce4-panel/commit?id=f6f70cce417fd2982c2ce6f01016ed01deb6a9ae
17
18Refs: https://bugzilla.xfce.org/show_bug.cgi?id=14577
19Signed-off-by: Ivan A. Melnikov <iv@altlinux.org>
20---
21 plugins/systray/systray-manager.c | 10 ++++++----
22 plugins/systray/systray.c | 10 ----------
23 2 files changed, 6 insertions(+), 14 deletions(-)
24
25diff --git a/plugins/systray/systray-manager.c b/plugins/systray/systray-manager.c
26index 68836554..4915649c 100644
27--- a/plugins/systray/systray-manager.c
28+++ b/plugins/systray/systray-manager.c
29@@ -751,6 +751,7 @@ static void
30 systray_manager_set_visual (SystrayManager *manager)
31 {
32 GdkDisplay *display;
33+ GdkVisual *visual;
34 Visual *xvisual;
35 Atom visual_atom;
36 gulong data[1];
37@@ -768,11 +769,12 @@ systray_manager_set_visual (SystrayManager *manager)
38 visual_atom = gdk_x11_get_xatom_by_name_for_display (display,
39 "_NET_SYSTEM_TRAY_VISUAL");
40
41- if (gdk_screen_is_composited (gtk_widget_get_screen (manager->invisible))
42- && (gdk_screen_get_rgba_visual (screen) != NULL))
43+ visual = gdk_screen_get_rgba_visual (screen);
44+ panel_debug (PANEL_DEBUG_SYSTRAY, "rgba visual is %p", visual);
45+ if (visual != NULL)
46 {
47- /* get the rgba visual */
48- xvisual = GDK_VISUAL_XVISUAL (gdk_screen_get_rgba_visual (screen));
49+ /* use the rgba visual */
50+ xvisual = GDK_VISUAL_XVISUAL (visual);
51 }
52 else
53 {
54diff --git a/plugins/systray/systray.c b/plugins/systray/systray.c
55index 3fb9520c..beae1973 100644
56--- a/plugins/systray/systray.c
57+++ b/plugins/systray/systray.c
58@@ -728,19 +728,9 @@ systray_plugin_box_draw (GtkWidget *box,
59 gpointer user_data)
60 {
61 SystrayPlugin *plugin = XFCE_SYSTRAY_PLUGIN (user_data);
62- GdkScreen *screen;
63-
64 panel_return_if_fail (XFCE_IS_SYSTRAY_PLUGIN (plugin));
65 panel_return_if_fail (cr != NULL);
66
67- screen = gtk_widget_get_screen (GTK_WIDGET (plugin));
68-
69- if (G_LIKELY (screen != NULL))
70- {
71- if (!gdk_screen_is_composited (screen))
72- return;
73- }
74-
75 /* separately draw all the composed tray icons after gtk
76 * handled the draw event */
77 gtk_container_foreach (GTK_CONTAINER (box),
78--
792.21.0
80
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 18e054c9d..ecae873c3 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"
12SRC_URI[sha256sum] = "36ffd26ef7f5867c01ba310475b4358ff0e588cfd5599a266f0037a6c20052a1" 12SRC_URI[sha256sum] = "36ffd26ef7f5867c01ba310475b4358ff0e588cfd5599a266f0037a6c20052a1"
13SRC_URI += " \ 13SRC_URI += " \
14 file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \ 14 file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
15 file://0002-systray-Fix-icons-without-compositing-Bug-14577.patch \
15" 16"
16 17
17python populate_packages_prepend() { 18python populate_packages_prepend() {