On Sat, 2009-10-10 at 00:58 +0800, Leszek Koltunski wrote: > Hello, > > I have a dual screen setup ( no xinerama, just 2 X screens ) and for a > long time I have been seeing the following bugs: if, being on the > secondary screen, I try to launch an application, its window would pop > up in the primary X screen > > I have been bugging Gnome about that and recently I stumbled upon a bug:
Launching is unrelated to the rest of the stuff discussed here... launching is a question of setting the right DISPLAY environment variable for the child to point it to a particular screen. There are GDK functions to help with that that I'm pretty sure the panel uses but I don't know the default of the policy it applies. > https://bugzilla.gnome.org/show_bug.cgi?id=583452 > > which suggests ( more specifically, Matt Keenan's patch in there) that > each GTK application has to explicitly call > > gtk_window_set_screen() > > in order to inherit the X screen from its parent and thus be multihead > aware. ( I guess it the application does not call this, it will always > pop up in screen 0 ? Sorry, I have little experience with GTK) > > I just checked my Ubuntu 9.10 Beta setup and it turns out that the > following: > > - tomboy > - mail-notification > - policykit-gnome ( its authentication dialog ) > - parts of gnome-panel > - indicator applet > > suffer from this bug. Furthermore, other important parts of Gnome ( like > the gnome-mixer in the bug above ) have only recently been fixed. > > Now, the question: couldn't GTK+ automatically figure this one out? > If it does not, we will keep stumbling upon application whose developers > forgot about this since most of them do not run a dual screen setup... I think already GTK+ does everything can do automatically - if it knows the relationship between two windows the screen is inherited. (On particular if you create a dialog and pass in the parent dialog.) The panel and panel applets are a hard case (partly because of the out-of-process nature of panel applets), so there's a lot of specific set_screen() calls in there. And probably lots of missing ones - because nobody tests separate screens. - Owen _______________________________________________ gtk-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtk-devel-list
