13745 Commits (89a4df651d22faa3c5de67999340c1037418975b)
 

Author SHA1 Message Date
Martin Gräßlin 89a4df651d [wayland] Sync resizes
Similar to X11 world: we send a sync request on each size change and
block till we get the next damage with the proper size.

Testing seems to show a very smooth resize experience. We automatically
sync to the resize speed of the client.

Maybe we need a timeout in case the client isn't able to resize to the
requested size.
9 years ago
Martin Gräßlin a23a9d38f9 Make it possible to end move/resize through mouse button release
Properly handle the mouse press/release events in InputRedirection
while we move windows. If it's the last mouse release event we end
the move resize of the window. For that we reuse the code written
in Client.
9 years ago
Martin Gräßlin 7dcd69fdcc Fix mouseChanged signal arguments in InputRedirectionCursor
The button state was not represented correctly which was very visible
when using the MouseClickEffect. Now MouseClickEffect on Wayland works
as expected.
9 years ago
l10n daemon script 129636de2e SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
9 years ago
Martin Gräßlin f1215e44d4 Move implementation of (shrow|grow)(Horizontal|Vertical) to AbstractClient
Methods are no longer virtual. The only x11 specific usage in these
methods (resizeInc) is replaced by a virtual method. Default resize
increments is QSize(1,1) for AbstractClient.
9 years ago
Martin Gräßlin 8f2b01b549 [wayland] Fix quick tiling auto test
Don't emit both geometryShapeChanged and geometryChanged: the one
is set up to call the other.

Also adjust tests because maximize changes triggers too many geometry
changed signals.
9 years ago
Martin Gräßlin 45fb1680fc Consider all client in Workspace::packPositionFoo
We need to use m_allClients (AbstractClient) instead of clients (just
Client). Thus packing against another AbstractClient works.
9 years ago
Martin Gräßlin b19da3cb14 Move implementation of Client::packTo to AbstractClient
Method no longer virtual and only implemented in AbstractClient.
The implementaton works in a generic way nowadyas.

Added an autotest for the basic packTo behavior for packing against
a screen border. Packing towards other clients still needs adjustments
in the Placement code.
9 years ago
Martin Gräßlin 1a66472494 Merge setting up client and shell client connections in EffectsHandlerImpl
The signals operate on AbstractClient nowadays, so we can have one
implementation for both Client and ShellClient.

Only X specific connections are only done for Client.
9 years ago
Martin Gräßlin 5d4cd0b26c Move geometry related connects from Client to AbstractClient 9 years ago
Martin Gräßlin 4e7521fe64 Allow moving of Wayland windows
So far only moving through useractions menu is possible and only through
cursor control (mouse events are lost).

A basic first autotest is added to validate the moving of Windows.
9 years ago
Martin Gräßlin ac1f01fd3f Use AbstractClient for keyboard moving of clients
As keyPressEvent is in AbstractClient now we don't need to cast to
Client any more. This allows to end move of ShellClients as well.
9 years ago
Martin Gräßlin 5d2251875f Move keyPressEvent(uint) to AbstractClient
The variant with additional timestamp is still in Client.
9 years ago
Martin Gräßlin 717a48a2a1 Move move/resize related mouse command handling to AbstractClient
Code is refactored in a sufficient way so that we can handle the
move/resize mouse commands also from AbstractClient::performMouseCommand.
9 years ago
Martin Gräßlin f5848d9405 Move implementation of updateMoveResize to AbstractClient
No longer virtual.
9 years ago
Martin Gräßlin f4b02d5a8c Move handleMoveResize to AbstractClient
Sync related code is split out into dedicated virtual methods so that
Client can provide the X11 specific implementation. General handling,
though is completely in AbstractClient.
9 years ago
Martin Gräßlin dcff41ab40 Move checkQuickTilingMaximizationZones to AbstractClient
Implementation is moved to abstract_client.cpp as so far events.cpp
does not have any code from AbstractClient.

This includes moving the electricMaximizingDelay from Client to
AbstractClient.
9 years ago
Martin Gräßlin 7e23860957 Move performMoveResize to AbstractClient
As there is X11 specific code, this is moved into a virtual
doPerformMoveResize method.
9 years ago
Martin Gräßlin 43e4071975 Provide positionGeometryTip() as virtual method in AbstractClient
The implementation of positionGeometryTip is X specific, we need to
figure out whether that one makes sense for Wayland. Given that, let's
have it virtual to ease the transition of code which calls it.
9 years ago
Martin Gräßlin c83f041005 Move startMoveResize() to AbstractClient
The implementation calls a virtual doStartMoveResize() which allows
Client to do it's X11 specific tasks (creating moveResizeWindow, grabbing
input).

The base implementation is no longer virtual.
9 years ago
Martin Gräßlin 9e323227a1 Move (start|stop)DelayedMoveResize to AbstractClient
Also requires to add startMoveResized() as a virtual method. Not
yet implemented in AbstractClient.
9 years ago
Martin Gräßlin 95a99d337a Move s_haveResizeEffect from Client to AbstractClient 9 years ago
Martin Gräßlin ba53407b52 Move finishMoveResize(bool) to AbstractClient 9 years ago
Martin Gräßlin 1c40e809ea Provide leaveMoveResize() as virtual method in AbstractClient
The non X11 specific code is split out into a base implementation
which is called from the Client.
9 years ago
Martin Gräßlin 88e097ec16 Move signals clientFooUserMovedResized to AbstractClient
This also changes the argument to carry the sending AbstractClient
instead of Client.
9 years ago
Martin Gräßlin dc04cdef64 Move moveResizeStartScreen from Client to AbstractClient
Initialized in updateInitialMoveResizeGeometry().
9 years ago
Martin Gräßlin dcb5e29316 Move updateCursor() functionality to AbstractClient
Includes moving the m_cursor and Qt::CursorShape cursor() method to
AbstractClient. In addition AbstractClient now emits a signal whenever
the shape changes allowing Client to react on it (update the low level
cursor) and also hopefully the Wayland Backends to react to it, so that
we have the cursor.
9 years ago
Martin Gräßlin b8e68307bb Move buttonDown from Client to AbstractClient
Bundled together with other moveResize functionality. We might need
to investigate whether this variable is needed at all.
9 years ago
Martin Gräßlin 605acaf60e Move checkUnrestrictedMoveResize() from Client to AbstractClient 9 years ago
Martin Gräßlin c9dbd94812 Move properties move and resize from Client to AbstractClient
Includes the public methods isMove() and isResize() and the signal
moveResizedChanged().
9 years ago
Martin Gräßlin 8a3be2bacd Move the Position mode from Client to AbstractClient 9 years ago
Martin Gräßlin c3f14521c1 Move moveResizeGeom to AbstractClient
Biggest impact on Client::handleMoveResize which directly manipulated
the variable in various parts. I tried to keep the impact low.
9 years ago
Martin Gräßlin b4fc4d7235 Move initialMoveResizeGeometry to AbstractClient 9 years ago
Martin Gräßlin 84c7575cbf Move (inverted)MoveOffset to AbstractClient 9 years ago
Martin Gräßlin 3514b4d691 Track whehter moveResize is unrestricted in AbstractClient 9 years ago
Martin Gräßlin b5e8e3511e Track whether Client is in moveResizeMode in AbstractClient
Variable moveResizeMode replaced by protected methods isMoveResize()
and setMoveResize().
9 years ago
l10n daemon script 75f3964db7 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
9 years ago
l10n daemon script 87285ece17 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
9 years ago
l10n daemon script 8af6238b27 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
9 years ago
Thomas Lübking 8ad51527a8 Merge branch 'Plasma/5.4' 9 years ago
Thomas Lübking 7339e9639f Improve virtual desktop selection for transients
a) When a group-transient is modal, it still needs to be
   on the current or all virtual desktops if *any* of the
   blocked clients is

BUG: 354090
FIXED-IN: 5.5

b) ignore demanded virtual desktop for transients. Notably modal transients
   should appear where their parent is, and not drag that around. All others
   also better show up above their parent and not a distant virtual desktop

REVIEW: 125758
9 years ago
l10n daemon script 2abd939a0a SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
9 years ago
Martin Gräßlin 3fa9013691 [wayland] Don't call into Workspace from ShellClient during teardown
During tearing down the WaylandServer it's possible that ShellClients
are getting unmapped. For them make sure that they don't call into
the no longer existing Workspace.
9 years ago
Martin Gräßlin 58bcf66ecf [autotests] Test case for 10ad9262a1
The problem we had was closing a glxgears through an Aurorae theme
crashed KWin inside QtQuick.

This test case simulates the sequence:
1. starts glxgears
2. wait till we have a Client for it
3. send mouse move to guessed close button position
4. send mouse press/release at that position
5. verify the window is closed
6. verify glxgears exits

With the given commit reverted this crashes, with it in place it passes.

Please note: on CI it might fail as glxgears is not yet installed. [1]
Also we cannot enforce using Aurorae from the test yet, though on
the CI system it should get picked automatically as no other deco
plugin should be installed.

[1] Sysadmin ticket already created
9 years ago
Martin Gräßlin 7253235a28 [wayland] Dispatch the WaylandServer once more before killing internal client
This is needed to not deadlock during tear down in case the client wants
to dispatch events and the server is in wait for client.
9 years ago
Martin Gräßlin 3619d58044 Declare metatype for Deleted and export Deleted
Needed for listening to windowClosed signal through QSignalSpy.
9 years ago
Martin Gräßlin 3eb52eb6ed Merge branch 'Plasma/5.4' 9 years ago
Martin Gräßlin 76cd1fdc34 [kcmeffects] Do not use root context properties
Apparently it's not allowed to set root context properties multiple
times. If one goes to systemsettings, opens effects kcm, closes it
and opens it again it crashes due to setting a context property with
same name again.

This change eliminates the need for the context property by modifying
the property of the QML objects directly.

BUG: 354164
BUG: 351763
FIXED-IN: 5.4.3
REVIEW: 125737
9 years ago
l10n daemon script 0e15c07cf0 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
9 years ago
Martin Gräßlin 5d37ccfce0 Drop PreventScreenLocking electric border
It was broken on so many ways, it's unbelievable:
* action was read but did nothing
* config was saved into a different file than read from

REVIEW: 125701
CCBUG: 331841
9 years ago