mate-desktop / marco

MATE default window manager
https://mate-desktop.org
GNU General Public License v2.0
199 stars 87 forks source link

Clicking on toolbars makes windows jump randomly #98

Open HansPL opened 10 years ago

HansPL commented 10 years ago

I'm using Linux Mint Debian Ed. x64 with Mate desktop and an unusual dual screen configuration on a Nvidia Quattro 2000D: a 2560x1600 main screen and a 1280x1024 secondary screen.

Now several program's windows (like audacious, atril, synaptic) jump erraticaly some 1000 pixels to the right when they hadn't the focus and I click in their toolbar.

This seems related to https://bugzilla.xfce.org/show_bug.cgi?id=8949 where there is also a testcase; the solution seems to be http://git.xfce.org/xfce/xfwm4/commit/?id=099614e3f045e06db7ab509e174510ea74857adb . See also my first bug ticket http://redmine.audacious-media-player.org/issues/407#change-1499 wrongly attributed to audacious.

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/2121181-clicking-on-toolbars-makes-windows-jump-randomly?utm_campaign=plugin&utm_content=tracker%2F841233&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F841233&utm_medium=issues&utm_source=github).
monsta commented 9 years ago

We can't reproduce it. Does it still happen in 1.10?

HansPL commented 9 years ago

Seems to be solved: I recently upgraded to LMDE2 Betsy / Mate and thus Marco to 1.10.2-1+betsy. Since then I never had that jumping again.

Thanks, Hans

HansPL commented 9 years ago

Well, rejoiced too soon… In one instance I have it again: On a root terminal window (only, not a normal user terminal window or other windows), when I click into a free region of the menu bar the window jumps to the right and can be dragged around, hanging far right of the mouse pointer.
Clicking on menu items or clicking /dragging the title bar works as expected.

monsta commented 9 years ago

I can't reproduce it with root terminal here in Betsy...

Anyway, the reports mentioned above seem to be about GTK+3 apps, and mate-terminal is still built with GTK+2 by default; did you build GTK+3 version yourself, by any chance?

HansPL commented 8 years ago

I certainly did not rebuild mate-terminal myself. But since inxi reports — System: Host: cad1 Kernel: 3.16.0-4-amd64 x86_64 (64 bit gcc: 4.8.4) Desktop: MATE 1.10.2 (Gtk 3.14.5) Distro: Linux Mint Debian Edition I'm not sure how Mint built it.

I've got several different machines running LMDE2 Mate, x64 and older i686, but I experience this issue only on this one machine with the different-sized dual screens… Reproducible on three successive days/boots.

Only one other machine has dual screens, in that case two identical 1600x1200 on a GeForce GT610, without this issue. On that machine inxi reports — System: Host: ibl4 Kernel: 3.16.0-4-amd64 x86_64 (64 bit gcc: 4.8.4) Desktop: MATE 1.12.0 (Gtk 3.14.5+4) Distro: LinuxMint 2 betsy Don't know why the MATE differences, both were upgraded from LMDE to LMDE2 and supposedly kept current.

monsta commented 8 years ago

I've managed to reproduce it. Here it happens only with GTK+3 apps (synaptic, mate-system-monitor, galculator, meld). Happens only in Betsy, does not happen in main Mint edition, so it might be related to some differences between GTK+ 3.10 and 3.14.

The window doesn't jump anywhere though. It gets stuck to the mouse pointer and the pointer itself changes to "hand" - as if you started dragging the window by its title bar... Do you get this behavior?

However, I still can't reproduce it with root terminal. How do you launch it? It could be that you have some other terminal emulator installed (which is using GTK+3) and it's being launched as root instead of mate-terminal...

HansPL commented 8 years ago

I launch a root terminal via Mint's menu using gksu /usr/bin/x-terminal-emulator.
The exact (mis-)behaviour is — When I click (and hold) into an empty region of the menu bar, the pointer changes into the hand after maybe 0.1-0.2 s delay.
When I then release the mouse button, the window jumps to the right by exactly the width of my screen no.2 (the smaller, on the left) while the mouse pointer remains.
Or, when I move the mouse with the button down (drag), at the first minute move the window jumps the same way to the right and is then dragged around with this offset to the pointer.

monsta commented 8 years ago

When I click (and hold) into an empty region of the menu bar

Ah, so you click and hold... that's what I missed (or you didn't tell about this detail) :smile:

Ok, then maybe we're experiencing different issues. Which behavior do you get with GTK+3 apps (when just clicking to the right of menubar, not holding the mouse button)? Is it the same as with root terminal?

HansPL commented 8 years ago

No, misunderstanding: CORRECTION it is like you observed, and more — a) when I just do a short click in the empty part of the menu bar and no movement, after a short delay the pointer changes into the hand. On the first movement of the mouse the window jumps and follows the pointer with this offset until the next click.
b) on pressing & holding the mouse button without movement, after the same short delay the pointer changes into the hand. On releasing the button without movement, the window jumps.
c) on dragging (= press button & hold & move mouse), the window jumps at the first movement of the mouse and then follows the pointer with this offset until releasing the button.

HansPL commented 8 years ago

I'll check with the other apps tomorrow… how do I know what is a GTK+3 app (other than those you mentioned)?

HansPL commented 8 years ago

(Note correction two above) I've found the following apps with that behaviour:
gksu /usr/bin/x-terminal-emulator, meld, brasero, galculator, synaptic-pkexec, gnome-mplayer, totem. Notable exception: audacious 3.6.1 is not affected anymore (it was previously). The affected windows jump to the right by exactly the with of my smaller screen. It is the second Screen1 but placed left of the main screen (I'm left-handed). From xorg.conf: Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" Absolute 1280 0 Screen 1 "Screen1" Absolute 0 0 Option "Xinerama" "1" # To move windows between screens / no compositing InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection I would now like to try with it on the right side, but my mate-display-properties does not work anymore „Die RANDR-Erweiterung ist nicht vorhanden“…?

monsta commented 8 years ago

I launch a root terminal via Mint's menu using gksu /usr/bin/x-terminal-emulator.

Weird... normally it should run the same mate-terminal as usual. Can you check what this root terminal shows in About dialog?

Notable exception: audacious 3.6.1 is not affected anymore (it was previously).

They've switched back to GTK+2 in version 3.6, see here.

The affected windows jump to the right by exactly the with of my smaller screen. It is the second Screen1 but placed left of the main screen (I'm left-handed).

Ok, I don't see any window jumping but I only have one monitor... It might be one of those multi-monitor issues that still haunt some MATE apps... :disappointed:

I would now like to try with it on the right side, but my mate-display-properties does not work anymore „Die RANDR-Erweiterung ist nicht vorhanden“…?

Whoops. No RANDR extension out of a sudden? That's weird. Post the output of:

apt search ~irandr
HansPL commented 8 years ago

Can you check what this root terminal shows in About dialog?

Gnome-Terminal 3.14.1 — because /usr/bin/x-terminal-emulator -> /etc/alternatives/x-terminal-emulator -> /usr/bin/gnome-terminal.wrapper which is probably remaining from previous LMDE versions. As opposed to the normal Mate-Terminal 1.12.0.
$ LC_ALL=C apt search ~irandr i libxcb-randr0 - X C Binding, randr extension i A libxcb-randr0-dev - X C Binding, randr extension, development i A libxrandr-dev - X11 RandR extension library (development h i libxrandr2 - X11 RandR extension library i libxrandr2:i386 - X11 RandR extension library i A x11proto-randr-dev - X11 RandR extension wire protocol Looks right to me. I notice that flaw already some time ago but didn't fuss yet as long as I don't need to rearrange my screens…

monsta commented 8 years ago

Gnome-Terminal 3.14.1 — because /usr/bin/x-terminal-emulator -> /etc/alternatives/x-terminal-emulator -> /usr/bin/gnome-terminal.wrapper which is probably remaining from previous LMDE versions. As opposed to the normal Mate-Terminal 1.12.0.

Ah there we go, one puzzle solved: Gnome Terminal is a GTK+3 app. :smile: You can remove it, or just reconfigure the x-terminal-emulator alternative via:

update-alternatives --config x-terminal-emulator

Looks right to me. I notice that flaw already some time ago but didn't fuss yet as long as I don't need to rearrange my screens…

Yes, looks ok. I can't figure out why it happened... But I wonder what will happen if you temporarily unplug the second monitor and try to reproduce the "jumping" issue?

HansPL commented 8 years ago

Unplugging my secondary monitor was only recognized after I logged out and back in.
Then, with only one screen, the jumping did happen no more: the window just stuck to the pointer and was dragged, exactly like you observed above.
BTW  — Eagle, my Qt-based CAD system, has since its last update a possibly related and more annoying problem: its zoom origin is now offset from the pointer…

monsta commented 8 years ago

Then, with only one screen, the jumping did happen no more: the window just stuck to the pointer and was dragged, exactly like you observed above.

Ok, thanks for the info. So we have two issues here: windows can be dragged by menubar and windows jumping during that process in multi-monitor setup...

First issue might be a GTK+3 issue. I've tried various systems, and could reproduce it only with GTK+ 3.14. I'll see if there's some fix that could be backported from the newer versions.

Second issue is harder for me as I don't have a multi-monitor setup... but this issue might as well go away if the first one will be solved. :smile: