After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 479959 - Pager does no longer work with multiple screens
Pager does no longer work with multiple screens
Status: RESOLVED FIXED
Product: libwnck
Classification: Core
Component: pager
2.20.x
Other All
: Normal normal
: ---
Assigned To: libwnck maintainers
libwnck maintainers
: 512521 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2007-09-24 20:28 UTC by Christoph Anton Mitterer
Modified: 2008-03-15 10:31 UTC
See Also:
GNOME target: ---
GNOME version: 2.19/2.20



Description Christoph Anton Mitterer 2007-09-24 20:28:03 UTC
Please describe the problem:
Hi.

I'm using a dual display setup with X, but not using Xinerama or TwinView or so, but to "X-screens" (0.0 and 0.1).

I have to workspace switchers (one on each screen).
Until 2.20 (I used 2.18 before) I could change them separately. Know when I click on a desktop on the switcher on screen 0, the highlighted desktops (the way how the appled shows which desktop is selected) changes on both switchers (on each screen). But only the highlighting changes on the screen 1 switcher, the desktop on screen 1 is not changed.

When I select another desktop on the screen 1 (one !!) switcher, the highlightings on both switcher changes, but the desktop on screen 0 (zero !!) changes and not the desktop on screen 1.
The only way now to change the desktop on screen 1 is via keyboard shortcuts.

I know that mutliscreen support is extremely poor in GNOME (what a shame) but I didn't thought that it could even get worse, and that you make working things broken...


Steps to reproduce:


Actual results:


Expected results:


Does this happen every time?
Yes

Other information:
Comment 1 Vincent Untz 2007-09-24 20:49:13 UTC
(I'm assuming your window manager is metacity, if that's not the case, please tell us)

I'm not in a good enough state to know if this is a libwnck or a metacity bug. Moving to libwnck for now.
Comment 2 Christoph Anton Mitterer 2007-09-24 21:11:15 UTC
Ok,.. thanks again (as with the notification area bug).
btw: If there are fixes for these bugs,.. will they go into the 2.20 branch or will I have to wait the long time until 2.22?

Another issue: I'm heavily use multiple screens and as far as I know most GNOME developers only have access to single screen setups...
In my long "experience" with multiple screens, I've probably collected lots of ideas how to improve GNOME's multiscreen support.
I've already filed a big bug some years ago but nothing happened.

Are you much involved in the related parts of GNOME? So I could write you some of my ideas and you can share them with the responsible people.

Regards,
Chris.
Comment 3 Vincent Untz 2007-09-24 21:18:25 UTC
(In reply to comment #2)
> Ok,.. thanks again (as with the notification area bug).
> btw: If there are fixes for these bugs,.. will they go into the 2.20 branch or
> will I have to wait the long time until 2.22?

They'll go in 2.20 if they don't imply major code changes.

> Another issue: I'm heavily use multiple screens and as far as I know most GNOME
> developers only have access to single screen setups...
> In my long "experience" with multiple screens, I've probably collected lots of
> ideas how to improve GNOME's multiscreen support.
> I've already filed a big bug some years ago but nothing happened.
> 
> Are you much involved in the related parts of GNOME? So I could write you some
> of my ideas and you can share them with the responsible people.

The most important part is filing the bugs, and if you've done this, then that's already great :-)

It might be useful to have a list of all those bugs somewhere, so they're easy to reach. Feel free to share ideas with me if you want. Or maybe you can start a wiki page on live.gnome.org and link all the bugs from there and add your ideas there? Then it'll be a good place to start fixing multiscreen bugs.
Comment 4 Christoph Anton Mitterer 2007-12-12 03:26:17 UTC
Any progress here in the meantime?
This bug is extremely annoying and I cannot imagine that it's so difficult to fix as it used to work in 2.18...

Best wishes,
Chris.
Comment 5 Gabriel Schulhof 2007-12-20 10:10:45 UTC
I can confirm that this bug continues to exist in GNOME 2.20.
Comment 6 David Sundqvist 2008-01-09 13:04:55 UTC
I can confirm continued existence of this bug in Workspace Switcher 2.20.2, as shipped in Fedora 8.

An added datapoint tho, the bug appears to be slightly elusive and only appear in some configurations, even if perfectly reproducible (for me at least):

If I add a workspace switcher as a single row to the top panel of each screen it will work as expected (switching each screens appropriate workspaces).

If I add a 2-column workspace switcher in a side panel on screen #1 and a single-row switcher on the top panel of screen #2 it will still work as expected.

However, if I add a switcher to an extra side panel on screen #2 it will assume the same configuration as the switcher on screen #1, and act as if it were a switcher on screen #1 (switching the first screens workspaces, etc).
Comment 7 Christoph Anton Mitterer 2008-01-09 17:53:31 UTC
Wow! You're right,... the top panel (meaning a panel that is located on the top of the screen) works,..
But on the bottom it doesn't.
Comment 8 Vincent Untz 2008-01-09 18:14:58 UTC
David: interesting. At least, this suggests that this is an applet/libwnck bug and not a wm bug.

Could probably be a race where something is setting the internal pointer to the screen to the default screen because the widget hasn't been added to a widget hierarchy. Hrm. Most probably happening, looking at the code.

I think the fix is:
 + in wnck_pager_set_layout_hint(), if pager->priv->screen is NULL, be more clever and don't blindly set the screen. Only set it if the widget has been added to a container (or look at gtk_widget_get_screen_unchecked())
 + maybe the same in wnck_pager_size_request(), although I fail to see why someone would request the size of the widget before having added to a container

If somebody can test this... :-)

(In reply to comment #4)
> Any progress here in the meantime?
> This bug is extremely annoying and I cannot imagine that it's so difficult to
> fix as it used to work in 2.18...

It's actually quite hard to fix if you don't know why this is happening, and since no developer has a setup with multiple X screens, it doesn't help.
Comment 9 David Sundqvist 2008-01-13 20:32:10 UTC
Ok, bear in mind that I'm completely unfamiliar with the code, but I had some time and, following your suggestion, got it working by using the following change: 

in wnck_pager_set_layout_hint()

 /* if we're not realized, we don't know about our screen yet */
  if (pager->priv->screen == NULL)
    if (gtk_widget_has_screen (GTK_WIDGET (pager))) {
       _wnck_pager_set_screen (pager);
    } else {
        return FALSE;
    }
  g_assert (pager->priv->screen != NULL);

Comment 10 Vincent Untz 2008-01-21 16:50:00 UTC
I've committed a fix. I'd love if one of you could try libwnck trunk and check that it works as expected.

Thanks!
Comment 11 David Sundqvist 2008-01-22 12:53:02 UTC
Yay, yes, your fix worked nicely on my machine at work at least.

Thankyou very much :)
Comment 12 Jan "Yenya" Kasprzak 2008-01-28 10:00:18 UTC
In comment #10, is the fix included in libwnck-2.20.3?
I have a similar (but not the same) problem with workspace switcher on a dual screen (not Xinerama) setup, but it has not been fixed by upgrading to
libwnck-2.20.3.

Since it is probably not the same bug, I have filled a separate bug #512521.
Comment 13 Vincent Untz 2008-02-09 13:29:25 UTC
Jan: no, it's not in libwnck 2.20.3.
Comment 14 Vincent Untz 2008-02-09 13:30:15 UTC
*** Bug 512521 has been marked as a duplicate of this bug. ***
Comment 15 Christoph Anton Mitterer 2008-03-14 23:32:32 UTC
Yes,.. it works in GNOME 2.22... at first I thought my system was hacked (when the workspace switcher worked again)... but then it turned out that this bug was actually just fixed ;)


If now someone could fix #346162 an perhaps improve multiscreen support in general (@Vincent: do you remember my email with some proposals?) that would be like Christmas and Easter together ;)

Thanks for fixing,
Chris.
Comment 16 Vincent Untz 2008-03-15 10:31:25 UTC
Christoph: I still have your mail in my inbox :-)