BadMatch when X11 window reparented to window with different depth
XSetWindowBackgroundPixmap
on gdk/x11/gdkwindow-x11.c:L3036 results in a BadMatch if the window was reparented with Xlib and the new parent has a different depth. The previous if statement attempts to prevent this, but gdk_window_get_parent
returns the wrong window (from gdk_window_get_parent
's documentation: "this returns the parent as passed to gdk_window_new(), not the actual parent.").
I'm seeing this bug with xembedded tray icons in blockbar.
Steps to reproduce
- Run blockbar
- Run a GTK application with a tray icon. (eg Remmina, Deluge, syncthing-gtk)
- Right click the tray icon or click a button in the application's window
- Application crashes
Version information
- Arch Linux
- GTK 3.24.23
Edited by Sam Bazley