Commit Graph

316 Commits (1876e8fd016e4dc5dee473e0d91e27027b20f7a0)

Author SHA1 Message Date
Luboš Luňák 1030bcd7f3 keep windows inside workarea if they were there before workarea changes 2011-09-30 17:10:57 +02:00
Luboš Luňák 40744b6b11 use old screen sizes when calculating old window positions on screen size changes 2011-09-30 17:10:57 +02:00
Luboš Luňák 3bd58d49fa so much for copy&pasting a function name 2011-09-29 18:30:20 +02:00
Luboš Luňák 191b03be1b gee, is this come-up-with-the-most-useless-variable-name competition or what?
And they are both pointless anyway, simplify code.
2011-09-29 18:30:20 +02:00
Luboš Luňák 07e3dff871 make checkWorkspacePosition() work also on desktop/screen change
It previously worked only when struts changed, this makes it work
e.g. when moving a window between desktops that have different
struts, or when sending a windows between differently sized screens.
2011-09-29 18:30:20 +02:00
Luboš Luňák 8edf542bb7 remove a function that should have been removed in d105478abf33474fa18e6bb1e80d09a1911f42e4 2011-09-29 18:30:20 +02:00
Luboš Luňák c47de96716 fix overzealous optimizations leading to dangling references to temporaries 2011-09-29 18:30:20 +02:00
Luboš Luňák ede01e1702 the Qt idiom is that out parameters are pointers 2011-09-29 16:22:24 +02:00
Thomas Lübking dd05eebbe2 catch changeMaximize recursion from setNoBorder
polluted the restore geometry for unmaximizing from quick maximization when using BorderlessMax'd

CCBUG: 279529
(cherry picked from commit 5ca44bfd7dce34504ff5fdc25818470bc672e358)
2011-09-09 18:24:05 +02:00
Thomas Lübking 12b9b1c79e fix xsync protocol
BUG: 160393
REVIEW: 102311
2011-08-24 01:39:34 +02:00
Thomas Lübking 123e259441 check workspace position after screen change of any max'd client
also only unset max'd state when resizing, but not when moving a max'd client
BUG: 279051
CCBUG: 279529
REVIEW: 102414
(cherry picked from commit ea91e9dea63cf58fcf0d45d7e2f4783d0b70b8bb)

Conflicts:

	kwin/geometry.cpp
2011-08-23 23:11:59 +02:00
Thomas Lübking 6f6f13f881 fix movable maximized behaviour, allow maximizing clients with limited max size
BUG: 279529
REVIEW: 102237
(cherry picked from commit 3700951ab33933c707da2e50b0561bf3ee9812c4)
2011-08-15 22:16:44 +02:00
Matthias Fuchs 7d67380205 Fixes disabling fullscreen for windows using two displays.
Dragging a fullscreen window to another screen and then disabling
fullscreen keeps the window at the new screen.

BUG:261704
FIXED-IN:4.7.1
REVIEW:102103
(cherry picked from commit d35ec6d18377fd872207b88dd39f560a483bcc14)
2011-08-15 19:13:49 +02:00
Thomas Lübking 8b75f4b321 QRect::right() + 1 == QRect::x() + QRect::width()
Also to catch inner split for sure the calculation needs to be accurate.

BUG: 279774
REVIEW: 102292
(cherry picked from commit 561dac0ae1bd158563e4aa6d0f25268fbc5a97af)
2011-08-11 14:32:27 +02:00
Martin Gräßlin f72f465c13 Fix Typos
Krazy--
SVN_SILENT
2011-08-03 08:25:10 +02:00
Alex Fiestas 78783bfb49 use checkOffscreenClient for half-maximized clients 2011-07-28 22:19:39 +02:00
Alex Fiestas c0b89870b9 Move the "noOffscreensWindow" into a method so we can reuse it 2011-07-28 22:19:38 +02:00
Arthur Arlt e79cf50087 Rename some functions and variables in class Tiling
Some functions and variables were given more proper names and are now
following the naming scheme. 'Redundant' naming information was also removed.

REVIEW: 102020
2011-07-28 13:55:30 +02:00
Arthur Arlt 1326316049 Introduce Build Option for Tiling
A build option is introduced to file CMakeLists.txt. Classes Tiling,
Tile and TilingLayouts are only built if the option is set to ON. #ifdef's
are added to the classes where functions of the excluded classes are called.
2011-07-28 13:39:21 +02:00
Arthur Arlt 3634525613 Refactoring Tiling
This initial commit introduces a new class Tiling. It is provided by
the files tiling/tiling.h and tiling/tiling.cpp. It covers all the
Tiling functionality which was provided by Workspace. In this initial
commit, all the functions were just moved and adjusted.
A  new member variable m_tiling is introduced to Workspace, which
makes the new class Tiling accessible from Workspace.
The Tiling pointer is created in the constructor and deleted in
the deconstructor. Also a getter method tiling() is provided.
All calls from other classes are updated to use the methods in class
Tiling now.
2011-07-28 12:35:51 +02:00
Alex Fiestas a2aad27a78 Make sure that not maximized clients are offscreen on xrandr events
Added a small check in Client::checkWorkspacePosition which will assure
us that no window ("client") is left in a offscreen position. this is
more a workaround than a proper fix but is the only thing we can do that
will be backportable to the 4.7 branch.
2011-07-27 20:13:54 +02:00
Martin Gräßlin 32a82141f0 Adding a build option for KWin Scripting
It is possible that adding this build option broke the Scripting
component. This is something that should not happen. Unfortunately
by just ifdefing everything scripting related with scripting enabled
we have build errors. These are caused by the fact that the scripting
code includes e.g. client.h through "./../client.h". At one offending
place I changed that to "client.h", but there is also a client.h in
the scripting directory.

The includes and naming of the scripting files clearly have to be fixed!
2011-07-10 10:48:25 +02:00
Thomas Lübking 05cbf3f1ca correct workspace position in case of quicktiling or touching the border when the decoration padding changes 2011-07-10 02:24:54 +02:00
Martin Gräßlin 039c025bfb Add a build option for screen edge support 2011-07-07 18:29:11 +02:00
Arthur Arlt b63c9c1af8 Make mothod windowGeometryShapeChanged() a slot
The method windowGeometryShapeChanged() from the class Scene is now a slot. It is now connected to the signal geometryShapeChanged() which is sent from Toplevel instances Client and Unmanaged.
All direct method calls were deleted.
2011-07-05 11:34:12 +02:00
Arthur Arlt c8cf1e4c7e Removed method destroy()
Since the method destroy() was called only from one location in the code
followed by update(), the funtionality has been moved to the method update()
which now takes an boolean argument 'force'. This argument is false by default
and set to true only at that location where destroy() was called formerly.
2011-07-04 13:24:51 +02:00
Arthur Arlt 6e7a249cd0 Rename functions in class ScreenEdge
Since the functions were moved from Workspace to its own class ScreenEdge
and the functionality was formerly called ElectricWindows, the functions still
had the old names. They are now consistenly renamed without redundand naming.
The function calls were updated as well in all classes where ScreenEdge is used.
2011-07-04 13:24:51 +02:00
Arthur Arlt 2f11337d98 Refactoring Screen Edge handling
This commit change the screen edge function calls to be called in the
new class ScreenEdge. The old methods are still in Workspace and will
be removed in a further commit.
2011-07-04 13:24:51 +02:00
Arthur Arlt 25654f25b8 Removing TopMenu
Since the funtionality of TopMenu did no longer work in KDE4 this feature was
removed from Workspace. Every reference to it was removed as well as commentaries
and documentation.

REVIEW: 101485
2011-06-24 12:27:56 +02:00
Martin Gräßlin 12d3b354fc Remove drawbound move/resize functionality
Drawbound was nowadays only used when compositing is disabled.
For the composited case, the drawbound was replaced by the resize
effect and in fact we should always just use the resize effect.

REVIEW: 101411
2011-06-23 12:15:54 +02:00
Thomas Lübking 9397b14e81 kwin, add debug statements to configureReqest 2011-06-13 19:33:40 +02:00
Alberto Mattea 9bbed0335a Add basic multihead support to kwin
For now there is autostart support on all screens and support for different resolutions on different screens.
Keyboard shortcuts are still TODO
REVIEW: 101125
BUG: 256242
2011-05-08 20:39:27 +02:00
Martin Gräßlin ff3900d825 Refactor KWin Outline code into an own class
This change unduplicates some code and merges it into one class
allowing us to use an replacement effect for the outline in
future.
CCMAIL: a.arlt@stud.uni-heidelberg.de
REVIEW: 100848
2011-04-28 11:19:05 +02:00
Martin Gräßlin b52975a57e Merge branch 'libkwineffects'
The branch contains the first step in reworking the kwineffects
library. This includes:
* replacing virtuals by signals and slots
* dropping some unused methods
* remove KWin::TimeLine

More to come.

Conflicts:
	kwin/workspace.cpp
2011-03-16 19:46:59 +01:00
Martin Gräßlin 32c903b05b Rework signals for move/resize windows
First a signal is emitted when the user starts a move/resize operation.
During the move/resize operation each geometry change emits an update signal.
Last but not least a finish signal is emitted.

This eliminates the specific method for geometry updates in drawbound resize
mode.
2011-03-13 12:41:30 +01:00
Martin Gräßlin 911098ee76 WindowGeometryShapeChanged becomes a signal 2011-03-12 12:34:59 +01:00
Thomas Lübking b42ae48280 store geom_pretile on maximization as well 2011-03-08 23:13:25 +01:00
Thomas Lübking 0b1599680d stage one, call martin 2011-03-08 22:05:09 +01:00
Thomas Lübking dd19f5e1a7 Unlink maximization state from actual geometry
Since clients with restricted geometry now cannot cover the entire screen by default it was necessary to unlink the state from the actual geometry to re-provide the "restore" feature.
The patch also extends the protection of the maximized state to unilateral maximizations (emacs issue)

BUG: 265568
BUG: 252314
CCBUG: 252255
review request https://git.reviewboard.kde.org/r/100606/
2011-03-08 21:48:08 +01:00
Martin Gräßlin eeb10c69d5 Signal for windowUserMovedResize
In core a new signal is added for maximizedState change of client.
Other function calls remain as direct calls for the moment.
2011-02-28 21:03:13 +01:00
Martin Gräßlin 0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Thomas Lübking 677f6953c2 remove qdebug leftover
svn path=/trunk/KDE/kdebase/workspace/; revision=1212027
2011-01-05 14:47:25 +00:00
Thomas Lübking 9835858a4c logic error. re-allow plain moves, sorry :-\
BUG: 260847

svn path=/trunk/KDE/kdebase/workspace/; revision=1208406
2010-12-21 14:34:45 +00:00
Thomas Lübking 94605a5ef5 adjust strict geometry policies
http://svn.reviewboard.kde.org/r/5871/
BUG: 158974
CCBUG: 252314

@Jorge:
please see the request description and check whether this allows you to fix your bug
in case, don't forget to close it ;-)

svn path=/trunk/KDE/kdebase/workspace/; revision=1208120
2010-12-20 18:18:27 +00:00
Thomas Lübking 68fbd31ad8 add windowgeometry tip effect, bind it to the general setting and generalize effect feature provide api, thus update resize effect
BUG: 219755

svn path=/trunk/KDE/kdebase/workspace/; revision=1195300
2010-11-10 19:21:56 +00:00
Thomas Lübking 773fec4e23 workaround bug 224600 / active but unrisen windows don't go fullscreen
NOTICE that the correct solution would be to move any active FS client on top of the stack in layers.cpp but this might raise other issues.
this patch preserves the present behaviour but raises windows before setting the fullscreen. the only "issue" with this is that for setups that do not raise windows when activating them, setting an active but not risen client FS will cause a restack as sideeffect

BUG: 224600

svn path=/trunk/KDE/kdebase/workspace/; revision=1194908
2010-11-10 03:08:37 +00:00
Martin Gräßlin 0174887114 Extend quick tiling to quarter of screen.
When moving a window to the upper or lower quarter of a screen edge the window will be quick tiled to the responsible quarter of the screen.
Moving the window to the middle half of the screen will do the normal quicktiling to half of screen, quick maximization at top screen is unchanged.
Thanks to Arthur Arlt for his first code contribution to KDE.
See Review Request http://reviewboard.kde.org/r/5661
CCMAIL: arre2000@gmx.de

svn path=/trunk/KDE/kdebase/workspace/; revision=1190361
2010-10-27 13:16:36 +00:00
Rohan Ramdas Prabhu 2aec750ebf Trembles the weave as the clock ticks, attain another microstate.
Every disorder causes every duration, which ensures the one that stays.
reality is relative. natural is disorder.
[R]obinhood[P]andey

Merging scripting from
^/branches/work/kwin_scripting TO
^/trunk

svn path=/trunk/KDE/kdebase/workspace/; revision=1177865
2010-09-21 14:31:40 +00:00
Thomas Lübking c62cbd5911 fix pending XSYNC requests, bugs partially closed due to suggested relation by the reporters
please re-open them if this does not fix it

BUG: 178269
BUG: 183263
BUG: 241094
BUG: 243094

svn path=/trunk/KDE/kdebase/workspace/; revision=1175748
2010-09-15 19:33:15 +00:00
Luboš Luňák 87d373e9cd off-by-one error when ensuring a window in the bottom-right corner
doesn't go outside the workarea


svn path=/trunk/KDE/kdebase/workspace/; revision=1165452
2010-08-19 12:08:33 +00:00