I'm also affected by the problem, with gtk+3 3.24.11 and xfce4 panel
4.14.0.

When I run xfce4-panel with PANEL_DEBUG=systray  I see the following in
the debug log:

xfce4-panel(external): xkb-3: child is embedded; 7 properties in queue
xfce4-panel(systray): registered manager on screen 0
xfce4-panel(systray): socket networkmanager applet[0x1244f30] 
(composited=false, relative-bg=false
xfce4-panel(systray): added networkmanager applet[0x1244f30] icon
xfce4-panel(systray): socket clipman[0x14fe490] (composited=false, 
relative-bg=false
xfce4-panel(systray): added clipman[0x14fe490] icon

I tried to dig into that a bit and that lead me to
systray_socket_realize function:

https://git.xfce.org/xfce/xfce4-panel/tree/plugins/systray/systray-
socket.c?h=xfce-4.14.0#n122

Yes, we're not compositing, as the compositing is disabled, so this is
expected. But relative-bg is not set, too -- apparently, the visuals of
the socket widget and its parent differ. And indeed, they are. Here is a
part of my gdb session:

(gdb) step
gtk_widget_get_visual (widget=0x434f30) at gtkwidget.c:11685
11685     g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
(gdb) finish 
Run till exit from #0  gtk_widget_get_visual (widget=0x434f30) at 
gtkwidget.c:11685
0x00007ffff7fc3dd8 in systray_socket_realize (widget=0x434f30) at 
systray-socket.c:139
139       else if (gtk_widget_get_visual (widget) ==
Value returned is $7 = (GdkVisual *) 0x43c590
(gdb) step
gdk_window_get_parent (window=window@entry=0x6f20c0) at gdkwindow.c:2436
2436      g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
(gdb) finish 
Run till exit from #0  gdk_window_get_parent (window=window@entry=0x6f20c0) at 
gdkwindow.c:2436
0x00007ffff7fc3de3 in systray_socket_realize (widget=0x434f30) at 
systray-socket.c:139
139       else if (gtk_widget_get_visual (widget) ==
Value returned is $8 = (GdkWindow *) 0x434900
(gdb) step
gdk_window_get_visual (window=0x434900) at gdkwindow.c:2288
2288      g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
(gdb) finish 
Run till exit from #0  gdk_window_get_visual (window=0x434900) at 
gdkwindow.c:2288
0x00007ffff7fc3deb in systray_socket_realize (widget=0x434f30) at 
systray-socket.c:139
139       else if (gtk_widget_get_visual (widget) ==
Value returned is $9 = (GdkVisual *) 0x442850
(gdb) p *((GdkVisual *) 0x43c590)
$10 = {parent_instance = {g_type_instance = {g_class = 0x43c090}, ref_count = 
2, qdata = 0x0}, type = GDK_VISUAL_TRUE_COLOR, depth = 24, byte_order = 
GDK_LSB_FIRST, colormap_size = 256, bits_per_rgb = 8, red_mask = 16711680, 
  green_mask = 65280, blue_mask = 255, screen = 0x43a020}
(gdb) p *((GdkVisual *) 0x442850)
$11 = {parent_instance = {g_type_instance = {g_class = 0x43c090}, ref_count = 
2, qdata = 0x0}, type = GDK_VISUAL_TRUE_COLOR, depth = 32, byte_order = 
GDK_LSB_FIRST, colormap_size = 256, bits_per_rgb = 8, red_mask = 16711680, 
  green_mask = 65280, blue_mask = 255, screen = 0x43a020}


So, the widget has 24 bit visual, but it's parent has 32 bit visual, so no 
parent-relative background.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1797417

Title:
  Background of system tray icons not drawn properly

To manage notifications about this bug go to:
https://bugs.launchpad.net/xfce4-panel/+bug/1797417/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to