Bug 74559

Summary: Regression: No longer able to move windows off top desktop edge
Product: [Plasma] kwin Reporter: Roland Seuhs <r>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Severity: normal CC: neitzke
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description Roland Seuhs 2004-02-08 12:00:51 UTC
Version:           3.2.0 (using KDE 3.2.0 RC1, SuSE)
Compiler:          gcc version 3.3 20030226 (prerelease) (SuSE Linux)
OS:          Linux (i686) release 2.4.20-4GB

With KDE 3.1 I used to have a panel centered at the top of the screen and I could move a maximized window "behind" it so that the buttons left and right are still visible, only the title is obscured by the centered panel.

Because KDE 3.2 for some strange reason thinks that moving windows off the top edge is bad, this does no longer work the usual way (picking up the Window using the titlebar). Using Alt+LMB still works, thankfully.

This bug is probably related to bug #74555
Comment 1 Lubos Lunak 2004-02-08 13:56:44 UTC
That's the intended behaviour. It's disallowed to move a window by dragging the titlebar to a position from which it couldn't be moved back the same way, and you have to use e.g. Alt+LMB to achieve that. This is because of unexperienced users who don't know the alternative ways and wouldn't be able to move the window back.
Comment 2 Alex M 2004-09-16 09:03:39 UTC
In microsoft windows, it is impossible to drag a titlebar out of reach.
I think the bug is that snap windows can push a titlebar outside the screen.
The right solution would be to fix snapwindows so that they won't move the titlebar completely out of the screen (they should leave one line of pixels, or they should be temporarily disabled when part of a window is outside the screen)

The current solution of just forbidding the movement of windows outside the top edge is not good. I shouldn't *have* to reach for the keyboard and press ALT to move windows partially outside the desktop. Not even selecting "Move" from the menu works. It is very annoying to have KDE 3.2 becoming more restrictive that microsoft windows all of a sudden.
Please fix the bug properly, or have a control panel option to disable the movement restriction.
Comment 3 Lubos Lunak 2004-09-22 13:41:08 UTC
Comment 4 Christoph Burger-Scheidlin 2006-09-09 16:17:55 UTC
According to the mailing list thread, it is the intended behavior to prevent the move of a title bar to a place where it cannot be moved back from (i.e. off the screen, behind the panel).

However, the thread also raises an implementation detail that is inconsitent with the behavior, if the panel does not fit 100% of the screen width (and this applies to Xinerama as well, where the panel is on one monitor only). In such a case, it is impossible to move the titlebar to a space that is on the same height as the panel, but in fact not covered by the panel.

|                   |
|                   |

The titlebar cannot be dragged to FREE. By the same argument, if PANEL and FREE are on different monitors, it does not work either.

Should this behavior be fixed, a very complicated case arises from menus that dynamically adjust their size to fit the content, since every content update might need to make sure that no menubar is hidden (or we can just trust the user to move the titlebars beforehand)
Comment 5 illogic-al 2006-12-23 23:05:14 UTC
*** Bug 119294 has been marked as a duplicate of this bug. ***
Comment 6 lucas 2009-02-17 16:50:02 UTC
SVN commit 927466 by lmurray:

Improved window movement around struts. Windows can be moved anywhere
where the titlebar is still clickable even if it is outside the normal
work area. When struts are added or removed only move the windows that
cover the same area, leave all others untouched. If a strut is removed
on a xinerama screen that is not on the edge of the full desktop area
prevent the windows from being moved offscreen. Prevent struts/panels
from interfering with the movement of windows on other xinerama screens.
BUG: 74559
BUG: 90833
BUG: 160068

 M  +0 -8      client.cpp  
 M  +2 -3      client.h  
 M  +301 -142  geometry.cpp  
 M  +0 -2      manage.cpp  
 M  +20 -0     utils.cpp  
 M  +26 -0     utils.h  
 M  +4 -0      workspace.cpp  
 M  +7 -0      workspace.h  

WebSVN link: http://websvn.kde.org/?view=rev&revision=927466