David Edmundson
42768d515a
Add missing include
...
Reviewed-by: Martin G
2015-05-12 14:26:48 +01:00
Martin Gräßlin
51bb4cf2a1
[scripting] Register KWin::AbstractClient in declarative scripts
2015-05-12 11:32:05 +02:00
Martin Gräßlin
a0c45a68b8
Disable GBM if we build without EGL support
2015-05-12 10:03:00 +02:00
Martin Gräßlin
4bf479aca2
[libkwineffects] GL_NONE instead of None in GLTexture
...
It's about GL not about Xlib, so use GL_NONE instead of None.
Additional bonus: it compiles if the file does not include Xlib.
2015-05-11 16:25:00 +02:00
Martin Gräßlin
d6700ff9f9
[backends/hwcomposer] Forward input events to main thread
...
Libhybris input events are generated in a different thread, but we want
them in the main thread (InputRedirection and KWayland are not (yet)
thread safe). Thus all events need to be send to the main thread using
QMetaObject::invokeMethod.
2015-05-11 15:43:30 +02:00
Martin Gräßlin
d5d304c2f6
[backends/hwcompser] Toggle blank screen on power button press
...
Also blocks compositor while screen is turned off.
2015-05-11 15:24:23 +02:00
Martin Gräßlin
533a39bc3e
[backends/hwcomposer] Perform mapping of key codes
...
Not all key codes are mapped yet. Those not mapped have KEY_RESERVED
as mapping value and those are not forwarded to InputRedirection.
2015-05-11 14:28:32 +02:00
Martin Gräßlin
79c94d42f3
[wayland] Support shm buffers on GLES
2015-05-11 11:11:16 +02:00
Martin Graesslin
6a66d84f5c
[backends/hwcomper] Initial support for input handling
...
Unfortunately on libhybris enabled systems libinput doesn't work, thus
the backend needs to handle input events which can be read from hybris.
So far the backend only handles touch events properly, though some
aspects look wrong. E.g. motion gives only for one touch contact point.
Unfortunately the documentation is quite weak, so there might be
something important missing.
2015-05-09 16:22:27 +02:00
Martin Gräßlin
1f62c0acb0
[backends/hwcomposer] Handle OutputInterfaces in Backend
...
Allows to read the DPI information and export the physical display
size from it. DPI is scaled by 1000 in hwcomposer, split by X and Y,
which allows to calculate size in mm from pixel size.
2015-05-08 21:41:38 +02:00
Martin Gräßlin
af134dbbda
Fix build
...
Some day I will understand CMake syntax. Promised!
2015-05-08 13:19:04 +02:00
Martin Gräßlin
e9e055dcca
Call Workspace::clientHidden when ShellClient gets destroyed
...
Ensures that active_client gets changed if it was a ShellClient.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
597a9da77f
Workspace::activateNextClient and clientHidden operate on AbstractClient
...
This is required to change the active_client after the active_client
closes.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
f55c086007
Change Workspace::clientRemoved to carry an AbstractClient
...
At the same time emit it when a ShellClient get's removed. This ensures
it gets removed from e.g. the FocusChain.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
8d3ee65269
[wayland] Don't set surface on Toplevel for non Xwayland-Clients
...
For other clients we are only interested in the shell surfaces.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
28d314a487
[wayland] Create a DataDeviceManager in wayland server
...
Makes QtWayland way more happy.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
6826b9eb94
[autotests] Adjust to changes regarding AbstractClient
...
We need a Mock for AbstractClient and our mock Client needs to
inherit from it.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
912ab71abd
ShellClient inherits AbstractClient
...
This allows to make ShellClient behave more like a Client and allows
to activate it. Some pieces for activating are still missing.
2015-05-08 12:43:47 +02:00
Martin Gräßlin
b6f793090e
Toplevel::setOpacity becomes virtual
...
It calls unconditionally into NETWinInfo.
2015-05-08 12:43:47 +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
16568804be
Demands Attention handling in Workspace operates on AbstractClient
...
Affects:
* list attention_chain
* clientAttentionChanged
* clientDemandsAttentionChanged
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
ab4e798837
Remove no longer needed casts from TabBox::establish/removeTabBoxGrab
2015-05-08 12:43:46 +02:00
Martin Gräßlin
1e7a28033b
Drop no longer needed dynamic_cast in Workspace::performWindowOperation
2015-05-08 12:43:46 +02:00
Martin Gräßlin
7a74413712
Drop dynamic_cast from UserActionsMenu::slotSendToDesktop
2015-05-08 12:43:46 +02:00
Martin Gräßlin
d4f7445749
Remove remaining Client usage from FocusChain
2015-05-08 12:43:46 +02:00
Martin Gräßlin
704b255234
Drop no longer needed dynamic_casts from TabBox
2015-05-08 12:43:46 +02:00
Martin Gräßlin
7d5236cac8
TabBox::shadeActivate operates on AbstractClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
9457b362c1
Drop not needed dynamic cast in WorkspaceWrapper::setActiveClient
2015-05-08 12:43:46 +02:00
Martin Gräßlin
fe8946740c
Remove no longer cast in Workspace::allowClientActivation
2015-05-08 12:43:46 +02:00
Martin Gräßlin
41cd927bce
Move Workspace::activeClient and ::mostRecentlyActivatedClient back to header
...
Now all is moved they can be inlined again.
2015-05-08 12:43:46 +02:00
Martin Gräßlin
fdcaf2b86f
Make Workspace::active_client an 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
af48d38d22
Workspace::should_get_focus becomes QList<AbstractClient*>
2015-05-08 12:43:46 +02:00