13597 Commits (48a62729166f7f07f700ada6771541afb07356e5)
 

Author SHA1 Message Date
Martin Gräßlin 48a6272916 [tests] Support a trasient window in the waylandclienttest
Main purpose is to reproduce a crash if the parent window gets
destroyed before the transient. For this the following key combo
can be used:
t: show transient
k: close parent window
q: quit application

This currently causes reliably a crash in Deleted::copyToDeleted for
the connect of the mainClients.
9 years ago
Martin Gräßlin 044e2a05b2 [effects] Properly announce/remove support in blur/contrast if shader fails
Following the approach how it's done for X11: only create the interface
if the shader succeeded to compile and remove support again if it failed
to compile after a reconfigure.

REVIEW: 125444
9 years ago
Martin Gräßlin 0e0c76e080 Merge branch 'Plasma/5.4' 9 years ago
Martin Gräßlin 5968096434 Fix heap-use-after-free use in resolving ClientMachine
Discovered by ASAN on the CI system causing the
TestClientMachine::hostName(ostname) to fail since it's enabled.

What happened is that the QByteArray returned by getHostName() gets
destroyed in the main thread but accessed in the resolve thread. This
is changed by calling getHostName in the resolve thread.

REVIEW: 125458
9 years ago
Thomas Lübking b170f3fd23 Merge branch 'Plasma/5.4' 9 years ago
Thomas Lübking 85b3515794 support absolute libexec path configuration
BUG: 353154
REVIEW: 125466
FIXED-IN: 5.4.2
9 years ago
Marco Martin 9912d84f74 supports kwayland skipsTaskbar
read the skipTaskbar property from plasmashellsurface
and set it accordingly in the corresponding PlasmaWindow
for the model
REVIEW:125454
9 years ago
Thomas Lübking 8173deab6b Merge branch 'Plasma/5.4' 9 years ago
Thomas Lübking 75b08e1ee7 log *which* binary failed to start
Users shouldn't have to od libraries.
CCBUG: 353154
REVIEW: 125464
9 years ago
Martin Gräßlin 748754bce1 [tests] Add fullscreen mode to waylandclienttest
Pressing key f toggles the window between fullscreen and normal mode.
9 years ago
Martin Gräßlin eda4f61037 [autotest] Add workaround for broken no-XRandr in screen edge test
With Qt 5.5 the physicalSize of a screen is broken if the X system does
not provide the XRandR extension. This caused our screen edge test to
fail on the CI system (Xvfb) due to approach window being based on the
dpi.

The problem itself is addressed for Qt in:
https://codereview.qt-project.org/126808

This change just worksaround till the change has made it into our CI
system (at which point the expected fails will break).

Reviewed-By: David Edmundson
9 years ago
Martin Gräßlin 8073d851c4 [screenedges] Add a missing context to connect
Lambda capturing this should get disconnected when this gets destroyed.
9 years ago
Martin Gräßlin 1f2087ce7c Merge branch 'Plasma/5.4' 9 years ago
Martin Gräßlin 7365069ba0 [autotests] Adjust TestScreenEdges::testCallback to changes
We need to add more delay to get it trigger/pushback again.
9 years ago
Martin Gräßlin acf668d798 [autotests] Adjust TestScreenEdges::testFullScreenBlocking for changes
We need to wait the reactivation time before getting a pushback again.
9 years ago
Martin Gräßlin e5fbb20e8b [backends/x11] Allow grab keyboard/pointer
When pressing right control key the input gets grabbed/released.
The grab is for both keyboard and pointer and pointer is also confined
to the window.

How to grab/ungrab is added to the window title.
9 years ago
Martin Gräßlin 4fa01583cb [backends/x11] Use NETWinInfo for our window. 9 years ago
Thomas Lübking b0dc3b3009 shuffle mnemonics in "more actions"
in a way so that each entry has its own
drawback: present mnemonics changed.
they however also change with i18n.

REVIEW: 125434
BUG: 319695
FIXED-IN: 5.5
9 years ago
Thomas Lübking ace742d143 initialize pseudo_max with desired maximization
the pseudo maximization sanitizes huge windows and
was/is the way kdelibs KMainWindow indicates maximization

It must however build up on the hinted maximization
and not MaximizeRestore, or it may falsely destroy
the maximization hint from the client (which now works
in KF5 ;-)

BUG: 352185
REVIEW: 125037
FIXED-IN: 5.5
9 years ago
Thomas Lübking 0302b97aea prevent calling xrandr w/o extension available
BUG: 343844
FIXED-IN: 5.5
REVIEW: 125074
9 years ago
Thomas Lübking d04645266c enforce update on re-redirection
REVIEW: 125039
BUG: 342881
FIXED-IN: 5.5
9 years ago
Thomas Lübking cb1005120a support changing tabbox mode
Allow to change from general window cruising to application specific
cruising w/ releasing the Alt key

BUG: 316544
FIXED-IN: 5.5
REVIEW: 125392
9 years ago
Thomas Lübking 121d59ee28 add black/whitelist config to videowall
REVIEW: 125410
BUG: 353153
FIXED-IN: 5.5
9 years ago
Thomas Lübking d61e6cd445 improve restricted moveresize
* skip all overhead on unrestricted moveResizes
* the titlebar is not guaranteed to be the top border (anymore)
* don't block vertical resize when resizing on a top corner
* reduce QRegion operations by knowledge about the degenerated titlebarregion (rect)
* rename int (sic!) "titleArea" to "requiredPixels"

REVIEW: 125428
9 years ago
Thomas Lübking dc9f14087c Merge branch 'Plasma/5.4' 9 years ago
Thomas Lübking 1d3a1aa061 restore linked screenedges times
commit c6bd68d78a2e00ce094a4087c106aaf4067f9f57 fixed a bug
that allowed early invocation when pushback was forced down.
However, it also turned activation and re-activation time
additive again (ie. invocation could only happen after
r+a ms instead of after r ms)

see also REVIEW 124888
REVIEW: 125143
9 years ago
Martin Gräßlin 9f054bd8ad Fix connects with QPointer
We need to call data() on the QPointer in a connect, otherwise
compilation fails on some compilers.
9 years ago
Thomas Lübking af4809134c fix up delayed quick tiling
a) if the move is left after the delay is triggered
   but before the timer hit, do not cause a stale QT
   indication
b) only delay QT if there's actually another screen
   on the other side

BUG: 352744
REVIEW: 125250
9 years ago
Martin Gräßlin 36a2bad8fd Merge branch 'Plasma/5.4' 9 years ago
Rob Ert 8686ca7ca0 [kcmkwin/effects] Support binary effect plugins
Locates plugins through KPluginMetaData. To improve code
readability the load method is split into dedicate mehtods for
* binary plugins
* builtin effects
* scripted effects

REVIEW: 125232
BUG: 352680
FIXED-IN: 5.4.2
9 years ago
Martin Gräßlin 6dc211dfaf Workspace::adjustClientSize operates on AbstractClient
And now also during resizing clients snap to ShellClients.
9 years ago
Martin Gräßlin 47d2b4cb49 Workspace::adjustClientPosition operates on AbstractClient
With that moving clients snap also against ShellClients and not just
Clients.
9 years ago
Martin Gräßlin 51888e8abd Introduce an allClientList in Workspace
Holds AbstractClients that is both X11 and Wayland clients. Allows
to easily change code which needs to operate on all clients to get
to them without needing special handling for Wayland clients. At the
same time we are still able to get to the windowing system specific
clients through the old clientList() and waylandServer()->clients().
9 years ago
Martin Gräßlin 6326d96c02 [backends/x11] Set a black background pixel on our rendering window
By setting a black background pixel the window doesn't open with
garbage content (garbage being copy content of what was in the
framebuffer).
9 years ago
Martin Gräßlin 23f1b04a71 Fix regression in Workspace::activateNextClient
This fixes yet another regression from the transient refactoring.
The passed in client might be null, so we need a nullptr check. There
are several already in that code.

Was tricky given that I removed a cast there.
9 years ago
Martin Gräßlin 000954c508 Allow transients to go over dock windows under certain conditions
For Wayland transients are popups relative to a parent surface. This
means for a dock window we obviously want them above the dock, otherwise
the context menu would be below the dock.

To not break the existing functionality (which makes sense) we bind
it to whether the transient has a positioning hint - that's only set
for ShellClients.
9 years ago
Martin Gräßlin a6118016ec Reintroduce nullptr check in Client::removeFromMainClients
Removed by accident in 69be73d3, of course needed and causes an
unusable session due to kwin crashing when managing clients.

Sorry!
9 years ago
Martin Gräßlin 9988fa9d74 Add safety check for recursive transient for
An AbstractClient cannot be transient for itself.
9 years ago
Martin Gräßlin d25c465211 Move layer functionality to AbstractClient
Merges together the code from ShellClient and Client and removes the
starting differences. Long term it's better to have only one
implementation to prevent diversions in the implementation.

As it doesn't match exactly protected virtual methods are called
which allow more specific implementations for a certain aspect of the
layer resolving.
9 years ago
Marco Martin 49e5e81970 support raise and lower windows on wayland
connect raise/lowerRequested to workspace()->raiseClientRequest
/workspace()->lowerClientRequest
REVIEWED-BY:Martin Graesslin
9 years ago
Martin Gräßlin fc5b303c5f Workspace::raiseClientWithinApplication opertes on AbstractClient 9 years ago
Martin Gräßlin e46bf87311 Workspace::lowerClientWithinApplication operates on AbstractClient 9 years ago
Martin Gräßlin c4f02a6677 Pass through mainClients for AbstractClient in EffectWindowImpl 9 years ago
Martin Gräßlin f84b4758f2 Fix incorrect static_casts to Client
Replace by better dynamic_casts to AbstractClient.
9 years ago
Martin Gräßlin 5f429625f0 Workspace::topClientOnDesktop returns AbstractClient 9 years ago
Martin Gräßlin a9d8926d3c Workspace::findDesktop returns AbstractClient 9 years ago
Martin Gräßlin a421f546cd Move functionality of Client::updateLayer to AbstractClient
With transient support in AbstractClient we can provide the
functionality in AbstractClient.
9 years ago
Martin Gräßlin b199356774 Move functionality from Client::doSetDesktop to AbstractClient::setDesktop
Functionality related to transient handling can now be provided by
AbstractClient.
9 years ago
Martin Gräßlin 4a3d0fdac6 Workspace::updateOnAllDesktopsOfTransients operates on AbstractClient 9 years ago
Martin Gräßlin 69be73d382 Remove no longer needed casts to Client regarding transients
Restores to functionality before refactoring.
9 years ago