[patch] Forward scroll and unused button events to the window manager
Brian J. Tarricone
bjt23 at cornell.edu
Mon Sep 27 00:54:03 CEST 2004
Nils Rennebarth wrote:
> Brian J. Tarricone wrote:
>
>> patch committed, with a few style changes and a fix for multihead
>> setups. thanks!
>
> I knew I missed something. Is there a explanation somewhere of what is
> different with multihead and what to watch for? And btw, is there
> somewhere an explanation of the X concepts like display, screen, etc.?
the gdk API documentation has some (somewhat cryptic) info about
multihead. the basic thing to remember is that you can _never_ use
gdk_display_get_default_screen(). you also can't use things like
gdk_colormap_get_system(). you have to have a copy of the GdkScreen
that applies to your context, and you have to use the gdk_screen_get_*()
functions. for xfce's purpose, we have one instance of a particular app
per display, so you _can_ use GDK_DISPLAY() and
gdk_display_get_default(). having one instance handling multiple
displays is a lot more complicated, and IMHO unnecessary for a DE.
if you're doing screen-related stuff, it's a lot easier to use the gdk
functions, as they abstract xinerama and non-xinerama, whereas Xlib
doesn't. if you want, take a look at
xfce4/xfdesktop/src/xfce-desktop.c. xfce_desktop_new() and a lot of the
backdrop handling code is very sensitive to multiheadedness, so i think
it's a fairly good example (with the exception that it should probably
be better-commented).
-brian
More information about the Xfce4-dev
mailing list