GNOME Bugzilla – Bug 785887
AeroSnap Snap Assist does not work in CSD windows
Last modified: 2018-05-02 18:49:31 UTC
In CSD windows Windows 10's new "Snap Assist" functionality that allows to easily arrange multiple windows next to each other (e.g. see [1] for an example) is broken. Only very basic snapping is possible, all the advanced functionality Windows offers is unavailable. [1] https://www.howtogeek.com/198230/how-to-use-snap-assist-and-2x2-snap-on-windows-10/
This also includes the really useful functionality to define the ratio in which two windows share the available screen area. For example I can snap a window to the left and another window to the right of the desktop. When then horizontally resizing one of them the other window automatically grows/shrinks to accommodate for the size change. A CSD window stays completely unaffected (and does not affect other windows itself)
Since GDK has to re-implement AeroSnap completely by itself for CSD windows, of course Snap Assist doesn't work. Unless there's a way to invoke Snap Assist programmatically via some sort of Desktop API, it will never work. Re-implementing it inside GDK (the way basic AeroSnap is re-implemented) doesn't seem to be practical too.
How does Firefox do it?
Most likely, it doesn't. I think they are not using layered windows the way GDK W32 backend currently does. That allows Firefox to just use the WM AeroSnap, like any other application.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gtk/issues/872.