Commit Graph

18465 Commits (master)

Author SHA1 Message Date
Vlad Zahorodnii 75cad57cd9 Fix invalidation of cached x stacking order in wayland only mode
Currently, if kwin/wayland runs without xwayland, the order in which
windows are painted doesn't actually reflect the true stacking order.

If the stacking order has been changed, we need to invalidate the
cached x stacking order. But it's done only when RootInfo is present.

If Xwayland doesn't run, RootInfo is not available and thus window
raising is completely broken.

With this change, the x stacking order will be invalidated every time
some window has been raised, no matter what mode kwin operates in.
2020-09-24 09:48:15 +00:00
Andreas Haratzis 6f53f62741 Fix for PlasmaSurfaceTest broken in a3b50500
TestPanelWindowsCanCover now needs to wait for the event queue to process the hover event.
2020-09-24 09:34:29 +00:00
Andreas Haratzis 1dbe3708f5 Fix for potential use-after-free introduced in a3b50500
If showOnScreenEdge is called, immediately followed by the client's destruction, it's possible that the next event queue process will call raiseClient with a destroyed client.
We avoid this by using singleShot that is lifetime-aware.
2020-09-24 09:34:29 +00:00
Vlad Zahorodnii 0c266e760b Replace remaining usages of old connect syntax with new connect syntax
This change replaces the remaining usages of the old connect syntax with
the new connect syntax.

Unfortunately, there are still places where we have to use SIGNAL() and
SLOT() macros, for example the stuff that deals with d-bus business.

Clazy was used to create this change. There were a few cases that needed
manual intervention, the majority of those cases were about resolving
ambiguity caused by overloaded signals.
2020-09-24 09:33:45 +00:00
Vlad Zahorodnii 70b18ae404 Port some KCMs away from deprecated KShortcutsEditor::undoChanges()
undoChanges() has been deprecated in favor of undo() in KF 5.75.
2020-09-24 07:52:44 +00:00
l10n daemon script 102332df00 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"
2020-09-24 06:27:23 +02:00
Vlad Zahorodnii 70700b868a Properly test internal window flags
Qt::Popup is a mask, so we cannot use the `&` operator to test the window
type. We need to use QFlags::testFlag() for that purpose instead.
2020-09-23 18:21:24 +03:00
Vlad Zahorodnii bc34736534 Use better window placement heuristics for internal clients
Currently, we do some sort of window placement only for decorated
internal windows, which feels hacky.

With this change, all internal clients will go through the window
placement code, unless it's a popup or the BypassWindowManagerHint
flag is set.

If the BypassWindowManagerHint flag is set, the window must have
valid position.

CCBUG: 400675
2020-09-23 14:39:15 +00:00
Vlad Zahorodnii 960a40ef44 Use right windowDamaged() signal in ThumbnailItem 2020-09-23 16:38:25 +03:00
Vlad Zahorodnii 989699a273 Remove unused things in VirtualKeyboard 2020-09-23 13:59:36 +03:00
Vlad Zahorodnii 22cf80c466 Don't establish text input connections every time focused surface changes
Currently, whenever the focused text input surface changes, the virtual
keyboard will create a bunch of excessive connections. This is leftover
after the old design.
2020-09-23 10:55:30 +00:00
Aleix Pol 9479c0d6b4 Do not call randomly eglGetError() after eglMakeCurrent
If it failed, it will return accordingly, and then we get to call
eglGetError, only when it fails.
2020-09-23 10:05:30 +00:00
Aleix Pol 13dcb46888 Remove unnecessary allocation in GLShader::setUniform(int, const QMatrix4x4 &)
We were creating a vector just to copy it over. We can pass the original
vector just as well.
2020-09-23 10:05:29 +00:00
Aleix Pol 097caa64a5 Improve Compositor::performCompositing
Prefer QVector to QList on local variables.
Iterate with qAsConst on containers that should not change.
2020-09-23 10:05:29 +00:00
Aleix Pol f1233a641d Clean Workspace::updateXStackingOrder()
No need to create x_stacing by iterating over stacking_order, it can be
copied. We are not performing any operations over it.
Also no need to instanciate the tree until we want to use it.
2020-09-23 10:05:29 +00:00
Bhushan Shah 0e05f4e4c2 Add versioning information to the seat_interface->textInputV2 2020-09-23 09:02:05 +00:00
Adrien Faveraux c0f9ed3400 Adapt to changes in the text-input interface 2020-09-23 09:02:05 +00:00
Vlad Zahorodnii 90dce019ad qpa: Expose output names to QScreen
It can be useful for things such as effects.
2020-09-23 06:36:31 +00:00
Aleix Pol 870b411015 Remove unused variable 2020-09-22 19:39:42 +02:00
Aleix Pol 61e655f7f7 Centralize WindowPixmap buffer updating code
Uses a setter and clear method pattern rather than having the code
repeated.
Instead of keeping a QPointer, now we are a QObject and we get notified
about destruction intention directly, so we can clear the pointer when
necessary.
2020-09-22 13:04:35 +00:00
Aleix Pol 26950a65a6 Have Toplevel::damage emit a QRegion
Instead of looping through the rects in the region, emit the region at
bulk. It reduces the amount of emissions we do and allows us to pack the
response accordingly.
2020-09-22 14:45:08 +02:00
Bhushan Shah fd917b4e00 Update version number for 5.20.80
GIT_SILENT
2020-09-21 16:37:41 +05:30
Vlad Zahorodnii 5f7d23fd07 effects/flipswitch: Port away from deprecated QTimeline curve shape prop
QTimeline::CurveShape has been deprecated in Qt 5.15.
2020-09-21 06:16:33 +00:00
Vlad Zahorodnii 99dd5d94c5 effects/cubeslide: Port away from deprecated QTimeline curve shape prop
QTimeline::CurveShape has been deprecated in Qt 5.15.
2020-09-21 06:16:33 +00:00
Vlad Zahorodnii 3d0042e05b effects/desktopgrid: Port away from deprecated QTimeline curve shape prop
QTimeline::CurveShape has been deprecated in Qt 5.15.
2020-09-21 06:16:33 +00:00
Bhushan Shah 426e7f910d virtualkeyboard: slightly restructure the code
Instead of putting code in lambda put them in actual slots, this is
right now not useful but when e.g. TextInputV3 is implemented, this way
we can re-use them.

This also simplifies the code little bit and makes it easier to use with
gdb if needed.
2020-09-21 05:37:52 +00:00
l10n daemon script 240c77a934 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"
2020-09-21 06:06:27 +02:00
David Edmundson 578287ec95 Reduce resets in DebugConsole when viewing subsurfaces
subsurfaceTreeChanged is emitted on every damage event. This makes it
very noisy and the model constantly resets. This makes it impossible to
expand the tree (as it resets immediately after).

SubSurfaceMonitor gives us more granular signals whilst handling the
recursive aspect.

Also there are no unmanaged windows that are wayland surfaces, so they
are simplified.
2020-09-19 22:56:38 +00:00
l10n daemon script 3cfec5fdcf 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"
2020-09-19 06:15:09 +02:00
Andreas Haratzis 71dfd60284 Fix use-after-free when the user hovers over an auto-hide plasma panel in wayland...
Edge::handle calls showOnScreenEdge, which (on wayland) eventually calls internalShow, which eventually calls ScreenEdges::reserve, which destroys the same edge.
When showScreenOnEdge returns, 'this' has been freed.
Using a singleshot timer allows Edge::handle to return before the Edge is destroyed.
2020-09-18 16:00:52 +00:00
Tiago Corrêa 2e93829259 [scripting] Make client.activities writable 2020-09-18 15:57:39 +00:00
Vlad Zahorodnii 79c667ea67 libkwineffects: Bump API version
The API version must be bumped because a new virtual method in the
EffectWindow class had been introduced that breaks BC.
2020-09-18 12:02:46 +03:00
l10n daemon script e6e72d27b9 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"
2020-09-18 06:21:14 +02:00
Bhushan Shah c5a90a158c Update version number for 5.19.90
GIT_SILENT
2020-09-17 15:05:23 +05:30
Bhushan Shah 8ae28df622 Update qt5 version requirement to 5.15.0
GIT_SILENT
2020-09-17 10:32:13 +05:30
Bhushan Shah b416e204ee Update kf5 version requirement to 5.74
GIT_SILENT
2020-09-17 10:32:13 +05:30
l10n daemon script 54b654dcad 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"
2020-09-17 06:21:21 +02:00
Aleix Pol 6f1e72886a simple for -> foreach on a hot path 2020-09-17 03:12:59 +02:00
Aleix Pol 06e26212a2 Add missing const-referenece
I assume it was a typo
2020-09-17 03:12:59 +02:00
Laurent Montel 07763229eb Remove explicit ECM_KDE_MODULE_DIR 2020-09-16 20:55:36 +02:00
Gang Wu 3925ff5634 enable wayland opaque region 2020-09-16 20:19:32 +08:00
Aleix Pol bd7f758ac9 screencasting: Mark the stream as dirty from the start
Otherwise we detect the stream as clean and skip sending anything,
ending up waiting for the window to issue some damage.
2020-09-15 22:35:21 +00:00
Aleix Pol 651b0df30c Make WindowQuadList a QVector
In my last profiling session I did see a lot of WindowQuadList creation
cost. We know QList is a bit more expensive, so let's just use QVector.
2020-09-15 16:01:14 +00:00
Aleix Pol fec4e058e5 Do not try to create a gbm dmabuf when gbm is not available
Allows us to take the fallback path instead of just crashing
2020-09-15 15:45:44 +02:00
Aleix Pol 474060a456 Improve loop implementations in WindowQuadList
Prefer for() to foreach(), as the latter is deprecated.
Prefer iterating QList using the iteration_expression for() loops,
rather than doing it by index.
2020-09-14 02:19:18 +00:00
l10n daemon script f5900a5fd0 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"
2020-09-12 06:11:10 +02:00
l10n daemon script 8026da5309 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"
2020-09-11 05:58:24 +02:00
Vlad Zahorodnii 259ef70ddd Remove input method leftovers in XdgToplevelClient
isInputMethod() will never return true for an XdgToplevelClient.
2020-09-10 14:59:18 +03:00
Vlad Zahorodnii c7c35513b6 Port TestTabBoxClientModel away from deprecated QWeakPointer::data() 2020-09-10 10:26:32 +03:00
Vlad Zahorodnii a1fe70baaa Port some tests away from a deprecated QProcess::start() overload 2020-09-10 10:19:30 +03:00