diff options
-rw-r--r-- | meta-xfce/recipes-xfce/xfce4-panel/files/0002-systray-Fix-icons-without-compositing-Bug-14577.patch | 80 | ||||
-rw-r--r-- | meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.4.bb | 1 |
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 @@ | |||
1 | From f6f70cce417fd2982c2ce6f01016ed01deb6a9ae Mon Sep 17 00:00:00 2001 | ||
2 | From: "Ivan A. Melnikov" <iv@altlinux.org> | ||
3 | Date: Mon, 23 Sep 2019 16:18:10 +0400 | ||
4 | Subject: [PATCH] systray: Fix icons without compositing (Bug #14577) | ||
5 | |||
6 | Wrapper window uses RGBA visual when it's available; | ||
7 | systray manager should try to do the same for | ||
8 | the transparent or parent-relative background to work. | ||
9 | |||
10 | That means that the manager and icons will work with | ||
11 | RGBA visual even if the screen is not compositing; so | ||
12 | we should always force-redraw the icons. | ||
13 | |||
14 | Upstream-Status: Accepted [1] | ||
15 | |||
16 | [1] https://git.xfce.org/xfce/xfce4-panel/commit?id=f6f70cce417fd2982c2ce6f01016ed01deb6a9ae | ||
17 | |||
18 | Refs: https://bugzilla.xfce.org/show_bug.cgi?id=14577 | ||
19 | Signed-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 | |||
25 | diff --git a/plugins/systray/systray-manager.c b/plugins/systray/systray-manager.c | ||
26 | index 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 | { | ||
54 | diff --git a/plugins/systray/systray.c b/plugins/systray/systray.c | ||
55 | index 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 | -- | ||
79 | 2.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" | |||
12 | SRC_URI[sha256sum] = "36ffd26ef7f5867c01ba310475b4358ff0e588cfd5599a266f0037a6c20052a1" | 12 | SRC_URI[sha256sum] = "36ffd26ef7f5867c01ba310475b4358ff0e588cfd5599a266f0037a6c20052a1" |
13 | SRC_URI += " \ | 13 | SRC_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 | ||
17 | python populate_packages_prepend() { | 18 | python populate_packages_prepend() { |