- 10 Nov, 2015 3 commits
-
-
Martin Flöser authored
Thanks ASAN!
-
Martin Flöser authored
ASAN righly complained: we need to delete our Wayland objects before we destroy the internal client connection. Solved by better setting parent relationships in the QPA plugin and correctly delete objects in destroy of internal client connection.
-
Martin Flöser authored
We need to destroy the compositor after Xwayland terminated and after the internal Wayland connection is destroyed. This means when destroying the Workspace we may no longer destroy the Compositor at the same time. Also we need to ensure that other tear down functionality doesn't call into the no longer existing internal client connection. With this change kwin doesn't crash when exiting with Wayland and/or X11 windows still open.
-
- 09 Nov, 2015 1 commit
-
-
Bhushan Shah authored
locked signal might be too late to identify the greeter and its windows.
-
- 06 Nov, 2015 2 commits
-
-
Bhushan Shah authored
This allows to check if specific ShellClient is from LockScreen or not, as well as this adds method to verify if ShellClient is from input method like maliit. Now that KWin knows about which window is from Screenlocker it can apply various security restrictions like no other window then greeter is on top of it. Reviewed-By: Martin Gräßlin
-
Bhushan Shah authored
Initialize is no longer called by KSldApp ctor, and also pass KWayland::Server::Display* to KSldApp. Reviewed-By: Martin Gräßlin
-
- 05 Nov, 2015 1 commit
-
-
Bhushan Shah authored
This introduces --lockscreen option in kwin_wayland which when used will lock screen immediately. Also dependency to newly created kscreenlocker repo is introduced. REVIEW: 125954
-
- 22 Oct, 2015 1 commit
-
-
Martin Flöser authored
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.
-
- 10 Sep, 2015 1 commit
-
-
Martin Flöser authored
Our server announces the DpmsManagerInterface and in the DRM backend we announce support for Dpms on the OutputInterface (if the Output supports it) and we connect to changing Dpms requests.
-
- 02 Sep, 2015 1 commit
-
-
Marco Martin authored
use the new blur protocol to fetch information about the region of blur behind to apply to windows like Plasma::Dialog REVIEW:125017
-
- 25 Aug, 2015 6 commits
-
-
Martin Flöser authored
No longer needed with our own QPA plugin.
-
Martin Flöser authored
This reverts 29c2ae57.
-
Martin Flöser authored
Our own QPA plugin shares the internal connection, so we don't need the dedicated connection for the QPA any more.
-
Martin Flöser authored
Of course only works with internal clients.
-
Martin Flöser authored
-
Martin Flöser authored
Allows to interact with the Registry for the internal connection in other parts of KWin and makes it possible to create more than just the ShmPool for this Registry.
-
- 15 Jul, 2015 1 commit
-
-
Martin Flöser authored
For Wayland clients we now are able to get shadows. Internally this reuses large parts of the X11 implementation. This could be improved to make the Scene's better aware of the Wayland shadow, so that less memory is needed.
-
- 09 Jul, 2015 2 commits
-
-
Martin Flöser authored
-
Martin Flöser authored
The creation of PlasmaWindowInterface is moved from WaylandServer into AbstractClient. This allows the sub classes to better control when to create/destroy the Client. For creation it's bound to becoming visible - that is Windows which are only created but never shown are not announced at all. For Client it's destroyed with the normal tear-down of a Client, for ShellClient it's destroyed on unmapped (which also means a new one will be created again in case of another mapping of the surface). As a side effect, this works around the problem that ShellClients do not yet get destroyed for QtWayland's menus (needs further investigation).
-
- 29 Jun, 2015 1 commit
-
-
Martin Flöser authored
Ensures that the PlasmaWindow gets destroyed together with the window. Note: when a ShellClient gets unmapped the PlasmaWindow does not yet get destroyed. It should probably get destroyed and recreated on next mapping.
-
- 20 Jun, 2015 1 commit
-
-
Martin Flöser authored
If the icon doesn't have a name, we pass the generic xorg icon. Most likely our xwayland clients won't have a theme name, so giving them the xorg icon seems a good enough work around. If we would want to pass the real icon for xwayland clients we would need a way to serialize them which seems like quite some needless overhead for legacy applications. Can be considered for the future nevertheless.
-
- 19 Jun, 2015 2 commits
-
-
Martin Flöser authored
-
Martin Flöser authored
This should be enough for libtaskmanager to manage the windows.
-
- 18 Jun, 2015 2 commits
-
-
Martin Flöser authored
-
Martin Flöser authored
-
- 17 Jun, 2015 2 commits
-
-
Martin Flöser authored
The unmap triggers a destroy on client side and also triggers the automatic cleanup of the PlasmaWindowInterface instance.
-
Martin Flöser authored
With Xwayland clients it can happen that the window gets destroyed before it ever got a surface (Qt 5's file open dialog being an example). This change delays such clients till it got the surface, removing not needed roundtrips and possible problems.
-
- 16 Jun, 2015 1 commit
-
-
Martin Flöser authored
Creates a PlasmaWindowInterface for each AbstractClient and so far passes caption and virtual desktop through.
-
- 13 Jun, 2015 2 commits
-
-
Martin Flöser authored
So far this only allows to trigger show desktop functionality and exports the state. In future this should be restricted to just one dedicated desktop shell process.
-
Halla Rempt authored
Input-method servers, like maliit, need to be known to KWin since KWin needs to know about virtual keyboards. Virtual keyboards should be shown as OSD layers, and they are one of the types of windows that actually should be showable when the lock screen is active. kwin_wayland --inputmethod /path/to/your/input-server tries to start the input server. The input-server's window never gets keyboard focus and is shown on top of all windows except for KWin's internal clients.
-
- 09 Jun, 2015 2 commits
-
-
Martin Flöser authored
If the ShellClient has a QtExtendedSurface it's closeable.
-
Martin Flöser authored
The PlasmaShell interface allows to create a PlasmaShellSurface for a given Surface. Through this interface the Surface can request: * a specific position * a window type So far only the window types Normal, Panel and Desktop are supported which is a sufficient subset for getting plasmashell to work. In future there should be security checks so that only the dedicated desktop shell can bind these interfaces.
-
- 28 May, 2015 2 commits
-
-
Martin Flöser authored
No longer needed as we install keymaps which prevents the crash in QtWayland this version check worked around.
-
Martin Flöser authored
Fixes regression introduced with 90a68145: we may not queue a signal taking a pointer to a ShellClient as the ShellClient might be destroyed before the queued signal is delivered. The idea for the queued signal was to ensure that the size is set when windowShown is emitted - this can also be achieved by first updating the size.
-
- 27 May, 2015 1 commit
-
-
Martin Flöser authored
When a ShellClient is added and it's not internal, it get placed just like any other Client. This needs to happen after the initial size is determined. Please note: this breaks the positioning of popup windows (e.g. menus) as they are placed like any other Client. This needs proper popup support which right now does not yet exist and thus is not much difference to before.
-
- 21 May, 2015 3 commits
-
-
Martin Flöser authored
This simplifies the interaction: we know that the Surface is useable if it got announced to the Workspace.
-
Martin Flöser authored
Adds all internal ShellClients into a dedicated list. This ensures that we don't perform "normal" window management on them. In addition we add them to the top of the stacking order. This restores behavior as it is on X11: internal windows are using BypassWindowManagerHint and thus on top of everything.
-
Martin Flöser authored
The internal used window Id consists of two parts identifiying the Client and one identifying the Surface. That is the first 16 bits are set to the ClientConnection, the last 16 bits are taken from the Surface id. As the Surface id is 32 bits, but we only use 16 bits there is a chance of overlap. So this might need some improvement.
-
- 18 May, 2015 2 commits
-
-
Martin Flöser authored
If the ShellClient got created for a Qt internal window, we try to find the QWindow and if we get one, we use the geometry directly as it got set by KWin in the first place. Also a windowId() is added to ShellClient which can be used by the effect system to find an EffectWindow. If it's an internal QWindow we just use that window id. For other clients we still need some smart solution.
-
Martin Flöser authored
QtWayland and mesa might dead lock KWin if we start rendering a QWindow before Qt/Mesa got the last frame callback. They perform blocking wayland event reading on the main gui thread which makes it impossible for KWin to do the compositing and send the callback. To workaround this problem we fake a frameRendered directly after each damage event for a Qt internal window. Unfortunately this is not yet completely sufficient, thus we also need to ensure that the wayland events are processed before any events are processed which would cause a repaint and block. Thus we first flush QtWayland's wl_display and then our Server connection. If there were any damage events we can be sure that the frameRendered is sent before Qt attempts to render.
-