Dear Maintainer, I tried to collect some more information about this issue and could reproduce it (details in attached file).
It looks like this issue appears just when running gkrellm within XFCE. The issue also shows in current testing. When switching gkrellm to the external downloadable theme it shows this message: The program 'gkrellm' received an X Window System error. This probably reflects a bug in the program. The error was 'BadPixmap (invalid Pixmap parameter)'. (Details: serial 6930 error_code 4 request_code 56 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) Following that advice one comes to this backtrace: (gdb) bt #0 gdk_x_error (display=0x544a60, error=0xbfffe60c) at ../../../../../gdk/x11/gdkmain-x11.c:458 #1 0xb71d7cbf in _XError (dpy=0x544a60, rep=0x65c920) at ../../src/XlibInt.c:1491 #2 0xb71d496c in handle_error (dpy=dpy@entry=0x544a60, err=0x65c920, in_XReply=<optimized out>) at ../../src/xcb_io.c:199 #3 0xb71d4a17 in handle_response (dpy=dpy@entry=0x544a60, response=0x65c920, in_XReply=in_XReply@entry=1) at ../../src/xcb_io.c:324 #4 0xb71d5b0c in _XReply (dpy=0x544a60, rep=0xbfffe77c, extra=0, discard=1) at ../../src/xcb_io.c:634 #5 0xb71d115d in XSync (dpy=0x544a60, discard=0) at ../../src/Sync.c:44 #6 0xb71d11fa in _XSyncFunction (dpy=0x544a60) at ../../src/Synchro.c:35 #7 0xb71d03a7 in XSetTile (dpy=0x544a60, gc=0x681ea0, tile=989) at ../../src/SetTile.c:44 #8 0x0049202c in gkrellm_winop_apply_rootpixmap_transparency () at winops-x11.c:735 #9 0x004330eb in gkrellm_build () at main.c:1941 ... The issue seems to be that XFCE "stores" a XID of a window into "_XROOTPMAP_ID" instead of a XID of a Pixmap. There is this Xfce upstream bug report: https://gitlab.xfce.org/xfce/xfdesktop/-/issues/62 Building a package xfdesktop with both patches shown in the merge request applied, makes gkrellm be able to use such themes. Kind regards, Bernhard
# Bullseye/testing i386 qemu VM 2020-08-21 apt update apt dist-upgrade apt install systemd-coredump mc xfce4 git fakeroot gdb gkrellm gkrellm-dbgsym libgtk2.0-0-dbgsym libglib2.0-0-dbgsym libx11-6-dbgsym xserver-xorg-core-dbgsym apt build-dep gkrellm apt build-dep rr apt build-dep xfdesktop4 reboot mkdir /home/benutzer/source/gkrellm/orig -p cd /home/benutzer/source/gkrellm/orig apt source gkrellm cd mkdir /home/benutzer/source/libx11-6/orig -p cd /home/benutzer/source/libx11-6/orig apt source libx11-6 cd mkdir /home/benutzer/source/xserver-xorg-core/orig -p cd /home/benutzer/source/xserver-xorg-core/orig apt source xserver-xorg-core cd mkdir /home/benutzer/source/xfdesktop4/orig -p cd /home/benutzer/source/xfdesktop4/orig apt source xfdesktop4 cd mkdir /home/benutzer/source/rr/git -p cd /home/benutzer/source/rr/git git clone https://github.com/mozilla/rr.git cd cd /home/benutzer/source/rr/git/ mkdir obj && cd obj cmake ../rr make -j4 # login to xfce export DISPLAY=:0 gkrellm # quit # http://www.muhri.net/gkrellm/nav.php3?node=gkrellmall&sort=name wget http://www.muhri.net/gkrellm/Glass.gkrellm.tar.gz $ md5sum $HOME/Glass.gkrellm.tar.gz 36dd204d9bf3b6dbb6e93795ace5e17d /home/benutzer/Glass.gkrellm.tar.gz cd $HOME/.gkrellm2/themes/ tar -zxf $HOME/Glass.gkrellm.tar.gz cd gkrellm # switch themes by Shift+PgDown benutzer@debian:~$ gkrellm The program 'gkrellm' received an X Window System error. This probably reflects a bug in the program. The error was 'BadPixmap (invalid Pixmap parameter)'. (Details: serial 6930 error_code 4 request_code 56 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) benutzer@debian:~$ gkrellm The program 'gkrellm' received an X Window System error. This probably reflects a bug in the program. The error was 'BadPixmap (invalid Pixmap parameter)'. (Details: serial 6930 error_code 4 request_code 56 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) benutzer@debian:~$ gdb -q --args gkrellm --sync Reading symbols from gkrellm... (No debugging symbols found in gkrellm) (gdb) set width 0 (gdb) set pagination off (gdb) b exit Breakpoint 1 at 0x2d780 (gdb) run Starting program: /usr/bin/gkrellm --sync [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [Detaching after fork from child process 1070] [Detaching after fork from child process 1071] [Detaching after fork from child process 1072] [Detaching after fork from child process 1073] [Detaching after vfork from child process 1074] The program 'gkrellm' received an X Window System error. This probably reflects a bug in the program. The error was 'BadPixmap (invalid Pixmap parameter)'. (Details: serial 29720 error_code 4 request_code 56 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) Breakpoint 1, __GI_exit (status=1) at exit.c:139 139 exit.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 __GI_exit (status=1) at exit.c:139 #1 0xb7a5fe2a in ?? () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 #2 0xb71d7cbf in _XError () from /usr/lib/i386-linux-gnu/libX11.so.6 #3 0xb71d496c in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6 #4 0xb71d4a17 in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6 #5 0xb71d5b0c in _XReply () from /usr/lib/i386-linux-gnu/libX11.so.6 #6 0xb71d115d in XSync () from /usr/lib/i386-linux-gnu/libX11.so.6 #7 0xb71d11fa in ?? () from /usr/lib/i386-linux-gnu/libX11.so.6 #8 0xb71d03a7 in XSetTile () from /usr/lib/i386-linux-gnu/libX11.so.6 #9 0x0049202c in gkrellm_winop_apply_rootpixmap_transparency () #10 0x004330eb in gkrellm_build () #11 0x00479982 in ?? () #12 0xb755d406 in g_closure_invoke () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #13 0xb7571290 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #14 0xb757ce00 in g_signal_emit_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #15 0xb757d535 in g_signal_emit () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #16 0xb7b22f67 in ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #17 0xb7b2382b in ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #18 0xb755d406 in g_closure_invoke () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #19 0xb7571290 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #20 0xb757ca33 in g_signal_emit_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #21 0xb757d535 in g_signal_emit () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #22 0xb7b1d928 in gtk_accel_group_activate () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #23 0xb7b1ef50 in gtk_accel_groups_activate () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #24 0xb7d2335f in gtk_window_activate_key () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #25 0xb7d233e0 in ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #26 0xb7be94f7 in ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #27 0xb755d406 in g_closure_invoke () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #28 0xb7570935 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #29 0xb757ca33 in g_signal_emit_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #30 0xb757d535 in g_signal_emit () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 #31 0xb7d0b8c9 in ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #32 0xb7be7306 in gtk_propagate_event () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #33 0xb7be769d in gtk_main_do_event () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #34 0xb7a58619 in ?? () from /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 #35 0xb7337a6d in g_main_context_dispatch () from /usr/lib/i386-linux-gnu/libglib-2.0.so.0 #36 0xb7337d19 in ?? () from /usr/lib/i386-linux-gnu/libglib-2.0.so.0 #37 0xb7338051 in g_main_loop_run () from /usr/lib/i386-linux-gnu/libglib-2.0.so.0 #38 0xb7be6475 in gtk_main () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 #39 0x0042ef20 in main () benutzer@debian:~$ gdb -q --args gkrellm --sync Reading symbols from gkrellm... Reading symbols from /usr/lib/debug/.build-id/03/feec1248801506d5e6779ca961e0985bd284d6.debug... (gdb) set width 0 (gdb) set pagination off (gdb) b gdk_x_error Function "gdk_x_error" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (gdk_x_error) pending. (gdb) run Starting program: /usr/bin/gkrellm --sync [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [Detaching after fork from child process 1227] [Detaching after fork from child process 1228] [Detaching after fork from child process 1229] [Detaching after fork from child process 1230] [Detaching after vfork from child process 1231] Breakpoint 1, gdk_x_error (display=0x544a60, error=0xbfffe60c) at ../../../../../gdk/x11/gdkmain-x11.c:458 458 ../../../../../gdk/x11/gdkmain-x11.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 gdk_x_error (display=0x544a60, error=0xbfffe60c) at ../../../../../gdk/x11/gdkmain-x11.c:458 #1 0xb71d7cbf in _XError (dpy=0x544a60, rep=0x65c920) at ../../src/XlibInt.c:1491 #2 0xb71d496c in handle_error (dpy=dpy@entry=0x544a60, err=0x65c920, in_XReply=<optimized out>) at ../../src/xcb_io.c:199 #3 0xb71d4a17 in handle_response (dpy=dpy@entry=0x544a60, response=0x65c920, in_XReply=in_XReply@entry=1) at ../../src/xcb_io.c:324 #4 0xb71d5b0c in _XReply (dpy=0x544a60, rep=0xbfffe77c, extra=0, discard=1) at ../../src/xcb_io.c:634 #5 0xb71d115d in XSync (dpy=0x544a60, discard=0) at ../../src/Sync.c:44 #6 0xb71d11fa in _XSyncFunction (dpy=0x544a60) at ../../src/Synchro.c:35 #7 0xb71d03a7 in XSetTile (dpy=0x544a60, gc=0x681ea0, tile=989) at ../../src/SetTile.c:44 #8 0x0049202c in gkrellm_winop_apply_rootpixmap_transparency () at winops-x11.c:735 #9 0x004330eb in gkrellm_build () at main.c:1941 #10 0x00479982 in cb_load_theme (action=0x6694f0, widget=0x0) at gui.c:1780 #11 0xb755d406 in g_closure_invoke (closure=0x66a1c0, return_value=0x0, n_param_values=1, param_values=0xbfffea90, invocation_hint=0xbfffea34) at ../../../gobject/gclosure.c:810 #12 0xb7571290 in signal_emit_unlocked_R (node=node@entry=0x56fb20, detail=detail@entry=0, instance=instance@entry=0x6694f0, emission_return=<optimized out>, instance_and_params=<optimized out>) at ../../../gobject/gsignal.c:3742 #13 0xb757ce00 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=0xbfffebec ",/\262\267") at ../../../gobject/gsignal.c:3498 #14 0xb757d535 in g_signal_emit (instance=0x6694f0, signal_id=96, detail=0) at ../../../gobject/gsignal.c:3554 #15 0xb7b22f67 in _gtk_action_emit_activate (action=0x6694f0) at ../../../../gtk/gtkaction.c:795 #16 0xb7b2382b in closure_accel_activate (n_param_values=4, param_values=0xbfffed90, invocation_hint=0xbfffed34, marshal_data=0x0, return_value=0xbfffed48, closure=0x56ff90) at ../../../../gtk/gtkaction.c:1766 #17 closure_accel_activate (closure=0x56ff90, return_value=0xbfffed48, n_param_values=4, param_values=0xbfffed90, invocation_hint=0xbfffed34, marshal_data=0x0) at ../../../../gtk/gtkaction.c:1757 #18 0xb755d406 in g_closure_invoke (closure=0x56ff90, return_value=0xbfffed48, n_param_values=4, param_values=0xbfffed90, invocation_hint=0xbfffed34) at ../../../gobject/gclosure.c:810 #19 0xb7571290 in signal_emit_unlocked_R (node=node@entry=0x66b8f0, detail=detail@entry=620, instance=instance@entry=0x65db40, emission_return=<optimized out>, instance_and_params=<optimized out>) at ../../../gobject/gsignal.c:3742 #20 0xb757ca33 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=0xbfffef38 "X\357\377\277\316ر\267PbV") at ../../../gobject/gsignal.c:3508 #21 0xb757d535 in g_signal_emit (instance=0x65db40, signal_id=103, detail=620) at ../../../gobject/gsignal.c:3554 #22 0xb7b1d928 in IA__gtk_accel_group_activate (accel_group=0x65db40, accel_quark=620, acceleratable=0x566248, accel_key=65366, accel_mods=GDK_SHIFT_MASK) at ../../../../gtk/gtkaccelgroup.c:891 #23 0xb7b1ef50 in IA__gtk_accel_groups_activate (accel_mods=GDK_SHIFT_MASK, accel_key=65366, object=0x566248) at ../../../../gtk/gtkaccelgroup.c:928 #24 IA__gtk_accel_groups_activate (object=0x566248, accel_key=65366, accel_mods=GDK_SHIFT_MASK) at ../../../../gtk/gtkaccelgroup.c:911 #25 0xb7d2335f in IA__gtk_window_activate_key (window=0x566248, event=0x684070) at ../../../../gtk/gtkwindow.c:8355 #26 0xb7d233e0 in gtk_window_key_press_event (widget=0x566248, event=0x684070) at ../../../../gtk/gtkwindow.c:5225 #27 0xb7be94f7 in _gtk_marshal_BOOLEAN__BOXED (closure=0x572740, return_value=0xbffff198, n_param_values=2, param_values=0xbffff1e0, invocation_hint=0xbffff184, marshal_data=0xb7d233c0 <gtk_window_key_press_event>) at ../../../../gtk/gtkmarshalers.c:84 #28 0xb755d406 in g_closure_invoke (closure=0x572740, return_value=0xbffff198, n_param_values=2, param_values=0xbffff1e0, invocation_hint=0xbffff184) at ../../../gobject/gclosure.c:810 #29 0xb7570935 in signal_emit_unlocked_R (node=node@entry=0x572770, detail=detail@entry=0, instance=instance@entry=0x566248, emission_return=<optimized out>, instance_and_params=<optimized out>) at ../../../gobject/gsignal.c:3780 #30 0xb757ca33 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=0xbffff360 "\210\363\377\277\260\060Y") at ../../../gobject/gsignal.c:3508 #31 0xb757d535 in g_signal_emit (instance=0x566248, signal_id=42, detail=0) at ../../../gobject/gsignal.c:3554 #32 0xb7d0b8c9 in gtk_widget_event_internal (widget=widget@entry=0x566248, event=event@entry=0x684070) at ../../../../gtk/gtkwidget.c:5010 #33 0xb7d0bbb9 in IA__gtk_widget_event (widget=0x566248, event=0x684070) at ../../../../gtk/gtkwidget.c:4807 #34 0xb7be7306 in IA__gtk_propagate_event (widget=0x566248, event=0x684070) at ../../../../gtk/gtkmain.c:2477 #35 0xb7be769d in IA__gtk_main_do_event (event=0x684070) at ../../../../gtk/gtkmain.c:1698 #36 IA__gtk_main_do_event (event=0x684070) at ../../../../gtk/gtkmain.c:1503 #37 0xb7a58619 in gdk_event_dispatch (source=0x568d10, callback=0x0, user_data=0x0) at ../../../../../gdk/x11/gdkevents-x11.c:2425 #38 0xb7337a6d in g_main_dispatch (context=0x568df0) at ../../../glib/gmain.c:3309 #39 g_main_context_dispatch (context=0x568df0) at ../../../glib/gmain.c:3974 #40 0xb7337d19 in g_main_context_iterate (context=0x568df0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047 #41 0xb7338051 in g_main_loop_run (loop=<optimized out>) at ../../../glib/gmain.c:4241 #42 0xb7be6475 in IA__gtk_main () at ../../../../gtk/gtkmain.c:1270 #43 0x0042ef20 in main (argc=<optimized out>, argv=<optimized out>) at main.c:2344 (gdb) directory /home/benutzer/source/gkrellm/orig/gkrellm-2.3.10/src Source directories searched: /home/benutzer/source/gkrellm/orig/gkrellm-2.3.10/src:$cdir:$cwd (gdb) list gkrellm_winop_apply_rootpixmap_transparency 678 } 679 } 680 681 void 682 gkrellm_winop_apply_rootpixmap_transparency(void) 683 { 684 Window child; 685 GtkWidget *top_window = gkrellm_get_top_window(); 686 Atom prop, 687 ret_type = (Atom) 0; 688 GList *list; 689 GkrellmMonitor *mon; 690 GkrellmChart *cp; 691 GkrellmPanel *p; 692 guchar *prop_return = NULL; 693 gint fmt; 694 gulong nitems, bytes_after; 695 gint depth_visual; 696 Window root_return; 697 guint w_ret, h_ret, bw_ret, depth_ret; 698 gint x_ret, y_ret, x_root, y_root; 699 700 if (!_GK.any_transparency) 701 return; 702 prop = XInternAtom(GDK_DISPLAY(), "_XROOTPMAP_ID", True); 703 if (prop == None) 704 return; 705 XGetWindowProperty(GDK_DISPLAY(), GDK_ROOT_WINDOW(), prop, 0L, 1L, False, 706 AnyPropertyType, &ret_type, &fmt, &nitems, &bytes_after, 707 &prop_return); 708 if (prop_return && ret_type == XA_PIXMAP) 709 { 710 root_xpixmap = *((Pixmap *) prop_return); 711 XFree(prop_return); 712 } 713 if (root_xpixmap == None) 714 return; 715 if (trans_gc == NULL) 716 { 717 trans_gc = gdk_gc_new(top_window->window); 718 gdk_gc_copy(trans_gc, _GK.draw1_GC); 719 } 720 721 depth_ret = 0; 722 depth_visual = gdk_drawable_get_visual(top_window->window)->depth; 723 if ( !XGetGeometry(GDK_DISPLAY(), root_xpixmap, &root_return, 724 &x_ret, &y_ret, &w_ret, &h_ret, &bw_ret, &depth_ret) 725 || depth_ret != depth_visual 726 ) 727 { 728 root_xpixmap = None; 729 return; 730 } 731 732 /* I could use gdk_pixmap_foreign_new() and stay in the gdk domain, 733 | but it fails (in XGetGeometry()) if I change backgrounds. 734 */ 735 XSetTile(GDK_DISPLAY(), GDK_GC_XGC(trans_gc), root_xpixmap); 736 XSetFillStyle(GDK_DISPLAY(), GDK_GC_XGC(trans_gc), FillTiled); 737 for (list = gkrellm_get_chart_list(); list; list = list->next) 738 { 739 cp = (GkrellmChart *) list->data; 740 if (!cp->transparency || !cp->shown) 741 continue; 742 gkrellm_winop_draw_rootpixmap_onto_transparent_chart(cp); 743 gkrellm_refresh_chart(cp); 744 } 745 for (list = gkrellm_get_panel_list(); list; list = list->next) 746 { 747 p = (GkrellmPanel *) list->data; 748 if (!p->transparency || !p->shown) 749 continue; 750 gkrellm_draw_panel_label(p); 751 } 752 XTranslateCoordinates(GDK_DISPLAY(), 753 GDK_WINDOW_XWINDOW(top_window->window), 754 GDK_ROOT_WINDOW(), 755 0, 0, &x_root, &y_root, &child); 756 for (list = gkrellm_monitor_list; list; list = list->next) 757 { 758 mon = (GkrellmMonitor *) list->data; 759 draw_rootpixmap_onto_transparent_spacers(mon, x_root, y_root); 760 } 761 gdk_gc_set_clip_mask(_GK.text_GC, NULL); 762 } (gdb) set environment DISPLAY=:9 export DISPLAY=:0 xtrace benutzer@debian:~$ xtrace No display name to create specified, trying :9 ... 000:<:a192: 4: Request(43): GetInputFocus 000:>:a192:32: Reply to GetInputFocus: revert-to=Parent(0x02) focus=0x02a00004 000:<:a193: 4: Request(43): GetInputFocus 000:>:a193:32: Reply to GetInputFocus: revert-to=Parent(0x02) focus=0x02a00004 000:<:a194: 24: Request(56): ChangeGC gc=0x02a00451 values={tile=0x000003dd tile-stipple-x-origin=0 tile-stipple-y-origin=0} 000:<:a195: 4: Request(43): GetInputFocus 000:>:a194:Error 4=Pixmap: major=56, minor=0, bad=0x00000000, seq=a194 000:>:a195:32: Reply to GetInputFocus: revert-to=Parent(0x02) focus=0x02a00004 directory /home/benutzer/source/gkrellm/orig/gkrellm-2.3.10/src directory /home/benutzer/source/libx11-6/orig/libx11-1.6.10/src directory /home/benutzer/source/xserver-xorg-core/orig/xorg-server-1.20.8/hw/xfree86/os-support/linux directory /home/benutzer/source/xserver-xorg-core/orig/xorg-server-1.20.8/hw/xfree86/os-support/linux/int10/vm86 # Maybe similar: https://bugzilla.redhat.com/show_bug.cgi?id=1672117#c18 https://forum.mxlinux.org/viewtopic.php?t=53528 https://www.linuxquestions.org/questions/slackware-14/xfce-for-slackware-users-4175634079/page15.html https://gitlab.xfce.org/xfce/xfdesktop/-/issues/62 ############# # Xorg side: (gdb) next 1205 if (res->id == id && res->type == rtype) 1: res = (ResourcePtr) 0xbd4e20 (gdb) display res->id 2: res->id = 989 (gdb) display id 3: id = 989 (gdb) display res->type 4: res->type = 35 (gdb) display rtype 5: rtype = 1073741826 ... (gdb) next ... (gdb) 1205 if (res->id == id && res->type == rtype) 1: res = (ResourcePtr) 0x8b9070 2: res->id = 989 3: id = 989 4: res->type = 1073741825 5: rtype = 1073741826 (gdb) print/x 35 $7 = 0x23 (gdb) print/x 1073741826 $8 = 0x40000002 (gdb) print/x 1073741825 $9 = 0x40000001 ./include/resource.h:62:#define RC_DRAWABLE ((RESTYPE)1<<30) ./include/resource.h:74:#define RT_WINDOW ((RESTYPE)1|RC_DRAWABLE) ./include/resource.h:75:#define RT_PIXMAP ((RESTYPE)2|RC_DRAWABLE) (gdb) bt #0 dixLookupResourceByType (result=0xbfb89750, id=989, rtype=1073741826, client=0xee0b80, mode=1) at ../../../../dix/resource.c:1205 #1 0x0047747f in ChangeGCXIDs (client=0xee0b80, pGC=pGC@entry=0x11422d0, mask=mask@entry=13312, pC32=0xbe36fc) at ../../../../dix/gc.c:452 #2 0x00477513 in ChangeGCXIDs (client=<optimized out>, pGC=0x11422d0, mask=13312, pC32=0xbe36fc) at ../../../../dix/gc.c:436 #3 0x0045d081 in ProcChangeGC (client=0xee0b80) at ../../../../dix/dispatch.c:1527 #4 0x00461de6 in Dispatch () at ../../../../dix/dispatch.c:478 #5 0x004662b3 in dix_main (argc=10, argv=0xbfb899f4, envp=0xbfb89a20) at ../../../../dix/main.c:276 #6 0x0044f3ab in main (argc=10, argv=0xbfb899f4, envp=0xbfb89a20) at ../../../../dix/stubmain.c:34 # Client side: (gdb) bt #0 0xb7fd41cd in __kernel_vsyscall () #1 0xb6d40327 in __GI___poll (fds=0xbfffe57c, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #2 0xb6ac7d8d in () at /usr/lib/i386-linux-gnu/libxcb.so.1 #3 0xb6ac9c36 in () at /usr/lib/i386-linux-gnu/libxcb.so.1 #4 0xb6ac9df0 in xcb_wait_for_reply64 () at /usr/lib/i386-linux-gnu/libxcb.so.1 #5 0xb71d19c3 in _XReply (dpy=0x544a60, rep=0xbfffe77c, extra=0, discard=1) at ../../src/xcb_io.c:609 #6 0xb71cd15d in XSync (dpy=0x544a60, discard=0) at ../../src/Sync.c:44 #7 0xb71cd1fa in _XSyncFunction (dpy=0x544a60) at ../../src/Synchro.c:35 #8 0xb71cc3a7 in XSetTile (dpy=0x544a60, gc=0x659a60, tile=989) at ../../src/SetTile.c:44 #9 0x0049202c in gkrellm_winop_apply_rootpixmap_transparency () at winops-x11.c:735 #10 0x004330eb in gkrellm_build () at main.c:1941 #11 0x00479982 in cb_load_theme (action=0x667cf0 [GtkAction], widget=0x0) at gui.c:1780 #15 0xb7579535 in <emit signal ??? on instance 0x667cf0 [GtkAction]> (instance=0x667cf0, signal_id=96, detail=0) at ../../../gobject/gsignal.c:3554 #12 0xb7559406 in g_closure_invoke (closure=0x56fd40, return_value=0x0, n_param_values=1, param_values=0xbfffea90, invocation_hint=0xbfffea34) at ../../../gobject/gclosure.c:810 #13 0xb756d290 in signal_emit_unlocked_R (node=node@entry=0x65f030, detail=detail@entry=0, instance=instance@entry=0x667cf0, emission_return=<optimized out>, instance_and_params=<optimized out>) at ../../../gobject/gsignal.c:3742 #14 0xb7578e00 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=0xbfffebec ",ﱷ") at ../../../gobject/gsignal.c:3498 #16 0xb7b1ef67 in _gtk_action_emit_activate (action=0x667cf0 [GtkAction]) at ../../../../gtk/gtkaction.c:795 #17 0xb7b1f82b in closure_accel_activate (n_param_values=4, param_values=0xbfffed90, invocation_hint=0xbfffed34, marshal_data=0x0, return_value=0xbfffed48, closure=0x56fc90) at ../../../../gtk/gtkaction.c:1766 #18 closure_accel_activate (closure=0x56fc90, return_value=0xbfffed48, n_param_values=4, param_values=0xbfffed90, invocation_hint=0xbfffed34, marshal_data=0x0) at ../../../../gtk/gtkaction.c:1757 #22 0xb7579535 in <emit signal accel-activate:<Shift>Page_Down on instance 0x65c740 [GtkAccelGroup]> (instance=0x65c740, signal_id=103, detail=620) at ../../../gobject/gsignal.c:3554 #19 0xb7559406 in g_closure_invoke (closure=0x56fc90, return_value=0xbfffed48, n_param_values=4, param_values=0xbfffed90, invocation_hint=0xbfffed34) at ../../../gobject/gclosure.c:810 #20 0xb756d290 in signal_emit_unlocked_R (node=node@entry=0x6699e0, detail=detail@entry=620, instance=instance@entry=0x65c740, emission_return=<optimized out>, instance_and_params=<optimized out>) at ../../../gobject/gsignal.c:3742 #21 0xb7578a33 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=0xbfffef38 "X\357\377\277Θ\261\267PbV") at ../../../gobject/gsignal.c:3508 #23 0xb7b19928 in IA__gtk_accel_group_activate (accel_group=0x65c740 [GtkAccelGroup], accel_quark=620, acceleratable=0x566248 [GtkWindow], accel_key=65366, accel_mods=GDK_SHIFT_MASK) at ../../../../gtk/gtkaccelgroup.c:891 #24 0xb7b1af50 in IA__gtk_accel_groups_activate (accel_mods=GDK_SHIFT_MASK, accel_key=65366, object=0x566248 [GtkWindow]) at ../../../../gtk/gtkaccelgroup.c:928 #25 IA__gtk_accel_groups_activate (object=0x566248 [GtkWindow], accel_key=65366, accel_mods=GDK_SHIFT_MASK) at ../../../../gtk/gtkaccelgroup.c:911 #26 0xb7d1f35f in IA__gtk_window_activate_key (window=0x566248 [GtkWindow], event=0x6309a0) at ../../../../gtk/gtkwindow.c:8355 #27 0xb7d1f3e0 in gtk_window_key_press_event (widget=0x566248 [GtkWindow], event=0x6309a0) at ../../../../gtk/gtkwindow.c:5225 #32 0xb7579535 in <emit signal ??? on instance 0x566248 [GtkWindow]> (instance=0x566248, signal_id=42, detail=0) at ../../../gobject/gsignal.c:3554 #28 0xb7be54f7 in _gtk_marshal_BOOLEAN__BOXED (closure=0x5728e0, return_value=0xbffff198, n_param_values=2, param_values=0xbffff1e0, invocation_hint=0xbffff184, marshal_data=0xb7d1f3c0 <gtk_window_key_press_event>) at ../../../../gtk/gtkmarshalers.c:84 #29 0xb7559406 in g_closure_invoke (closure=0x5728e0, return_value=0xbffff198, n_param_values=2, param_values=0xbffff1e0, invocation_hint=0xbffff184) at ../../../gobject/gclosure.c:810 #30 0xb756c935 in signal_emit_unlocked_R (node=node@entry=0x572910, detail=detail@entry=0, instance=instance@entry=0x566248, emission_return=<optimized out>, instance_and_params=<optimized out>) at ../../../gobject/gsignal.c:3780 #31 0xb7578a33 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=0xbffff360 "\210\363\377\277P3Y") at ../../../gobject/gsignal.c:3508 #33 0xb7d078c9 in gtk_widget_event_internal (widget=widget@entry=0x566248 [GtkWindow], event=event@entry=0x6309a0) at ../../../../gtk/gtkwidget.c:5010 #34 0xb7d07bb9 in IA__gtk_widget_event (widget=0x566248 [GtkWindow], event=0x6309a0) at ../../../../gtk/gtkwidget.c:4807 #35 0xb7be3306 in IA__gtk_propagate_event (widget=0x566248 [GtkWindow], event=0x6309a0) at ../../../../gtk/gtkmain.c:2477 #36 0xb7be369d in IA__gtk_main_do_event (event=0x6309a0) at ../../../../gtk/gtkmain.c:1698 #37 IA__gtk_main_do_event (event=0x6309a0) at ../../../../gtk/gtkmain.c:1503 #38 0xb7a54619 in gdk_event_dispatch (source=0x568d30, callback=0x0, user_data=0x0) at ../../../../../gdk/x11/gdkevents-x11.c:2425 #39 0xb7333a6d in g_main_dispatch (context=0x568e10) at ../../../glib/gmain.c:3309 #40 g_main_context_dispatch (context=0x568e10) at ../../../glib/gmain.c:3974 #41 0xb7333d19 in g_main_context_iterate (context=0x568e10, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047 #42 0xb7334051 in g_main_loop_run (loop=<optimized out>) at ../../../glib/gmain.c:4241 #43 0xb7be2475 in IA__gtk_main () at ../../../../gtk/gtkmain.c:1270 #44 0x0042ef20 in main (argc=<optimized out>, argv=<optimized out>) at main.c:2344 (gdb) list resource.c:1190,1225 1190 int 1191 dixLookupResourceByType(void **result, XID id, RESTYPE rtype, 1192 ClientPtr client, Mask mode) 1193 { 1194 int cid = CLIENT_ID(id); 1195 ResourcePtr res = NULL; 1196 1197 *result = NULL; 1198 if ((rtype & TypeMask) > lastResourceType) 1199 return BadImplementation; 1200 1201 if ((cid < LimitClients) && clientTable[cid].buckets) { 1202 res = clientTable[cid].resources[HashResourceID(id, clientTable[cid].hashsize)]; 1203 1204 for (; res; res = res->next) 1205 if (res->id == id && res->type == rtype) 1206 break; 1207 } 1208 if (client) { 1209 client->errorValue = id; 1210 } 1211 if (!res) 1212 return resourceTypes[rtype & TypeMask].errorValue; 1213 1214 if (client) { 1215 cid = XaceHook(XACE_RESOURCE_ACCESS, client, id, res->type, 1216 res->value, RT_NONE, NULL, mode); 1217 if (cid == BadValue) 1218 return resourceTypes[rtype & TypeMask].errorValue; 1219 if (cid != Success) 1220 return cid; 1221 } 1222 1223 *result = res->value; 1224 return Success; 1225 } (gdb) list gc.c:430,462 430 int 431 ChangeGCXIDs(ClientPtr client, GC * pGC, BITS32 mask, CARD32 *pC32) 432 { 433 ChangeGCVal vals[GCLastBit + 1]; 434 int i; 435 436 if (mask & ~GCAllBits) { 437 client->errorValue = mask; 438 return BadValue; 439 } 440 for (i = Ones(mask); i--;) 441 vals[i].val = pC32[i]; 442 for (i = 0; i < ARRAY_SIZE(xidfields); ++i) { 443 int offset, rc; 444 445 if (!(mask & xidfields[i].mask)) 446 continue; 447 offset = Ones(mask & (xidfields[i].mask - 1)); 448 if (xidfields[i].mask == GCClipMask && vals[offset].val == None) { 449 vals[offset].ptr = NullPixmap; 450 continue; 451 } 452 rc = dixLookupResourceByType(&vals[offset].ptr, vals[offset].val, 453 xidfields[i].type, client, 454 xidfields[i].access_mode); 455 if (rc != Success) { 456 client->errorValue = vals[offset].val; 457 return rc; 458 } 459 } 460 return ChangeGC(client, pGC, mask, vals); 461 } 462 $ export DISPLAY=:0 $ xprop -root XFDESKTOP_IMAGE_FILE_0(STRING) = "/usr/share/images/desktop-base/default" PULSE_COOKIE(STRING) = "b170996d44a6d63610e17a5177ef8f1b63a1ae921d22c7672d25217701817b2aae385f10d25c2e4559551b83459626871a6a25fe106e9bcc427929d1755d3b1e4a85f8767065f1d31e2a74c5707995be1afcadffed35bc927cf77f0adf7ab022a0fa3d1cde4a565b9a75090b64ed9854ee3884e3977d4a329c1db4c8d53c51ae06d52d7969b373f6994814cc736bd5406daf9bca87004342c13495bcef5b1b960adb4c4f98965753cee9a2116443ad447fe8042a01ef07226a23fc97687ad762d5a3c4396718f98eddc3dd8b163deddd2869ad621960271e6db26f70e02a9df2fcf91c77e131bf2295e24270259e536ea6c287146f0f234e6747d97aa35d90d6" PULSE_SERVER(STRING) = "{45f49504b47f4e5690bc479adf67aa5b}unix:/run/user/1000/pulse/native" PULSE_ID(STRING) = "1000@45f49504b47f4e5690bc479adf67aa5b/820" NAUTILUS_DESKTOP_WINDOW_ID(WINDOW): window id # 0x1000028 XFCE_DESKTOP_WINDOW(WINDOW): window id # 0x1000028 _NET_CLIENT_LIST_STACKING(WINDOW): window id # 0x1000028, 0x2a00003, 0xe00003, 0xe0000c, 0xe00010 _NET_DESKTOP_LAYOUT(CARDINAL) = 0, 0, 1, 0 _NET_CLIENT_LIST(WINDOW): window id # 0xe00003, 0xe0000c, 0xe00010, 0x1000028, 0x2a00003 _NET_DESKTOP_NAMES(UTF8_STRING) = "Arbeitsfläche 1", "Arbeitsfläche 2", "Arbeitsfläche 3", "Arbeitsfläche 4", "" XKLAVIER_ALLOW_SECONDARY(INTEGER) = 0 _NET_ACTIVE_WINDOW(WINDOW): window id # 0x2a00003, 0x0 _NET_CURRENT_DESKTOP(CARDINAL) = 0 _NET_DESKTOP_VIEWPORT(CARDINAL) = 0, 0 _NET_DESKTOP_GEOMETRY(CARDINAL) = 1024, 768 _NET_SUPPORTING_WM_CHECK(WINDOW): window id # 0xa00122 _NET_SUPPORTED(ATOM) = _NET_ACTIVE_WINDOW, _NET_CLIENT_LIST, _NET_CLIENT_LIST_STACKING, _NET_CLOSE_WINDOW, _NET_CURRENT_DESKTOP, _NET_DESKTOP_GEOMETRY, _NET_DESKTOP_LAYOUT, _NET_DESKTOP_NAMES, _NET_DESKTOP_VIEWPORT, _NET_FRAME_EXTENTS, _NET_MOVERESIZE_WINDOW, _NET_NUMBER_OF_DESKTOPS, _NET_REQUEST_FRAME_EXTENTS, _NET_SHOWING_DESKTOP, _NET_SUPPORTED, _NET_SUPPORTING_WM_CHECK, _NET_SYSTEM_TRAY_OPCODE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_STICK, _NET_WM_ALLOWED_ACTIONS, _NET_WM_BYPASS_COMPOSITOR, _NET_WM_CONTEXT_HELP, _NET_WM_DESKTOP, _NET_WM_FULLSCREEN_MONITORS, _NET_WM_ICON, _NET_WM_ICON_GEOMETRY, _NET_WM_ICON_NAME, _NET_WM_MOVERESIZE, _NET_WM_NAME, _NET_WM_PID, _NET_WM_PING, _NET_WM_STATE, _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW, _NET_WM_STATE_DEMANDS_ATTENTION, _NET_WM_STATE_FOCUSED, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_HIDDEN, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MODAL, _NET_WM_STATE_SHADED, _NET_WM_STATE_SKIP_PAGER, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_STICKY, _NET_WM_STRUT, _NET_WM_STRUT_PARTIAL, _NET_WM_SYNC_REQUEST, _NET_WM_SYNC_REQUEST_COUNTER, _NET_WM_USER_TIME, _NET_WM_USER_TIME_WINDOW, _NET_WM_WINDOW_OPACITY, _NET_WM_WINDOW_OPACITY_LOCKED, _NET_WM_WINDOW_TYPE, _NET_WM_WINDOW_TYPE_DESKTOP, _NET_WM_WINDOW_TYPE_DIALOG, _NET_WM_WINDOW_TYPE_DOCK, _NET_WM_WINDOW_TYPE_MENU, _NET_WM_WINDOW_TYPE_NORMAL, _NET_WM_WINDOW_TYPE_SPLASH, _NET_WM_WINDOW_TYPE_TOOLBAR, _NET_WM_WINDOW_TYPE_UTILITY, _NET_WORKAREA, _GTK_FRAME_EXTENTS, _GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, _GTK_SHOW_WINDOW_MENU, _NET_STARTUP_ID _NET_WORKAREA(CARDINAL) = 0, 27, 1024, 741, 0, 27, 1024, 741, 0, 27, 1024, 741, 0, 27, 1024, 741 _NET_NUMBER_OF_DESKTOPS(CARDINAL) = 4 AT_SPI_BUS(STRING) = "unix:abstract=/tmp/dbus-b72tTddU8e,guid=4d5f6a038fc9955cdc4926395f3fcc2f" RESOURCE_MANAGER(STRING) = "*customization:\t-color\nXft.hintstyle:\thintnone\nXft.rgba:\tnone\nXcursor.theme:\t\nXcursor.size:\t0\nXcursor.theme_core:\t1\n" ESETROOT_PMAP_ID(PIXMAP): pixmap id # 0x600001 _XROOTPMAP_ID(PIXMAP): pixmap id # 0x3dd GDK_VISUALS(INTEGER) = 752, 960 _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "de", "", "" XFree86_has_VT(INTEGER) = 1 XFree86_VT(INTEGER) = 7 Xorg_Seat(STRING) = "seat0" wget https://gitlab.xfce.org/xfce/xfdesktop/-/commit/4e2988939cee5a9ee865ec7515f389505bb33e87.patch wget https://gitlab.xfce.org/xfce/xfdesktop/-/commit/9f8994ca3e1128d5f8ad0aabcf075895368dfe48.patch patch -p1 < ../4e2988939cee5a9ee865ec7515f389505bb33e87.patch patch -p1 < ../9f8994ca3e1128d5f8ad0aabcf075895368dfe48.patch