[patch] Forward scroll and unused button events to the window manager
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