Commit graph

25187 commits

Author SHA1 Message Date
Alexander Lohnau
33e32f293b Remove X-KWin-Exclude-Listing metadata flag
We only have one KWin script making use of this and that one is shown
regardless. The issue with this flag is that it will hide scripts from
the user without a possibility to see them.

For effects, we have quite a few internal ones and a possibility to show
even hidden ones. But we can not reuse this logic for the scripts.

BUG: 458572
FIXED-IN: 6.0
2023-07-18 08:51:48 +00:00
Xiao YaoBing
1502fa9ab1 prevent the primaryGpu is a usb device in multi-gpu scenes
if usb device is the primaryGpu, the device unplug kwin_wayland exit

`   } else if (device->action() == QStringLiteral("remove")) {
            DrmGpu *gpu = findGpu(device->devNum());
            if (gpu) {
                if (primaryGpu() == gpu) {
                    qCCritical(KWIN_DRM) << "Primary gpu has been removed! Quitting...";
                    QCoreApplication::exit(1);
                    return;
                } else {
                    gpu->setRemoved();
                    updateOutputs();
                }
           }`
2023-07-18 08:44:09 +00:00
l10n daemon script
6df5b0297d GIT_SILENT Sync po/docbooks with svn 2023-07-18 02:28:18 +00:00
Allan Sandfeld Jensen
08d5dc27d0 Fix build with Debian/Ubuntu
Support older pkg-config naming of libdisplay-info
2023-07-17 11:20:29 +03:00
Xaver Hugl
4cb665dd08 platformsupport/scenes/opengl: fix simpledrm
With simpledrm, only linear modifiers are supported, but with llvmpipe, only
implicit modifiers are supported. As it's still possible to allocate linear
buffers without modififer support by using GBM_BO_USE_LINEAR, this commit fixes
that problem by adding linear modififers to the supported list.
2023-07-17 09:34:04 +02:00
Bhushan Shah
5eec4cdb52 cmake: use add_feature_info for libdisplayinfo
That allows cmake to print proper output when dependency is not found.
2023-07-16 07:30:26 +00:00
l10n daemon script
969de1421f GIT_SILENT Sync po/docbooks with svn 2023-07-16 02:33:02 +00:00
l10n daemon script
1db9259bf9 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"
2023-07-16 02:28:09 +00:00
Laurent Montel
b823747c3b Add explicit moc includes to sources for moc-covered headers
* speeds up incremental builds as changes to a header will not always
  need the full mocs_compilation.cpp for all the target's headers rebuild,
  while having a moc file sourced into a source file only adds minor
  extra costs, due to small own code and the used headers usually
  already covered by the source file, being for the same class/struct
* seems to not slow down clean builds, due to empty mocs_compilation.cpp
  resulting in those quickly processed, while the minor extra cost of the
  sourced moc files does not outweigh that in summary.
  Measured times actually improved by some percent points.
  (ideally CMake would just skip empty mocs_compilation.cpp & its object
  file one day)
* enables compiler to see all methods of a class in same compilation unit
  to do some sanity checks
* potentially more inlining in general, due to more in the compilation unit
* allows to keep using more forward declarations in the header, as with the
  moc code being sourced into the cpp file there definitions can be ensured
  and often are already for the needs of the normal class methods
2023-07-15 08:40:49 +00:00
l10n daemon script
ad1c820c21 GIT_SILENT Sync po/docbooks with svn 2023-07-14 02:38:10 +00:00
l10n daemon script
bf50cc2b67 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"
2023-07-14 02:33:35 +00:00
Laurent Montel
3e31b6fdf2 We depend against qt6 2023-07-13 09:27:53 +02:00
l10n daemon script
c7640e31d2 GIT_SILENT Sync po/docbooks with svn 2023-07-13 02:29:16 +00:00
Vlad Zahorodnii
6cd56d5192 wayland: Implement cursor-shape-v1
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/194
2023-07-12 11:22:11 +03:00
David Edmundson
9f18d5fdfc backends/drm: Mark DMA bufs as mirrored when exporting textures
When streaming direct scan out we take the layers texture directly.
When setting the contentTransform we discard the mirrorY transform that
we know is set on DMA bufs. This results in recording being upside-down.
2023-07-12 06:33:05 +00:00
Vlad Zahorodnii
147b862d7f core: Add GraphicsBufferRef
It's a helper to make GraphicsBuffer refcounting less error prone.
2023-07-11 11:55:53 +00:00
Xaver Hugl
d6c29e2688 backends/drm: fix handling of implicit modifiers 2023-07-11 10:32:41 +00:00
l10n daemon script
0155ede2a5 GIT_SILENT Sync po/docbooks with svn 2023-07-11 02:23:46 +00:00
Xaver Hugl
ccc73d7ef0 backends/drm: fix multi gpu with NVidia as primary
NVidia GPUs can't render to linear buffers, so we can't force a linear modifier
for CPU rendering. The proprietary NVidia driver also can't map gbm buffers
with all formats and modifiers, so instead of mapping the gbm buffer, this
patch changes KWin to instead use glReadPixels for accessing the source
buffer
2023-07-10 13:19:42 +00:00
David Edmundson
0fa0ffd212 screencast: Don't pass modifierFlags to buildFormat when we're not using modifiers
The modifier flags are ignored if we're not setting modifiers. This
won't result in a behaviour change, it's a readability cleanup.
2023-07-10 06:49:45 +00:00
l10n daemon script
d215dac888 GIT_SILENT Sync po/docbooks with svn 2023-07-10 02:31:41 +00:00
l10n daemon script
35fa28dad4 GIT_SILENT Sync po/docbooks with svn 2023-07-08 02:52:42 +00:00
Marco Martin
7244239f05 Port away from PlasmaCore.ColorScope and Plasma.Theme
Now only Kirigami.Theme and Kirigami.Units are used. In plasmoids Kirigami.Theme will take the colors form the plasma theme
2023-07-07 09:15:32 +00:00
l10n daemon script
4d5d88abef GIT_SILENT Sync po/docbooks with svn 2023-07-07 02:26:35 +00:00
l10n daemon script
5ff033e323 GIT_SILENT Sync po/docbooks with svn 2023-07-06 03:16:59 +00:00
Andrew Shark
46807b1a72 effects/mousemark: Add ability to configure modifiers buttons for drawing
Hard-coded modifiers Shift+Meta may interfere with some other actions.

FEATURE: 337043
2023-07-05 12:25:43 +00:00
Vlad Zahorodnii
665e05d711 plugins/qpa: Simplify backing store buffer handling
The main reasoning behind double buffering was to avoid InternalWindow's
copy of m_frontBuffer detaching. But it already detaches when the qpa
calls blitImage(). So remove double buffering to simplify the backing
store.
2023-07-05 09:17:14 +00:00
Vlad Zahorodnii
fc02990b77 core: Hide GraphicsBuffer implementations
The user code should not rely on concrete GraphicsBuffer
implementations, but instead of generic abstractions.
2023-07-05 11:14:12 +03:00
Vlad Zahorodnii
c31f5822fd wayland: Drop SurfaceInterface::bufferScale property
There are no usages for it anymore. We may need another property to
specify the source box in the buffer in the future though.
2023-07-05 05:25:19 +00:00
l10n daemon script
25dc2cefec GIT_SILENT Sync po/docbooks with svn 2023-07-05 03:19:26 +00:00
Xaver Hugl
e698cafa27 backends/drm: handle mismatching stride with CPU copying
BUG: 471517
2023-07-04 17:33:38 +02:00
Xaver Hugl
457f966bf1 core/graphicsbuffer: correct stride handling with buffer mappings
The stride of the mapping is not necessarily the same as the stride of the
underlying buffer
2023-07-04 17:33:38 +02:00
Xaver Hugl
3cc238f85f plugins/backgroundcontrast: fix transformations
While the GLFramebuffer::blitFromRenderTarget helper un-applies the transformations
the rendertarget has, the effect is not written with that in mind. In order to keep
it working properly, blit without any transformations and only adjust the coordinate
system difference between texture and fbo
2023-07-04 15:00:10 +00:00
Daniel Lipovetsky
b31baaf0cd tabbox: Show window switcher only when there are two or more windows
Previously, we showed the window switcher even if there was only one
window, or no windows.

Now, we show the window switcher only if there are two or more windows.
Note that "desktop" counts as a window when the switcher's "show desktop
mode" is enabled.

BUG: 370396
BUG: 419408
2023-07-04 13:38:30 +00:00
Daniel Lipovetsky
a02f09250d tabbox: Add desktop window to client list only if "show desktop mode" enabled
Previously, we always added the desktop to the client list when the list
was empty. We added it even if the switcher's "show desktop mode" was
disabled.

Now, we only add the desktop to the client list if the switcher's "show
desktop mode" is enabled.
2023-07-04 13:38:30 +00:00
Laurent Montel
86c6238cfa Don't use QtTest => use QTest + missing include 2023-07-04 10:38:21 +00:00
Aleix Pol Gonzalez
49a76ea772 Install KWaylandServer headers
There are use cases for the headers to be used, e.g. when implementing
wayland-specific workflows from an Effect.
In order to be able to use these, we also need to expose libkwin to be
imported as it carries the interfaces' symbols.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2023-07-04 08:22:43 +00:00
Aleix Pol Gonzalez
6fd1867681 Drop options.h include
Don't include options.h from renderloop.h. This way it can be included
from outside the project without dragging all of the KWin dependencies.
2023-07-04 08:22:43 +00:00
l10n daemon script
aec482cbe8 GIT_SILENT Sync po/docbooks with svn 2023-07-04 03:47:08 +00:00
l10n daemon script
a529de21dc GIT_SILENT Sync po/docbooks with svn 2023-07-03 02:49:02 +00:00
l10n daemon script
c4d99d0193 GIT_SILENT Sync po/docbooks with svn 2023-07-02 02:56:03 +00:00
l10n daemon script
7e717beb91 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"
2023-07-02 02:52:22 +00:00
Vlad Zahorodnii
88ade3a409 Extract reusable egl swapchain bits
EGL rendering has some duplicated bits, so this change extracts
them to reduce code duplication.
2023-07-01 12:22:28 +00:00
Vlad Zahorodnii
3bd5e91226 Extract reusable qpainter swapchain bits
QPainter rendering has some duplicated bits, so this change extracts
them to reduce code duplication.
2023-07-01 12:22:28 +00:00
Vlad Zahorodnii
80a3fea9f8 core: Allow mapping shared memory graphics buffer
Shared memory graphics buffers can be mapped, so implement
GraphicsBuffer::map() and GraphicsBuffer::unmap().
2023-07-01 12:22:28 +00:00
David Edmundson
d8029e461e x11: Sync frame extents in X11 native pixels
Frame extents are written out over the wire they should be in X11 native
pixels.

i.e if we are using 200% scaling, and have X11 clients scale themselves
then from the point of view of the client reading the properties the
window decorations are twice the size as normal.

BUG: 471132
2023-07-01 12:48:26 +01:00
David Edmundson
ad2f78f627 screencast: Drop unused headers 2023-07-01 12:47:55 +01:00
David Edmundson
b1e6deee3f screencast: Convert event handlers into methods
ScreencastStream is a C++ class, but we're having C style event handling
as static functions within the class. Mixing two styles within a class
isn't very clear.

We can turn them into normal methods with some thin wrapper functions
round the event handling.
2023-07-01 12:47:55 +01:00
David Edmundson
5ef0b775ef screencast: Use consistent prefix for member variables 2023-07-01 12:47:55 +01:00
David Edmundson
ced95f536c Adapt offscreenquickview to Qt6 changes
Qt6 documentation states:

"Note: When using this window in combination with QQuickRenderControl,
the result of this function is an empty image, unless the software
backend is in use. "

We support a mode of using openGL rendering but then exporting as pixmap
images for Aurorae. In this case we should simply grab data from our
FBO.

BUG: 471041
2023-07-01 12:47:32 +01:00