Excessive window snapping while dragging, looks glitchy

Bug #1727225 reported by Daniel van Vugt
18
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Mutter
Fix Released
Medium
gnome-shell (Ubuntu)
Invalid
Medium
Unassigned
mutter (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Gnome Shell seems to do excessive window snapping while dragging windows.

If I drag a window over the top of another, the top of both windows briefly snap together before the window drag continues. To the untrained eye this just looks like a visual glitch in the rendering and an excuse to declare gnome-shell is less smooth than other shells.

It's also not useful to snap all such combinations of window edges like that, so I suggest turning some of them off. For example, don't snap the same edges of two windows when one is overlapping the other already.

ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: gnome-shell 3.26.1-0ubuntu4
ProcVersionSignature: Ubuntu 4.13.0-16.19-generic 4.13.4
Uname: Linux 4.13.0-16-generic x86_64
ApportVersion: 2.20.7-0ubuntu3
Architecture: amd64
Date: Wed Oct 25 15:55:31 2017
DisplayManager: gdm3
InstallationDate: Installed on 2017-05-03 (175 days ago)
InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Alpha amd64 (20170502)
SourcePackage: gnome-shell
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
In , Unimbox (unimbox) wrote :

I know there is an option to enable or disable edge-tiling feature. But I couldn't find an option that enables or disables edge resistance/snapping features that provide specific interactions between windows, which are enabled by default. I find it very hard to work when I have many (over 5, usually) windows opened on my desktop; dragging a window feels like a game of tug-of-war. Very annoying.

That would be great if I could enable and disable those features with dconf-editor or something similar (even with a simple conf file(s)).

Revision history for this message
In , Jasper St. Pierre (jstpierre) wrote :

It does exist. It's under the hard-to-find key of

  org.gnome.mutter edge-tiling

For gnome-shell, there's:

  org.gnome.shell.overrides edge-tiling

Revision history for this message
In , Unimbox (unimbox) wrote :

(In reply to comment #1)
> It does exist. It's under the hard-to-find key of
>
> org.gnome.mutter edge-tiling
>
> For gnome-shell, there's:
>
> org.gnome.shell.overrides edge-tiling

No, I mentioned about that option, edge-tiling, in my first sentence to avoid misunderstanding >> I know there is an option to enable or disable edge-tiling feature.<<. What I talked about is interactions between window and screen edges/bounds themselves. When I drag a window it sticks to another window edge until I've moved my cursor further away (like ~20 pixels) only then the window releases and continues to be dragged by the mouse.

Or another example: when I want to place the half of my window outside the screen I start dragging it and when the edge of the window hits the edge of the screen it stops even I continue dragging, after ~20 pixel away the window releases and continues following my cursor.

The option "edge-tiling" provides interaction only between window and screen bounds with resizing and tiling them.

Revision history for this message
In , Unimbox (unimbox) wrote :

To get the problem more clear, the thing that I'm talking about is provided by file edge-resistance.c

Revision history for this message
In , Martin Meyer (elreydetodo) wrote :

I would like the edge snapping to be cancelable at use time. I often want to put windows in the upper-right corner of my monitor, and it would be nice if I could press a key to not have it title/tile the window.

I don't *always* want this, so disabling tiling feature entirely isn't a good option for me. Maybe we could make it an opt-in/opt-out sort of toggle, with the default state being that windows wile tile unless a certain key is pressed? The setting could toggle whether that key press turns the feature temporarily on or off.

Revision history for this message
In , Unimbox (unimbox) wrote :

*** Bug 712352 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Unimbox (unimbox) wrote :

It's been quite some time. No reports at all, so far. I don't know whether I should create another bug report with more clearer description about this issue.

Has there been some work done on this?
And I'll clarify this again. I'm not talking about the tiling, I'm talking about the window interaction mechanism where windows sort of grip along their edges.

Revision history for this message
In , Otaylor-redhat (otaylor-redhat) wrote :

Please don't file another bug report - this is sufficient.

I don't think there is enough demand for this to add even a hidden option - it seems to have taken ~5 years after the feature was implemented in Metacity for anybody to request an option to disable (see Bug 612822).

A patch to allow disabling with a modifier key (see bug 341767) would be a bit more likely to be accepted - it doesn't seem to me that there are people who *never* want edge snapping. Rather, for the set of people who like to position their windows really carefully, there are sometimes cases where edge snapping doesn't do what they want.

Revision history for this message
In , Anders-5 (anders-5) wrote :

"it doesn't seem to me that there are people who *never* want edge snapping."

I for one would want to disable this with an option. I never want windows to snap when I'm dragging them. The more windows I have on the the desktop, the more edges it will have to snap too. The end-effect is that dragging windows looks like a laggy mess, and it's really annoying.

"A patch to allow disabling with a modifier key (see bug 341767) would be a bit more likely to be accepted"

I wouldn't want to hold a modifier key for my desktop experience not to be laggy.

"Rather, for the set of people who like to position their windows really carefully, there are sometimes cases where edge snapping doesn't do what they want."

The main issue here isn't that I want to have my windows non-aligned, I want the drawing of moving windows to be smooth.

Microsoft Windows doesn't do this, and if it did, I'm sure they'd add it as an option and not as a default that you cannot turn off.

Revision history for this message
In , Anders-5 (anders-5) wrote :

This seems like a duplicate as well: https://bugzilla.gnome.org/show_bug.cgi?id=753279

Revision history for this message
In , Daniel Boles (dboles) wrote :

*** Bug 753279 has been marked as a duplicate of this bug. ***

Revision history for this message
Daniel van Vugt (vanvugt) wrote :
tags: added: visual-quality
Revision history for this message
In , Daniel van Vugt (vanvugt) wrote :

I've just realized what I was seeing is not gnome-shell being bad at redraws, but just window snapping where you wouldn't expect. Made a suggestion for improving the feature here:

https://bugs.launchpad.net/bugs/1727225

summary: - Excessive window snapping while dragging
+ Excessive window snapping while dragging, looks glitchy
Changed in mutter:
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in gnome-shell (Ubuntu):
importance: Undecided → Low
Changed in mutter (Ubuntu):
importance: Undecided → Low
Changed in gnome-shell (Ubuntu):
status: New → Confirmed
Changed in mutter (Ubuntu):
status: New → Confirmed
tags: added: bionic cosmic
Revision history for this message
In , Anders-5 (anders-5) wrote :

Still no takers for this feature? Should be fairly easy for someone with knowledge of the code, and it now pays $215 from https://www.bountysource.com/issues/35544484-window-edge-resistance-snapping-not-tiling-no-way-to-disable

Revision history for this message
In , Florian-muellner (florian-muellner) wrote :

(In reply to anders from comment #12)
> Still no takers for this feature?

Comment #7 still very much applies and doesn't go away with money.

Revision history for this message
In , Anders-5 (anders-5) wrote :

You mean the comment: "it doesn't seem to me that there are people who *never* want edge snapping"?

I mean, multiple people willing to pay money for an option to never have edge snapping might not make that comment go away, but it does disprove the assertion. Having to press a modifier key to not have a terrible experience moving windows around on the desktop is outrageous.

IMO smooth movement _should_ be the default behavior. Having windows snap to whatever else is on the desktop (aka overriding the user input) seems like the the kind of _modification_ of the user actions that would require holding a _modifier_ key. However, not even having an option of changing this behavior seems like the worst choice of all.

As a general design practice respecting the users input is a good idea. An example of the opposite is Microsoft asking if you're sure you don't want to use Edge instead, while opening Chrome (https://www.theinquirer.net/inquirer/news/2431042/windows-10-will-nag-you-not-to-ditch-default-microsoft-edge-browser...

As a side note, the fact that it took 5 years, might have more to do with the expectation of graphics performance under linux. It took me a while to realize that it wasn't poor graphics performance, but a "feature" that caused it.

Changed in gnome-shell (Ubuntu):
importance: Low → Medium
Changed in mutter (Ubuntu):
importance: Low → Medium
tags: removed: artful
Revision history for this message
In , Fplustlu (fplustlu) wrote :

please add an option to disable it !

Revision history for this message
In , Chris Billington (cjbil1) wrote :

I have exposed this as a dconf setting and submitted the change as a merge request to mutter:

https://gitlab.gnome.org/GNOME/mutter/merge_requests/455

Revision history for this message
In , Anders-5 (anders-5) wrote :

Great work! I doubled my bountysource contribution to the bounty for this. Hope others will contribute as well. Looking forward to see this merged!

Revision history for this message
In , Daniel van Vugt (vanvugt) wrote :

I understand why people might want snapping enabled by default, but I also think the argument that there's little demand to disable it is a poor one.

The problem is that casual users may never realize that it's window snapping making their window drags appear to stutter. I think if they were told this then a higher number of people might opt to disable it.

But I wouldn't disable it myself. I would hunt for some middle ground - a way to make snapping not visibly interfere with window dragging *as much*. That could be achieved by some combination of modifying the snapping distance or automatically disabling snapping when the pointer is above some moderate velocity.

Revision history for this message
In , Yves-bos (yves-bos) wrote :

I've been wanting to disable the edge resistance as well.
Any update on this feature getting merged?

Revision history for this message
In , Daniel van Vugt (vanvugt) wrote :
tags: removed: cosmic
tags: added: desktop-lts-wishlist
Revision history for this message
In , Daniel van Vugt (vanvugt) wrote :
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
tags: added: focal
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Changed in mutter:
importance: Medium → Unknown
status: Confirmed → Unknown
Revision history for this message
In , Daniel van Vugt (vanvugt) wrote :
Changed in mutter (Ubuntu):
status: Confirmed → Fix Committed
Changed in gnome-shell (Ubuntu):
status: Confirmed → Invalid
tags: added: fixed-in-40 fixed-upstream
Changed in mutter:
importance: Unknown → Medium
status: Unknown → Fix Released
tags: added: hirsute
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.7 KiB)

This bug was fixed in the package mutter - 40.2.1-1ubuntu1

---------------
mutter (40.2.1-1ubuntu1) impish; urgency=medium

  * Merge with debian, containing new upstream version
  * Remaining changes with debian:
    - debian/gbp.conf: update upstream branch to point to ubuntu/master
    - debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch:
      + X11: Add support for fractional scaling using Randr

mutter (40.2.1-1) experimental; urgency=medium

  * New upstream release
  * debian/patches: Refresh

mutter (40.2-1ubuntu1) impish; urgency=medium

  * Merge with debian, containing new upstream version
  * Remaining changes with debian:
    - debian/gbp.conf: update upstream branch to point to ubuntu/master
    - debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch:
      + X11: Add support for fractional scaling using Randr

mutter (40.2-1) experimental; urgency=medium

  * New upstream release:
    - Fix mouse position in remote desktop with fractional scaling
    - Fix fd leak
    - Disable KMS modifiers on radeon driver
    - Fix adding virtual monitor to physical session
    - Unbreak press-drag-release to pop up and select right click menus
    - Fix VKMS detection
  * debian/patches: Refresh, dropping applied upstream
  * d/p: Mark view-verification tests as incomplete in big-endian archs.
    Saved pixmaps are invalid in big-endian architectures, so let's disable
    the tests for now, checking only the basic metadata but not comparing
    the contents.

mutter (40.1-1ubuntu1) impish; urgency=medium

  * Merge with debian, containing new upstream version:
    - Wayland input thread support (LP: #1690719)
  * debian/patches: Refresh as per upstream changes
  * Remaining changes with debian:
    - debian/gbp.conf: update upstream branch to point to ubuntu/master
    - debian/patches/x11-Add-support-for-fractional-scaling-using-Randr.patch:
      + X11: Add support for fractional scaling using Randr

mutter (40.1-1) experimental; urgency=medium

  [ Marco Trevisan (Treviño) ]
  * New upstream release:
    - Only snap to window edges when CTRL is pressed (LP: #1727225)
    - Fix viewport of offscreen effects (LP: #1825126)
  * debian: Update library name to follow soname (mutter-8)
  * debian/control: Bump dependencies to match upstream requirements
  * debian/patches:
    - Refresh
    - Do not run screencast tests.
      They require to have a full running pipewire (that requires a system
      dbus daemon) so, we can't easily get one up and running while building.
  * debian/libmutter-8-0.symbols: Sync with new library symbols
  * debian/control: Do not break on old gnome-shell versions
  * debian: Enable sysprof profiler on linux
  * debian/libmutter-8-0.symbols: Add new cogl trace symbols
  * debian/rules: Enforce symbols checking via higher gen symbols check level
  * debian/patches: Fix failing installed tests and ensure they work with runner
  * debian: Enable installed tests and package them in mutter-8-tests
  * debian/tests: Run installed tests as part of the autopkg tests
  * debian/control: Add dependency on xwayland to mutter-tests
  * debian/tests: Use multiple stanzas to run the auto...

Read more...

Changed in mutter (Ubuntu):
status: Fix Committed → Fix Released
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.