Hello Paul, just tried to reproduce this issue. hpanel (and also fspanel) queries the window manager hints via XGetWindowProperty and XA_WM_HINTS.
The result is just casted to a XWMHints structure. This seems to have worked on 32bit systems as padding made all elements at 4 bytes boundaries. On amd64 XGetWindowProperty seems to return the same layout, but the memory layout of XWMHints struct is different. I "think" form reading [1] that XGetWindowProperty just returns an array of 32bit fields, that "accidentically" matched the layout of struct XWMHints on i386. Attached patch replaces XGetWindowProperty by XGetWMHints. This worked in a i386 and amd64 VM for me. Kind regards, Bernhard [1] https://linux.die.net/man/3/xgetwindowproperty
apt update apt install xserver-xorg lightdm openbox pulseaudio xterm psmisc htop mc tmux strace dpkg-dev devscripts quilt gdb valgrind systemd-coredump dh-buildinfo apt install hpanel libxft2-dbgsym libx11-6-dbgsym apt build-dep hpanel mkdir -p hpanel/orig cd hpanel/orig apt source hpanel cd .. cp -a orig try1 cd try1/hpanel-0.3.2 DEB_BUILD_OPTIONS='nostrip noopt debug' dpkg-buildpackage -uc -us dpkg -i /home/benutzer/hpanel/try1/hpanel_0.3.2-4_*.deb mkdir -p libx11-6/orig cd libx11-6/orig apt source libx11-6 cd export DISPLAY=:0 gdb -q --args hpanel directory /home/benutzer/hpanel/try1/hpanel-0.3.2 directory /home/benutzer/libx11-6/orig/libx11-1.6.5/src/util set pagination off set height 0 set width 0 b get_task_hinticon run 32bit: 157 XGetWindowProperty (dd, win, prop, 0, 0x7fffffff, False, (gdb) print *hin $24 = {flags = 39, input = 1, initial_state = 1, icon_pixmap = 12582937, icon_window = 0, icon_x = 0, icon_y = 0, icon_mask = 12582939, window_group = 0} (gdb) print sizeof(*hin) $25 = 36 64bit: 157 XGetWindowProperty (dd, win, prop, 0, 0x7fffffff, False, (gdb) print *hin $17 = {flags = 39, input = 1, initial_state = 0, icon_pixmap = 1, icon_window = 12582937, icon_x = 0, icon_y = 0, icon_mask = 0, window_group = 0} (gdb) print sizeof(*hin) $18 = 56
Description: Use XGetWMHints instead of XGetWindowProperty with XA_WM_HINTS to support LP64. Author: Bernhard Ãbelacker <bernha...@mailbox.org> Bug-Debian: https://bugs.debian.org/887467 Last-Update: 2018-08-14 --- hpanel-0.3.2.orig/hpanel.c +++ hpanel-0.3.2/hpanel.c @@ -235,7 +235,7 @@ get_task_hinticon (task *tk) tk->icon = None; tk->mask = None; - hin = (XWMHints *) get_prop_data (tk->win, XA_WM_HINTS, XA_WM_HINTS, 0); + hin = XGetWMHints(dd, tk->win); if (hin) { if ((hin->flags & IconPixmapHint))