GNOME Bugzilla – Bug 149867
Fixed aspect ratio windows are difficult to resize
Last modified: 2005-11-19 17:15:18 UTC
Windows which set the aspect ratio hints can only be resized by their corners. If you grab the sides and try to resize the window, the window size bounces about one or two pixels, but won't let you resize it further. Furthermore, while the sides are effectively unavailable to use as resize handles, the cursor still changes to show resizing. The behaviour I would like to see would be that resizing a fixed-aspect window by its sides results in the window growing by an appropriate amount in the other axis. If you want to only allow resizing of fixed aspect ratio windows by the corners, metacity should change the window border to give a visual indication: maybe by changing the cursor, or removing the border completely except in the corners. As it is now, I believe the user experience is too challenging if the user do not already expect the window to have a fixed aspect ratio.
I'd happily accept a patch to do this, but its a pain to implement and there are much higher priority things.
I think it's fairly high priority to rewrite constraints.c (again), but it sure is a ton of work. It might be useful to collect some of the relevant past discussions, e.g. Alan's suggestion to use regions to rewrite it, just in case someone appears who has time to fix this up.
Created attachment 53596 [details] Simple test program to test aspect ratio resizing I'm attaching this because I've been working on this bug (among many others) in the constraints_experiments branch and wanted to have this here for reference, but also to make it easier for gtk+ hackers to find a testcase since I may need to ping them about part of this. (My implementation mostly works, ignoring suboptimal interactions with fully-onscreen constraints since that has not yet been tackled, but I believe gtk+ is being anal about how closely the constraint is satisfied and by so doing is causing drift. For example, user resizing from the right side of the window can make the window drift vertically in addition to resizing vertically due to these unwanted configure requests being received.)
[Cue Wizard of Oz music] Ding! Dong! The bug is dead! The wicked bug, The wicked bug, Ding! Dong! The wicked bug is dead...