[patch] Forward scroll and unused button events to the window manager

Nils Rennebarth Nils.Rennebarth at web.de
Fri Sep 24 13:21:15 CEST 2004

Brian J. Tarricone wrote:
> the problem with this is that, if a user is using another WM with xfce, the
> scrolling stops working.  that's not acceptable to me.
Sounds suprisingly similar to what Oliver said: Don't take away the 
scrolling feature from xfwm4, people use it as a WM independently from 
xfce. Both of you have a valid point though, so doubling the 
functionality in both places seems inevitable.

> i haven't been
> following the xfwm4 patch, but if there's a hidden pref in there for
> disabling the root windows scrolling, i'd rather see xfdesktop use that as a
> basis for whether or not to foward the events.  or just disable/drop them.
These are fwm4 settings, and successfully reading them does not 
guarantee that fwm4 is running.

The real problem appears to be that for mouse wheel events there is no 
commonly accepted program to be responsible: Desktop/Pager or the Window 
manager. For keypresses that is decided: the Desktop ignores them.

There is another problem here: What should happen on the first resp. 
last window: just stop there, or cycle? People voice different opinions, 
so it appears to be a user preference. Now interestingly xfdesktop and 
xfwm4 implement different views: xfdesktop cycles, xfwm4 just stops.
This will get even more interesting when the desktops are laid out in a 
two dimensional grid (see the "Xfwm: support for 2d pagers" thread)

If your concern for dropping the scrolling feature from xfdesktop is 
only backward compatibility, I'd suggest introducing hidden options to 
xfdesktop in the same way as for xfwm4, create a single option called
'scroll_events' which is true by default. If false, scroll events are 
just forwarded to the window manager, who does what he is configured for.

> on a side note, xfdesktop _should_ be forwarding any unused clicks to the WM,
> so i'd like to incorporate some version of your code.

> also, would gdk_event_put() (or gdk_display_put_event()) work?  i'd much
> rather use GDK rather than xlib if the same functionality is available.  if
> it's not, that's fine.
Reading the gdk source superficially, I suspect that 
gdk_display_put_event will not work: It will end up in the same place 
again, probably creating an endless loop, because nothing else changed 
in between. What we want is to pretend that our virtual root window 
isn't there for this particular event, which apparently is not possible 
with gdk alone.

Global Village Sau  ==>        ^..^ |/¯¯¯¯¯
(Kann Fremdsprache) ==>        (oo)

More information about the Xfce4-dev mailing list