Thomas Lübking
41be18e317
Robust modal activation; ensure showing activated
...
...window
REVIEW: 123875
BUG: 348083
2015-06-10 08:50:16 +02:00
Martin Gräßlin
034276af36
Move clientMaximizedStateChanged signal from Client to AbstractClient
2015-06-07 03:17:34 +02:00
Martin Gräßlin
1d9769af1f
Move skipTaskbar from Client to AbstractClient
...
At the same time the functionality for the "original_skip_taskbar" is
splitted out. This removes the weird API with two boolean arguments to
the set method. Instead there is a dedicated method for the orignal
skip taskbar state which delegates to regular skipTaksbar.
2015-06-06 22:11:10 +02:00
Martin Gräßlin
11a3eac070
Move skipPager from Client to AbstractClient
2015-06-06 22:11:10 +02:00
Martin Gräßlin
4ca3734d12
[wayland] Support move/resize mode in pointer move handling
2015-06-06 17:43:12 +02:00
Martin Gräßlin
f16644ac2e
Move maxSize and minSize to AbstractClient
...
With a default implementation returning either a INT_MAX size or 0.
2015-05-27 14:20:12 +02:00
Martin Gräßlin
737ad0b664
Move keepInArea to AbstractClient
2015-05-27 14:20:12 +02:00
Martin Gräßlin
007e1253c6
Add resizeWithChecks to AbstractClient
...
The virtual method does not take the xcb_gravity_t - that's only added
in a variant in Client.
2015-05-27 14:20:11 +02:00
Martin Gräßlin
da2731be51
Move Client::move to AbstractClient and add implementation in ShellClient
2015-05-27 10:16:46 +02:00
David Edmundson
df1499784f
move isFullScreenable to AbstractClient
...
REVIEW: 123871
2015-05-21 16:40:21 +01:00
Martin Gräßlin
846fd58d14
Move caption property and captionChanged signal to AbstractClient
2015-05-20 14:39:40 +02:00
Martin Gräßlin
23862e512d
Move implementation of ::palette to AbstractClient
...
Includes moving of the colorscheme and DecorationPalette related
functionality.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
38b418887a
Move minimize implementation to AbstractClient
2015-05-08 12:43:47 +02:00
Martin Gräßlin
d2884484bc
Move ::titlebarPosition to AbstractClient
2015-05-08 12:43:47 +02:00
Martin Gräßlin
a4d16debfc
Partly move shade implementation to AbstractClient
...
* properties defined in AbstractClient
* implementation of isShade moved to AbstractClient
* implementation of setShade(bool) moved to AbstractClient
* default implementation for isShadeable added to AbstractClient
* default implementation for shadeMode returning ShadeNone
* default implementation fo setShade which does nothing
2015-05-08 12:43:47 +02:00
Martin Gräßlin
254887155c
Implement virtual desktop handling in AbstractClient
2015-05-08 12:43:47 +02:00
Martin Gräßlin
1bfba1765c
Signal desktopPresenceChanged carries AbstractClient as argument
2015-05-08 12:43:47 +02:00
Martin Gräßlin
e672a53721
Move implementation of demanding attention to AbstractClient
2015-05-08 12:43:47 +02:00
Martin Gräßlin
986308f938
Move implementation of isSpecialWindow to AbstractClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
4b27abd76b
Move implementation of wantsTabFocus to AbstractClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
1fcd1120d9
Move auto-raise handling to AbstractClient
...
Adds QTimer to AbstractClient and introduces new protected method to
start the timer.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
25e3af5988
Implement keepAbove and keepBelow in AbstractClient
...
Moves the properties and the base implementation into AbstractClient.
Methods invoke a new protected virtual method which is implemented in
Client to update the TabGroup.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
b84118a51b
Workspace::updateClientLayer operates on AbstractClient
...
Requires a virtual updateLayer in AbstractClient. Default implementation
does nothing.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
7d51838efc
Implement AbstractClient::isActive and ::setActive
...
Moves the implmentation to AbstractClient. Methods are no longer virtual,
setActive calls a virtual protected method which is implemented in Client
for Client specific activation code.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
3527f1d4b8
Implement AbstractClient::icon
...
Moves implementation, adds a protected setter and provides the property.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
2f59f3e8b4
Move property closeable to AbstractClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
4d466f9ab3
Implement AbstractClient::skipSwitcher
...
Moves implementation from Client to AbstractClient.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
3182c8f3e5
Implement AbstractClient::isFirstInTabBox
...
Moves implementation from Client to AbstractClient. Setter is protected,
getter is no longer virtual.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
4ac4a97c20
Implement AbstractClient::tabBoxClient
...
Moves the implementation from Client to AbstractClient.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
69f198e923
Move ::demandAttention to AbstractClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
dde1947461
Move ::userTime to AbstractClient
...
Default implementation returns 0.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
1a7e8aeaf2
Move enum QuickTileFlag and ::setQuickTileMode to AbstractClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
5b53d2401e
Move ::packTo to AbstractClient
...
Base implementation which does nothing
2015-05-08 12:43:46 +02:00
Martin Gräßlin
7ffc742a69
Move ::isCurrentTab to AbstractClient
...
Default implementation returns true.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
6feb1c6604
Move ::titlebarPosition and enum Position to AbstractClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
e5734f9e6c
Move (grow|shrink)(Horizontal|Vertical) to AbstractClient
...
A virtual base implementation is provided which does nothing. Needed
in AbstractClient to get Workspace::slotWindowGrow* to work with
active_client becoming an AbstractCliet.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
138c1b2ff0
Workspace::sendClientToDesktop operates on AbstractClient
...
Unfortunately transient handling is still on Client, thus it's
still in a cast-if block.
2015-05-08 12:43:45 +02:00
Martin Gräßlin
1d4701d67e
Workspace::takeActivity operates on AbstractClient
2015-05-08 12:43:45 +02:00
Martin Gräßlin
484f9b6e65
Workspace::activateClient and ::requestFocus changed to AbstractClient
...
requestFocus delegates to takeActivity which is not yet adjusted but
performs a nullptr check, thus we pass a casted Client.
2015-05-08 12:43:45 +02:00
Martin Gräßlin
4b41c33268
Workspace::movingClient changed to AbstractClient
...
In events.cpp it's casted to Client as it's X11 specific.
In InputRedirections it's kind of broken, but window movement is
anyway broken.
2015-05-08 12:43:45 +02:00
Martin Gräßlin
d2cdd3de1d
UserActionsMenu operates on AbstractClient
...
There are still a few areas where it's dynamic casting to Client,
e.g.:
* sendToDesktop
* window tabbing related
* activities related
2015-05-08 12:43:45 +02:00
Martin Gräßlin
519006ffa4
Workspace::performWindowOperation operates on AbstractClient
...
Only exception is the call to ::takeActivity which still expects a
Client.
2015-05-08 12:43:45 +02:00
Martin Gräßlin
942b49e2c4
Workspace::setupWindowShortcut operates on AbstractClient
2015-05-08 12:43:45 +02:00
Martin Gräßlin
7c187359a7
Workspace::sendClientToScreen operates on AbstractClient
2015-05-08 12:43:44 +02:00
Martin Gräßlin
c46c92e204
Screens changed to use AbstractClient in ::setCurrent
2015-05-08 12:43:44 +02:00
Martin Gräßlin
6e45901844
TabBoxClientImpl changed to using an AbstractClient
...
The change is mostly straight forward. Effects are straight forward
adjusted. Client::findModal is moved up, this causes still a few
dynamic_casts to Client. Mostly because Workspace::activateClient still
operates on Client.
2015-05-08 12:43:44 +02:00
Martin Gräßlin
f800477be5
Use AbstractClient for raise/lowerClient
...
Not a 100 % port. Transient handling is still bound to Client and
does a static cast back to Client.
2015-05-08 12:43:44 +02:00
Martin Gräßlin
0f54da9dde
Introduce an AbstractClient base class for Client (and ShellClient)
...
The idea for this base class is to provide access to all elements which
make up a managed "Client" being it X11 or Wayland. They share a lot,
like they have a caption, they can be minimized, etc. etc.
Of course it would have also been possible to derive a new class from
Client, but that looks like the more difficult task as Client is very
X11 specific.
So far only a very small interface is extracted with pure-virtual
methods. This is going to change by moving the functionality up into
the AbstractClient.
The interface extracted so far is inspired by the usage of FocusChain
and users of FocusChain.
2015-05-08 12:43:44 +02:00