Commit graph

18681 commits

Author SHA1 Message Date
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
Vlad Zahorodnii
5a0a86c358 Fix unused variable warnings 2020-09-10 10:10:31 +03:00
Aleix Pol
eafe23b27c Hopefully fix the build on BSD
At the moment it complains about std::array being unknown.
2020-09-10 01:06:41 +02:00
Vlad Zahorodnii
53cb4207ea scenes/opengl: Use std::array to store lanczos kernel data
This fixes a compiler warning (-Wclass-memaccess) and makes code a bit
cleaner.
2020-09-09 19:36:26 +00:00
Kai Uwe Broulik
e14a011165 [effects/fullscreen] Add effect that animates full screen changes
Just a slightly altered copy of the maximize effect
2020-09-09 18:18:16 +00:00
Aleix Pol
3aca5bfa68 Don't recreate the WindowQuadList when we are using it
Allocate once and pass it around.
2020-09-09 17:46:56 +00:00
Aleix Pol
a6f803cde6 Prefer appending vector to a vector with += rather than a custom implementation
QVector has ad-hoc code to do so.
2020-09-09 17:46:56 +00:00
Aleix Pol
76fbb43798 Reduce repeated Screens::scale(int) 2020-09-09 17:46:56 +00:00
Aleix Pol
75321a2166 Don't check if there's a non-rendered output twice
We are already doing it on the line above.
2020-09-09 17:46:56 +00:00
Aleix Pol
a7ecaa55e3 Prefer constant iterators when we don't change the container 2020-09-09 17:46:56 +00:00
Méven Car
7b99a28050 Fix email address 2020-09-09 18:33:22 +02:00
Vlad Zahorodnii
9663dd5fb3 Adjust screencast service to recent kwayland-server changes 2020-09-09 16:03:41 +00:00
Vlad Zahorodnii
2b241d3081 Properly handle opaque regions for CSD X11 windows
Currently, we don't compute the clip region properly for some client-
side decorated applications, for example gedit, due to mixing several
separate coordinate spaces.

This change ensures that the window pixmap shape and the opaque region
are in the same coordinate space - the window pixmap coordinate.

In order to simplify mapping regions from the window pixmap coordinates
to the global screen coordinates, a new helper method was introduced in
the WindowPixmap class - mapToGlobal().
2020-09-09 15:58:58 +00:00
Vlad Zahorodnii
c0da7faa6f xwayland: Don't exit if failed to read DISPLAY
We want the compositor to survive even if something goes wrong when
starting Xwayland.
2020-09-09 15:25:59 +00:00
Vlad Zahorodnii
8697bcd7e9 xwayland: Avoid printing "FATAL ERROR" log messages
Since we want kwin to survive Xwayland crashes, printing "FATAL ERROR"
is highly undesirable.
2020-09-09 15:25:59 +00:00
Vlad Zahorodnii
b13a74c908 xwayland: Replace criticalError() signal with a less fatal signal
If the Xwayland executable can't be found, the whole session will die
because a criticalError() signal will be emitted.

This change replaces the criticalError() signal with a less severe
signal.

If the errorOccurred() signal has been emitted during the startup
sequence, kwin won't die and will just continue with spawning the
session process.
2020-09-09 15:25:59 +00:00
Vlad Zahorodnii
6dbc060596 autotests: Use new xdg-shell helpers in ToplevelOpenCloseAnimationTest 2020-09-09 15:23:06 +00:00
Vlad Zahorodnii
2691b84c99 autotests: Introduce helper classes for testing xdg-shell clients
After splitting out the server part of KWayland into a separate repo,
all non-core protocol wrappers in KWayland::Client had become obsolete
and using them in new projects is highly discouraged.
2020-09-09 15:23:05 +00:00
Vlad Zahorodnii
fe68ddd9ad Initialize fields of the Workspace class in correct order
The compiler doesn't like that fields of the Workspace class are declared
and initialized in different order.
2020-09-09 14:16:02 +00:00
Vlad Zahorodnii
8a788b71ca Slightly improve code readability
The compiler suggests us to add some parenthesis in order to improve
code readability.
2020-09-09 17:05:34 +03:00
Vlad Zahorodnii
bfb257c9ed kcmkwin/tabbox: Port away from deprecated KTitleWidget::setPixmap()
KTitleWidget::setPixmap(MessageType, ImageAligment) has been deprecated
in favor of KTitleWidget::setIcon() method.
2020-09-09 13:53:26 +00:00
Vlad Zahorodnii
e5dd5b6a77 Replace some if statements with a switch statement
The switch case statement allows the compiler to optimize code. More
specifically, if the values are densely packed, then the compiler may
generate a jump table. The switch statement also looks cleaner.

As for the if statements in adjustWorkArea(), they were overlooked by
me after LayerSurfaceV1Interface::exclusiveEdge() had been introduced.
2020-09-09 13:51:08 +00:00
Vlad Zahorodnii
3805f212ec autotests: Remove XdgShellSurfaceType enum
Currently, it has only one item - XdgShellStable.
2020-09-09 13:21:57 +03:00
l10n daemon script
81a9b824cf 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-09 06:33:22 +02:00
David Edmundson
6acf35e4cc Avoid QPointer in return types of Input methods
QPointer is a really useful way to store a pointer over time.
It doesn't make have any value as a return value used by a short-lived
method.

There isn't a good copy constructor, it's effectively the same as
creating a new QWeakPointer reference that has to be cleaned up.

Testing if something is null is still the same. A new QPointer can be
made by the caller if it actually is needed.

Input handling is a very hot path called many times a frame, so it's
important to keep this light. focus() and at() are called a lot which
added up to slightly over 1% of CPU time when moving the mouse about.
2020-09-08 08:04:13 +00:00
Méven Car
e563b83b43 Make ScreenShotEffet::screenshotScreen return native screen sized images in Wayland case 2020-09-07 10:00:29 +02:00
l10n daemon script
c7d903754f 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-07 06:05:30 +02:00
l10n daemon script
72ab500ece 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-06 05:57:12 +02:00
l10n daemon script
b720b4237b 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-05 06:17:36 +02:00
Vlad Zahorodnii
7e9bec6fd7 Use consistent naming pattern for wayland shell integrations
This change intends to fix a minor inconsistency regarding how shell
integration classes are named.
2020-09-04 16:51:25 +03:00
Vlad Zahorodnii
631276e3c1 Unset virtual keyboard geometry when the input panel surface is unmapped 2020-09-04 13:08:34 +00:00
Vlad Zahorodnii
88829de9dd wayland: Refactor creation of input panel clients
This change introduces a shell integration class for input panel
surfaces. This effectively breaks the direct dependency between our
virtual keyboard component in kwin and the input_panel protocol,
which means that an input method server could use the layer-shell
protocol instead of the input_panel protocol.
2020-09-04 13:08:34 +00:00
Vlad Zahorodnii
b3f3248543 screencast: Switch to new outputScreencastRequested() signal 2020-09-04 08:49:52 +00:00
Vlad Zahorodnii
790ddc0909 Remove WaylandClient::isInputMethod()
We assume that the input method server has at most one surface at a time,
which corresponds to the virtual keyboard. But it's not guaranteed to be
always true.

For example, an xdg_toplevel surface can be created for a configuration
dialog, in which case isInputMethod() should not return true.
2020-09-04 06:47:38 +00:00
Vlad Zahorodnii
33e037d45d Remove InternalClient::isInputMethod()
It's the same as the default implementation.
2020-09-04 06:47:38 +00:00