Upon starting a program full screen with NVIDIA Xinerama, the window is immediately moved to the wrong monitor

Bug #727928 reported by Captain Chaos
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
metacity (Ubuntu)
Invalid
Low
Unassigned

Bug Description

Binary package hint: metacity

On a multi-monitor system, when starting a program which starts full screen (such as Firefox or Thunderbird, if you closed them while being full screen), the window is immediately whisked away and moved to the wrong monitor. This is extremely irritating. I am forever having to drag windows back to the monitor I want them to be displayed on, and on which they initially opened.

I'm guessing that it's metacity which is doing this (I'm not using desktop effects), but if that is wrong please let me know which package it should be!

More details: I have two NVidia Geforce 8800 GTX cards, and three monitors. My middle monitor is connected to the first card, the other two to the second card. I'm using the proprietary NVidia driver with Xinerama enabled in order to be able to use all three screens as one desktop. I shall attach my xorg.conf file for the exact configuration.

It doesn't happen for every program. For instance, gedit also remembers when you closed it while it was full screen, and opens full screen again, but it stays on the monitor it opens op. It happens consistently for Firefox and Thunderbird at least.

Initially, the window opens on the monitor the mouse is on, as expected, but within a fraction of a second, it is moved to the left monitor. It always moves to the left monitor, never another one. It also only seems to happen the first time the window gets the focus. Usually that is right away, but occasionally the window will open behind another window, stay where it is, and then jump to the left monitor when I first move my mouse over it.

Please let me know how I can help debug this problem!

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: metacity 1:2.30.2-0ubuntu1
ProcVersionSignature: Ubuntu 2.6.35-27.48-generic 2.6.35.11
Uname: Linux 2.6.35-27-generic i686
NonfreeKernelModules: nvidia
Architecture: i386
Date: Wed Mar 2 18:35:56 2011
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release i386 (20101007)
ProcEnviron:
 LANG=en_US.utf8
 SHELL=/bin/bash
SourcePackage: metacity

Revision history for this message
Captain Chaos (launchpad-chaos) wrote :
Revision history for this message
Captain Chaos (launchpad-chaos) wrote :
Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

Additional data point: it doesn't matter how I start the program. Firefox, for instance, will demonstrate this problem whether I launch it using the icon on the top panel, the Firefox entry in the Internet menu, or by typing "firefox" in a terminal window.

Revision history for this message
Pedro Villavicencio (pedro) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. The issue that you reported is one that should be reproducible with the live environment of the Desktop CD of the development release - Oneiric Ocelot. It would help us greatly if you could test with it so we can work on getting it fixed in the next release of Ubuntu. You can find out more about the development release at http://www.ubuntu.com/testing/ . Thanks again and we appreciate your help.

Changed in metacity (Ubuntu):
importance: Undecided → Low
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for metacity (Ubuntu) because there has been no activity for 60 days.]

Changed in metacity (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

Well I guess that's one way to reduce the number of open bugs...

Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

I tried to reproduce the problem with the live CD of Oneiric Ocelot, but since the open source NVidia driver in there does not support multiple cards, I can't. It also did not allow me to install the proprietary NVidia driver.

Even if it did, I doubt that I would be able to reproduce the bug since it now forces you to use Unity, which I'm sure uses a different window manager.

Changed in metacity (Ubuntu):
status: Expired → New
Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

I installed Oneiric Ocelot, and the problem still exists. It is still the case that:

* I have to use the proprietary NVidia driver because the open source driver STILL does not support multiple cards.
* I have to enable Xinerama to be able to drag windows between monitors. If I don't I get completely separate desktops.
* If Xinerama is enabled 3D effects don't work. Ubuntu apparently doesn't realise this and still tries to use the "Ubuntu" (in other words Unity 3D) session by default, which doesn't work (it just hangs), leaving me unable to log in.
* I have to install and use the GNOME Classic (no effects) session to be able to log in at all.
* Which STILL moves every full screen window that opens to my left monitor instead of the center one.

Why is it so hard to get Ubuntu to leave my windows alone and let them stay on the monitor on which it opens?!

Revision history for this message
Bryce Harrington (bryce) wrote :
Download full text (3.2 KiB)

> * I have to use the proprietary NVidia driver because the open source driver STILL does not support multiple cards.
Known issue with most all the FOSS video drivers. Bug #316514

> * I have to enable Xinerama to be able to drag windows between monitors. If I don't I get completely separate desktops.
Right, NVIDIA doesn't support XRANDR 1.2 (which provides for extended displays) so have to use Xinerama or Twinview.

> * If Xinerama is enabled 3D effects don't work. Ubuntu apparently doesn't realise this and still tries to use the "Ubuntu" (in other words Unity 3D) session by default, which doesn't work (it just hangs), leaving me unable to log in.
This sounds like a legitimate bug (two bugs really). Would need to see the actual error messages to diagnose as there's a few different ways this can result. Better to handle those issues in separate bug reports.

> * I have to install and use the GNOME Classic (no effects) session to be able to log in at all.
Why not Unity-2D?

> * Which STILL moves every full screen window that opens to my left monitor instead of the center one.
Sure, that's still metacity so still the same software. Unfortunately I doubt Canonical will be investing engineer time into metacity since they're focusing efforts on Unity. So if you care only about metacity I'd suggest going directly upstream with this issue; it likely won't be worked on in Ubuntu.

> Why is it so hard to get Ubuntu to leave my windows alone and let them stay on the monitor on which it opens?!

To the contrary, this is a metacity behavior, not by Ubuntu's design.

Admittedly, once in a while I see windows getting opened on the other display, however those are likely to be bugs, not by design. The UX Multi-Monitor design specification specifically defines the expected behavior:

"""
2.7 Placing New Windows

When creating new windows for an application, the windows should be placed on the display which currently has focus. A display has focus if it contains the mouse cursor.

This has the perceived effect of application windows appearing on the display which:

 - contains the Launcher used to launch the application or open a new window

 - contains the Dash or Indicators menu used to launch the application

 - contains the desktop shortcut icon used to launch the application

 - contains the file icon used to launch the application by file association

 - contains the application menu bar used to choose a New Window command

 - has keyboard focus for keyboard shortcuts

When an application persists the geometry of it’s windows across launch invocations, the windows should always be restored onto the display which has focus upon launching the application. This is to ensure that windows always appear in a consistent and predictable fashion.

This approach may fail to satisfy use cases where an application has a complex user interface, which is organised across more than one display. In a later phase, relative positioning strategies could be developed to satisfy these cases. For example, the main (eg. document/content) window will be restored onto the display with focus, whilst a cluster of tool palettes is placed on the display to the right of...

Read more...

summary: - Upon starting a program full screen, the window is immediately moved to
- the wrong monitor
+ Upon starting a program full screen with NVIDIA Xinerama, the window is
+ immediately moved to the wrong monitor
Revision history for this message
Captain Chaos (launchpad-chaos) wrote :

> Why not Unity-2D?

Because Unity-2D doesn't work with Xinerama either. It puts everything on my left monitor, and puts an identical copy of the screen on the second and third monitors. If I try to drag something off the left monitor it just disappears, and clicking the mouse on the second or third monitor has no effect.

The *only* combination that (more or less) works for me (on a system which is by no means old or exotic) is the proprietary driver with GNOME Classic without effects. If that is the only thing that Ubuntu can offer me, then it's not unreasonable to expect it to at least work correctly.

> To the contrary, this is a metacity behavior, not by Ubuntu's design.

I get that it isn't by design. That's what makes it a bug. And I understand that the bug is in metacity, that's why I filed the bug on metacity.

I understand that Ubuntu doesn't have unlimited resources, but this bug can't be that hard to fix. Note that the window is initially opened on the *correct* monitor. But then (once it first receives the focus, it appears to be, which isn't always immediately) something (presumably metacity) moves the window to the wrong monitor.

It is active behaviour, probably a feature which is misfiring, which can't be that hard to just turn off or disable, or at least make configurable, for someone familiar with the metacity codebase. Perhaps it even already is configurable, if only someone could tell me how!

I'd also like to point out that there is no evidence that this is specific to Nvidia, or even Xinerama. The only way I can get multiple monitors to work at all is with Xinerama, but for all I know the same would happen without it.

Revision history for this message
dino99 (9d9) wrote :

EOL have been reached, so no more maintenance. If that issue still exist, then report again using ubuntu-bug.

Changed in metacity (Ubuntu):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.