GNOME Bugzilla – Bug 115000
Move shaken loose windows to the pointer
Last modified: 2004-12-22 21:47:04 UTC
This relates to the cvs patch of bug 93586. There is the following FIXME in the update_move function "if you grab the right side of the tilebar then on unmaximize the pointer isn't on the titlebar which is kind of odd". In the second-last patch of bug 93586 I've proposed a possibility to just always move the top-center of the window to the cursor after shaking loose. It seems that this is not the desired behaviour, but what else?
That's fine behavior really, I just messed up your code for it in removing the grab_current_ stuff and then I wanted to go to bed rather than figure it out so I put in a FIXME. ;-)
Created attachment 17493 [details] [review] Patch against cvs
Adding PATCH keyword and setting priority to high because of the patch.
*ping*
*** Bug 115946 has been marked as a duplicate of this bug. ***
We should commit this, sorry for the delay.
OK I've used Jürg's patch as a starting point (thanks for your excellent work, Jürg) and created a patch that resolves several issues with shaken loose windows: 1) moves the window under the pointer. I found centering it to be suboptimal so my patch places it so that proportonally the pointer is the in the same place on the window as it was before unmaximizing. In particular this keeps the window on screen when shaking it loose 2) restores certain drag state when reattaching windows so that everything mentioned in (1) works nicely when repeatedly unattaching and reattaching windows. 3) uses the work area instead of the xinerama rectangle to compute reattaching; avoids a very unpleasant flickering problem when a large top panel is present. This should make this feature ready for prime time.
Created attachment 18630 [details] [review] shaken_loose chicanery
This won't compile on most C compilers, have to declare the variable at the top: + /* move the unmaximized window to the cursor */ + double prop = Patch looks good to me otherwise, thanks.
fixed and committed. Don't usually make silly non-standard mistakes like that.