Re: application should automatically inherit X screen?
- From: Owen Taylor <otaylor redhat com>
- To: Leszek Koltunski <leszek koltunski pl>
- Cc: gtk-devel-list gnome org
- Subject: Re: application should automatically inherit X screen?
- Date: Fri, 09 Oct 2009 13:39:43 -0400
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]