Skip to content

xfce4-panel / tasklist-widget.c (Window Buttons) incorrect per-monitor filtering on Nvidia Xinerama

When I uncheck "Show windows from all monitors", only the applet on the leftmost monitor shows buttons, but it shows the buttons from windows on all monitors. The applets on the other monitors don't show anything.

I'm on Ubuntu 24.10. NVidia proprietary drivers. Not Wayland. Xinerama is enabled (I think it's the default for the proprietary driver, as I did not have to explicitly enable it on my last install). Xinerama is an nvidia functionality which makes that multiple monitors can be seen as one large monitor and thus makes it possible to stretch a window over multiple monitors or just place it over the seam between 2 monitors and have it entirely visible. Xfce used to be able to handle this well, as panels and windows correctly snap to their respective monitors.

On 4.18.4 it it is still working fine.

On 4.19.3-1 it is broken

The behaviour seems to have changed when a lot of work was done in anticipation of Wayland and some functions were rewritten to use alternative library functions. From glancing over the code, it looks like the problem is in xfce_tasklist_button_visible() where before a gdk_ function was used to determine the monitor for a window and now an xfw_ function is used, but that one seems to see "one big screen" instead of "multiple monitors".

Edited by Peter Van Hertum