Bug 218957 - KDE 4.3.80 tiling windows by dragging them to side of the screen on dual screens doesn't work when dragging to centre between screens
Summary: KDE 4.3.80 tiling windows by dragging them to side of the screen on dual scre...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-12-16 17:26 UTC by G Cohen
Modified: 2010-01-29 21:32 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Adds tiling zones instead of tiling at the borders (5.80 KB, patch)
2010-01-07 19:13 UTC, Marcel Schaal
Details

Note You need to log in before you can comment on or make changes to this bug.
Description G Cohen 2009-12-16 17:26:27 UTC
Version:            (using Devel)
OS:                Linux
Installed from:    Compiled sources

I don't know if that's a bug report or a wishlist, but the new drag-to-tile feature (which is very nice) only partially works with dual screens since you can only tile windows to the left half of the left-hand screen, or to the right half of the right hand screen. 
I understand the problem presented with dual screens but if would be nice if it could work so that windows tile if it worked with the centre of the screens as well.
Comment 1 Martin Flöser 2009-12-16 17:40:17 UTC
How do you want to tile to the center of a screen? There is no border to push the window against. As well how do you want to know if the window should be moved to the next screen or if it should be tiled?

Sorry, but as you can see, it's just not possible. We thought about it and would have liked to have a solution (using a dual screen setup myself). But it just isn't possible.

A workaround for the case of screens of same size. Tile the window on the other screen and use the move to next screen shortcut.

Setting to WONTFIX, the best match would be CANTFIX, but that is not available ;-)
Comment 2 G Cohen 2009-12-16 17:55:36 UTC
If I knew how to do it I wouldn't be reporting it ;)

But I actually thought about it and the most logical thing (to me) is something like that:
1. Push a window against the left border of the left and it tiles on the left half, as it does now.
2. Push a second window against the (same) left border of the left screen and this moves the previous window from 1 to the right side of the screen while tiles the new window on the left where this one was.

I understand if it's too complicated or just not a priority (certainly not for 4.4).
Comment 3 Martin Flöser 2009-12-16 18:11:52 UTC
that would not be the behaviour I expected when pushing two windows on the same border. If I manage one window I expect the others to be untouched.
Comment 4 lucas 2009-12-17 03:28:44 UTC
I forgot who suggested it but I thought it was a good idea to allow hovering near the inner screen edges for a short while would quick tile the window.
Comment 5 Michael Zanetti 2009-12-17 07:51:25 UTC
Just an idea: What about using parts of the upper screen edge for this too? For example using the most centered 5 cm o each screen.

Example: Your on the left screen of a dual-head setup. Make the window fullscreen if dragged to the middle of the upper edge, but tile it on the right side of the screen if dragged to the upper right 5 cm on this screen. On the right screen it would be the leftmost 5 cm of course...

Perhaps showing a little marker indicating the boundary between fullscreen ad tiling would help in terms of usability.
Comment 6 Martin Flöser 2009-12-17 09:54:11 UTC
(In reply to comment #5)
> Just an idea: What about using parts of the upper screen edge for this too? For
> example using the most centered 5 cm o each screen.
Yes that could work, just not 5cm but something like 10 % of screen width. By that reopening ;-)
Comment 7 Marcel Schaal 2010-01-07 19:13:11 UTC
Created attachment 39657 [details]
Adds tiling zones instead of tiling at the borders

Bear in mind that there are various different display setups, e.g. vertically stacked displays like two rows times three columns. 

I hacked a little bit and added tiling zones. These are areas of 10% screen width and 100% height size positioned left and right of every screen side. If the user drags a window inside the tiling effect will be activated. This way the user doesn't have to push the window against a border. 10% seems to be a lot but makes life much easier. 

One assumption is that there shouldn't be any delay for the tiling effect because u don't move a window accidentally. This is different from the screen edge effects. You often hit a border by mistake.

I've tested the patch with horizontal single, dual and triple head setup. It worked as expected. It also supports destop cube.

There's no configurationen yet. Just a simple example. It doesn't face tiling effect at the top with vertical stacked setups too.
Comment 8 lucas 2010-01-09 10:49:54 UTC
SVN commit 1071996 by lmurray:

Change how quick tiling and maximization is activated slightly. Instead
of using electric borders just check the location of the cursor; if the
cursor is near the edge enable the resize snap. This makes the features
easier to activate, removes the conflict with desktop switching and
allows the features to be used completely on multi-screen systems.
Patch inspired by one from Marcel Schaal.
BUG: 218957


 M  +1 -0      client.h  
 M  +0 -9      data/update_tabbox_settings.cpp  
 M  +40 -1     events.cpp  
 M  +26 -0     geometry.cpp  
 M  +0 -13     kcmkwin/kwinscreenedges/main.cpp  
 M  +1 -67     workspace.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1071996
Comment 9 lucas 2010-01-09 10:59:29 UTC
SVN commit 1072010 by lmurray:

Backport r1071996:
Change how quick tiling and maximization is activated slightly. Instead
of using electric borders just check the location of the cursor; if the
cursor is near the edge enable the resize snap. This makes the features
easier to activate, removes the conflict with desktop switching and
allows the features to be used completely on multi-screen systems.
Patch inspired by one from Marcel Schaal.
CCBUG: 218957


 M  +1 -0      client.h  
 M  +0 -9      data/update_tabbox_settings.cpp  
 M  +40 -1     events.cpp  
 M  +26 -0     geometry.cpp  
 M  +0 -13     kcmkwin/kwinscreenedges/main.cpp  
 M  +1 -67     workspace.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1072010
Comment 10 G Cohen 2010-01-29 21:32:23 UTC
It's working perfectly! Thanks!