13665 Commits (66e27b69bb5a66e4dceddaf605b33c62183051b2)
 

Author SHA1 Message Date
Martin Gräßlin 66e27b69bb [backends/hwcomposer] Drop dependency on hybrissync library
No longer used and not needed.
9 years ago
l10n daemon script db3ac9a536 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 86448c66dd [wayland] Use first valid geometry of ShellClient as restore geometry
This is needed to properly restore to a valid geometry after quick
maximizing. Note: this is not yet perfect, actually it should be done
after initial placing, which means we do need a manage method like
Client.

The autotest for quick tiling is extended to cover maximize changes
and cover this case.
9 years ago
Martin Gräßlin 996c828da3 [autotest/wayland] Add a test for quick tiling Wayland clients
Base test verifies the quick tile positions. No maximization or direct
state changes tested yet.

Required to have Toplevel and AbstractClient exported. Otherwise we
cannot use the SignalSpy.
9 years ago
Martin Gräßlin 41af9c400c [wayland] Allow resizing on ShellClients
Needed to be able to put clients into quick tile mode.
9 years ago
Martin Gräßlin 9f91431e8c Move quick tiling from Client to AbstractClient
In order to make it possible to quick tile also ShellClients.
9 years ago
Martin Gräßlin 9f2b4c7d14 Introduce a virtual AbstractClient::updateQuickTileMode(QuickTileMode)
New method is used to modify the quick tile mode state directly.
Preparation step for moving the quick tile handling to AbstractClient.
9 years ago
Martin Gräßlin fa18d60e9e Use quickTileMode() instead of quick_tile_mode
Preparation step to have quick tile handled inside AbstractClient.
9 years ago
Martin Gräßlin 61caf788e3 Use (set)GeometryRestore() instead of geom_restore in Client::setQuickTileMode
Preparation step to move the implementation to AbstractClient.
9 years ago
Martin Gräßlin 15f5886426 Add a pure virtual AbstractClient::setGeometryRestore(const QRect &) 9 years ago
Martin Gräßlin 94b5ca0d2b TabSynchronizer operates on AbstractClient
Change required to get methods using TabSynchronizer moved to
AbstractClient. Unfortunately we need to cast to Client when calling
updateStates. It's save as if it's not a Client we
a) don't have a tabGroup in the first place
b) the check if (main == only) will hit and the method returns
9 years ago
Martin Gräßlin 9ef42ae3c7 Move blocking geometry updates functionality to AbstractClient 9 years ago
Martin Gräßlin 646eeb8bbb Provide isDecorated() as virtual method on AbstractClient
Default implementation returns false.
9 years ago
Martin Gräßlin 727929db8a Use isDecorated() instead of m_decoration in Client::setQuickTileMode
A preparation step to move the implementation to AbstractClient.
9 years ago
Martin Gräßlin ec6c778df7 Move implementation of checkWorkspacePosition to AbstractClient
No longer a virtual method, the implementation of Client is turned into
AbstractClient. The stub removed from ShellClient.
9 years ago
Martin Gräßlin 696cdb9e39 Add setGeometry to AbstractClient as pure virtual method
In Client existing method is marked as override, in ShellClient a new
override is added which delegates to requestGeometry. Existing method
is renamed to doSetGeometry and all internal calls delegat to it.
Needs better merging with the implementation of Client.
9 years ago
Martin Gräßlin eacaf25acf Improve sharing of maximize between Client and ShellClient
The changeMaximize method is added as a pure virtual protected method
to AbstractClient. This replaces the previous pure virtual maximize
method. Which is now directly implemented in AbstractClient (reusing
the implementation previously in Client).
9 years ago
Martin Gräßlin 60342d44e3 Move adjustedSize from Client to AbstractClient 9 years ago
Martin Gräßlin 7c49b1ca42 Add sizeForClientSize as virtual method to AbstractClient
Base implementation returns the passed in size.

Required for moving adjustedSize to AbstractClient.
9 years ago
Martin Gräßlin 37fc20d3c0 Move enum Sizemode from Client to AbstractClient
Required to add e.g. sizeForClientSize and adjustedSize to
AbstractClient.
9 years ago
Martin Gräßlin acb3a14200 Add border(Left|Top|Right|Bottom)() const as virtual methods in AbstractClient
At some future point we will also need it in ShellClient and it allows us
to better share geometry related implementations.

Base implementation returns 0, that is no border.
9 years ago
Martin Gräßlin e121d4a107 Use quickTileMode() instead of quick_tile_mode in Client::checkWorkspacePosition
Preparation step for moving implementation of checkWorkspacePosition
to AbstractClient.
9 years ago
Martin Gräßlin ee47ce613d Provide quickTileMode() as virtual method in AbstractClient
Base implementation always returns QuickTileNone. Implementation in
Client overrides. Long term solution: provide functionality directly
in AbstractClient.
9 years ago
Martin Gräßlin d1baa4d283 Use geometryRestore() instead of geom_restory in Client::checkWorkspacePosition
Preparation for moving the implementation to AbstractClient.
9 years ago
Martin Graesslin 28fe78a94f Adjust to newer upstream libhybris version
Based on a previous patch done by David Edmundson and heavily
inspired by qt5-qpa-hwcomposer-plugin [1].

The change requires a newer libhybris than the one used by Ubuntu. In
fact it allows to build against current master (at the day of writing [2]).

REVIEW: 125606

[1] https://github.com/mer-hybris/qt5-qpa-hwcomposer-plugin
[2] bd6df6a306
9 years ago
Martin Graesslin 425e703dff Drop Android input handling
Libinput does work on libhybris enabled devices. There is no need to
use Android's input stack. This simplifies our code a lot and increases
sharing with normal Linux systems.

What's tricky is to convince the system to use libinput through with our
logind helper. Logind fails to open the files for us if we start KWin
over either ssh or adb shell. We need to get it into a proper session, so
only a kwin started through a helper like simplelogin will be able to use
libinput.

REVIEW: 125608
9 years ago
l10n daemon script f4069deb5c 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
David Edmundson 04ab8554aa Add hint similar to autohide to raise/lower a window
Add action type to screen edge show to allow raise/lower as well as
autohide

Add an action type to screen edge show to allow raise/lower as well as
autohide. This uses the same atom, using a mask to separate type and
location.

The logic for handling geometry changes is moved from the screenedge to
the client so that we can handle both types without screenedge needing
to know what the raise is for.

REVIEW: 124272
9 years ago
Martin Gräßlin 78e9a56cd1 Move checkOffscreenPosition from Client to AbstractClient 9 years ago
Martin Gräßlin 53b87dbbd9 Move (is|set)ElectricBorderMaximizing from Client to AbstractClient 9 years ago
Martin Gräßlin 226a099366 Move electricBorderMaximizeGeometry from Client to AbstractClient
As it's not used outside of Client the method is turned from public
to protected.
9 years ago
Martin Gräßlin 32fbbc90bc Make geometryRestore() pure virtual in AbstractClient
Provides an implementation in ShellClient and method in Client gets
marked as override.
9 years ago
Martin Gräßlin 9b8836b455 Move (set)electricBorderMode() from Client to AbstractClient
While it was public in Client, it was not used anywhere outside of
Client, because of that it's only protected in AbstractClient.
9 years ago
Martin Gräßlin b489ebabdc Move signal quickTileModeChanged from Client to AbstractClient 9 years ago
l10n daemon script eab663565d 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 8e17059be7 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 68b7274c5d Initialize AbstractEglTexture::m_image
If not set to EGL_NO_IMAGE_KHR the dtor might call eglDestroyImageKHR
for an image which never got created resulting in undefined behavior.
9 years ago
Martin Gräßlin 80b6a26a09 [autotests] Enforce QPainter compositing
The change to O2 in 4a35a63d2d didn't
work on the CI, so QPainter it is.
9 years ago
Martin Gräßlin 4a35a63d2d [autotests] Enforce OpenGL compositing
As expected in a025791d7b the tests
fail on the CI system  due to llvmpipe. Let's try whether enforcing
O2 makes them run, if not update to switch to Q is following.
9 years ago
Martin Gräßlin a025791d7b [backends/virtual] Add a virtual rendering OpenGLBackend
The backend is based on drm's gbm backend and also uses the GBM
platform, but with the default display allowing the driver to pick
a device. In addition it doesn't use a surface, but a surfaceless
context with a framebuffer object to render to. Given that it diverged
too much from drm's backend to allow more code sharing.

If KWin is started from a tty it gets a proper driver, if KWin is started
in a X11 session it only gets llvmpipe. Given that there is a chance that
the autotests using the virtual backend will fail. In that case a follow
up patch will enforce either O2 or Q.
9 years ago
Martin Gräßlin 0fc1142ca2 Allow OpenGLBackend to hold a surfaceless context
For a virtual rendering backend a surfaceless context is needed. Such
a context may not call glDrawBuffer as that results in a GL error.

This change allows the OpenGLBackend to announce that it's context is
surfaceless.
9 years ago
Martin Gräßlin 2e888da70e [backends/virtual] Move save screenshot functionality to the backend
Allows code reusability when adding an OpenGL backend.
9 years ago
Martin Gräßlin 29b2082daa [wayland] Honor ShellSurfaceInterface::acceptsKeyboardFocus in ::wantsInput
If the surface indicates that it doesn't want keyboard focus we shouldn't
give it keyboard focus.

This was a problem with Kate's autocompletion tool tip windows.

REVIEW: 125553
9 years ago
Martin Gräßlin 0bb4498e1d [wayland] Proper metatype for ShellClient
Needs meta type declared and properly used in WaylandServer.
9 years ago
Martin Gräßlin 3cb8438399 [wayland] Keep transient state directly in ShellClient
So far we delegated to ShellSurfaceInterface, but it's possible that
we call into isTransient when the ShellSurfaceInterface is already
destroyed.
9 years ago
Martin Gräßlin b35c3e8501 [wayland] Keep fullscreen state directly in ShellClient
So far we delegated to ShellSurfaceInterface, but it's possible that
we call into isFullscreen when the ShellSurfaceInterface is already
destroyed.

Note: the functionality needs to be slightly reworked. The fullscreen
state should change once we get a buffer for fullscreen, not when the
client requests it. This is a general pattern which is wrong also for
maximized, etc.
9 years ago
Thomas Lübking f3cfbacb1e do not grab server during manage
REVIEW: 125474
9 years ago
Thomas Lübking 7a38b21f49 do not reinterpret_cast insufficient data
BUG: 341010
FIXED-IN: 5.5
REVIEW: 125513
9 years ago
Thomas Lübking 7e72aee474 return sane screen geometry on missing randr
may help in the xinerama case, follow up to
https://git.reviewboard.kde.org/r/125074/

REVIEW: 125456
9 years ago
Thomas Lübking ed2314dfbe overhaul of deco kcm
- tab theme and button items
- move menubutton close hint below checkbox (moved on top)
- use proper background palette on palette updates

REVIEW: 125393
9 years ago