GNOME Bugzilla – Bug 659643
fix keyboard window-displacement code
Last modified: 2012-02-16 21:47:42 UTC
I can't reproduce this, but I had a situation where every time I tabbed to an terminal, it would hop a few pixels to the right. Attaching and doing gjs_dumpstack() revealed the problem to be: keyboard.js:_moveTemporarily Which does: let rect = currentWindow.get_outer_rect() ... currentWindow.move_frame(true, newX, newY); But move_frame() I think now expects a position that corresponds to meta_window_get_input_rect() - with invisible borders. I'm not sure when _moveTemporarily is called - the keyboard wasn't popped up at the time - but code examination would probably reveal that and how to reproduce the problem.
I have been able to reproduce with xchat, when the window is partially covered by the osk.
Created attachment 197115 [details] [review] window: Fix meta_window_move_frame in the context of the new invisible borders (In reply to comment #0) > But move_frame() I think now expects a position that corresponds to > meta_window_get_input_rect() - with invisible borders. It does -- do we want to keep that interpretation or not? It was just a simple oversight when I was implementing the invisible borders.
Created attachment 197174 [details] [review] keyboard: don't try to move windows out of the way of the keyboard This code was never tested very well, and has several problems currently (windows creeping down and to the right, windows snapping to a different location after you move them). To be fixed in 3.4.
Review of attachment 197174 [details] [review]: Looks fine.
oked on release-team Attachment 197174 [details] pushed as 57b1695 - keyboard: don't try to move windows out of the way of the keyboard
Created attachment 201713 [details] [review] window: Fix meta_window_move_frame in the context of the new invisible borders Much simpler patch.
Review of attachment 201713 [details] [review]: Patch looks right and does the right thing in testing
Attachment 201713 [details] pushed as c47039d - window: Fix meta_window_move_frame in the context of the new invisible borders