13427 Commits (fe28ca1d8a74e44f42fce2c630cc81fd0394741f)
 

Author SHA1 Message Date
Martin Gräßlin 02cebe93a6 [wayland] Unreference the buffer when destroying the WindowPixmap
When we don't use the buffer anymore, we should discard it. Otherwise
we start to leak buffers and that can result in clients dead locking
while waiting for more free buffers.
9 years ago
Marco Martin 9744625253 don't close desktop windows and docks
reviewed-by:Martin Gräßlin <mgraesslin@kde.org
9 years ago
Martin Gräßlin 65665b052b [wayland] Let's try to activate a ShellClient after it's created
This might cause breakage on kwin_wayland, let's see how it works.
9 years ago
Martin Gräßlin ad80e31e6a [wayland] Reset ShellClient::m_unmapped before calling setReadyForPainting
m_unmapped determines whether the ShellClient wantsInput. This is used by
the ScriptingModel to check whether a ShellClient should be included. It
gets triggered by windowShonw signal called from setReadyFromPainting. If
m_unmapped is still true at that point the ScriptingModel doesn't include
it.
9 years ago
Martin Gräßlin 93c88aa446 [wayland] While a ShellClient is not shown, it won't take input 9 years ago
Martin Gräßlin 11e0e75fb3 Add a signal Toplevel::windowHidden
Signal is connected in ScriptingModel together with windowShown.
9 years ago
Thomas Lübking ff2590ac52 fix compilation on older gcc (at least 4.8.3)
thanks to Hrvoje Senjan for bringing this up
REVIEW: 123936
9 years ago
Thomas Lübking cc9a95df5d evenly distribute windows into all corners
If the user has only maximized windows or all
windows crammed into one region of the screen
the effect would not resemble an aperture at all

this ensures a maximum amount of corners is used
while seeking to still use shortest paths

BUG: 348709
FIXED-IN: 5.4
9 years ago
Thomas Lübking e830f08def update geom_restore when silently breaking QT mode
the next checkWorkspacePosition (now triggered by
deco border update) would falsely restore the
pre-tiling geometry

BUG: 348640
REVIEW: 123882
9 years ago
Thomas Lübking 42f53eccbd update geom_restore on unshading
REVIEW: 123882
BUG: 348064
9 years ago
Thomas Lübking 1eae9f4baf improve geometry handling on bordersChanged
a) calculateGravitation on the same borders forth and back is idempotent
b) do not checkWorkspacePosition for shaded windows
   may falsely constrain the unshaded geometry into screen bounds

REVIEW: 123882
BUG: 348064
9 years ago
Thomas Lübking 0b9cfffe1a checkWorkspacePosition: Don't adjust to shaded sz
since the client is currently empty, we'll resort
to client hints, ie. effectively resize windows
when shading them (setGeometry and plainResize have
extra checks on whether this geometry is only the decoration
height to not smear client_size)

REVIEW: 123882
BUG: 348064
9 years ago
Thomas Lübking 7f71c89111 don't nuke both dims if undecorated frame isEmpty
isEmpty hits if one dimension is <= 0 - the other one
can be absolutely valid, so preserve it.

REVIEW: 123882
9 years ago
Thomas Lübking 41be18e317 Robust modal activation; ensure showing activated
...window

REVIEW: 123875
BUG: 348083
9 years ago
Martin Gräßlin f696b578cc [wayland] Add support for QtSurfaceExtension for closing ShellClients
If the ShellClient has a QtExtendedSurface it's closeable.
9 years ago
Martin Gräßlin 6bdf120b3f Workspace::setShowingDesktop operates on AbstractClient 9 years ago
Martin Gräßlin 124bd8aaed [wayland] Add support for the PlasmaShell interface
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.
9 years ago
Martin Gräßlin 2bdabe62aa [wayland] Check for docks in ShellClient in Workspace::updateClientArea
A ShellClient can have window type dock. In that case it's considered to
have a strut. That is currently every panel restricts the area. On the
other hand only internal clients can be docks at the moment. For Plasma's
panels a dedicated interface will be needed.
9 years ago
Martin Gräßlin 280075b7cd [wayland] Support windowType for internal windows
Our internal windows (e.g. a declarative script) can specify their own
window type which then can get honored by KWin.
9 years ago
Martin Gräßlin e46ad2091b [wayland] Internal ShellClient is on all desktops 9 years ago
Martin Gräßlin 199cd70416 [tests] WaylandClientTest can maximize/restore on middle click 9 years ago
Martin Gräßlin 7cded49145 [wayland] Implement maximizing of ShellClient 9 years ago
Martin Gräßlin 034276af36 Move clientMaximizedStateChanged signal from Client to AbstractClient 9 years ago
Martin Gräßlin 239104b4f4 [wayland] Trigger layerRepaint on old geometry when changing geometry
Applies for the case that we have a positionAfterResize.
9 years ago
Martin Gräßlin b196ad7052 [scripting] Add support for ShellClients in ScriptingClientModel 9 years ago
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.
9 years ago
Martin Gräßlin 11a3eac070 Move skipPager from Client to AbstractClient 9 years ago
Martin Gräßlin c4c637db92 [scripting] ScriptingClientModel operates on AbstractClient 9 years ago
Martin Gräßlin 86e0fc4dde [wayland] Ensure internal clients can trigger compositor repaints 9 years ago
Martin Gräßlin 7f0758b85f [wayland] Handle pointer events for internal windows
If there is a visible internal window it gets the pointer events.
The assumption is that the last created internal window is the top
most in stacking order.
9 years ago
Martin Gräßlin 7a64426085 Trigger updateMoveResize after keyboard move 9 years ago
Martin Gräßlin 06fc00b4a9 [wayland] Support pointer warping in the backends
The X11 backend can warp the pointer.
9 years ago
Martin Gräßlin 74c111ef88 [wayland] Add support for pointer warping in InputRedirectionCursor
With libinput we do can support warping pointers, let's do it.
9 years ago
Martin Gräßlin 4ca3734d12 [wayland] Support move/resize mode in pointer move handling 9 years ago
Martin Gräßlin 545c8b190e Send HoverMove event to selected window decoration if buttons are pressed
Ensures that e.g. decoration buttons get the Leave events.
9 years ago
Martin Gräßlin 735ffc8ab2 [wayland] Improve getting cursor image from theme
We don't need to queue the method invokation any more to ensure the
Wayland server connection is flushed since we have the dispatch method
in waylandServer().
9 years ago
Martin Gräßlin 4a1288b0c9 [wayland] Update cursor image from current decoration 9 years ago
Martin Gräßlin 59ca83d67a [wayland/x11] Implement installCursorImage in X11WindowedBackend 9 years ago
Martin Gräßlin 1edd689293 Handle interaction with window decoration directly in InputRedirection
So far input events were sent through Xwayland which is not needed as
we have all information available. Even more it had the pointer surface
on the wrong window when interacting with decorations as it was on the
window and not on the decoration.
9 years ago
Martin Gräßlin 8b3be23032 Don't update focused pointer window on pointer movement while button is pressed
If a button is pressed all mouse events should go to the current surface
regardless of whether the pointer is on top of it or not.
9 years ago
Eike Hein 8468da197c Merge branch 'Plasma/5.3' 9 years ago
Eike Hein 26ee92cd67 'Defaults' should set the title bar double-click action to 'Maximize.' 9 years ago
Martin Gräßlin eac99d5df6 Clenup: Drop QPoint argument from Client::mousePosition
Unused variable is unused.
9 years ago
Martin Gräßlin 6c0c513874 Require XCB 1.10
We need XCB 1.10 for sync to work. Sync was optional with a version check
to make it work on build.kde.org. The CI system supports XCB 1.10 now, so
it's better to have it as a mandatory requirement.
9 years ago
Martin Gräßlin 8a9bbf7ca3 XCB::CURSOR becomes a required dependency
It was only optional because build.kde.org did not provide it when the
dependency got introduced.
9 years ago
Thomas Lübking be339d7ed3 Merge branch 'Plasma/5.3' 9 years ago
Thomas Lübking 3f8a8ea32a align to c4140d6f4e
activation is now supposed to happen instantly
9 years ago
Thomas Lübking f887c7d4ee Merge branch 'Plasma/5.3' 9 years ago
Thomas Lübking 9f13e9b260 WORKAROUND for nvidia VBO failures
When switching virtual terminals,
suspending to ram and resizing the
screen (GL viewport) at least the
nvidia driver moves VBO data between
the video RAM and the system heap -
and something about this isn't reliable:

An often perceived resulted are scattered
windows but it may also be the cause for
entirely black screens reported for same
occasions.

As a workaround, we hook into the GL debug
messages and filter them for the suspicious
message, then re-init VBOs

TODO:
figure whether that's our fault or nvidias

REVIEW: 123936
CCBUG: 344326

Patch applies to KWin 5.4
9 years ago
Thomas Lübking 6a27626090 set still required xcb properties in findRule
which is invoked "in place" of the detect button
when calling the kcm as special window/application
setting from the Alt+F3 menu

BUG: 348472
REVIEW: 123953
9 years ago