Commit graph

24254 commits

Author SHA1 Message Date
Xaver Hugl
885e3712fc useractions: add "Move to Activity" entries
This mirrors the menu in the task manager and makes it a lot more convenient
to send windows to the correct Activity

BUG: 440036
2023-01-03 23:12:18 +00:00
Xaver Hugl
6e13e21a08 workspace: take touch and tablet into account for active output follows mouse
While not technically fitting for the name of the option, the behavior is what a user
would expect and it also matches with X11 (where the cursor goes to the touch position).
2023-01-03 20:01:11 +00:00
Vlad Zahorodnii
fb1a6ecd8d backends/drm: Fix buffer centering with active hardware transform
Prior to beb6cca65d, the drm backend used
to specify QRect(0, 0, modeSize.width(), modeSize.height()) CRTC rect,
so we didn't have to care about buffer transforms, but now that we
compute the CRTC rect from the buffer size, we have to take the buffer
transform into account.

It fixes squashed output contents when the output is rotated 90 or 270
degrees and it uses hardware transforms.
2023-01-03 17:36:21 +00:00
Vlad Zahorodnii
88563cbc8e scene: Remove addDamage() in SurfaceItem::discardPixmap()
Scene::Window::discardPixmap() used not to add damage. No idea how it
got in SurfaceItem::discardPixmap(). Perhaps a mishap when introducing
window items.

From logical point of view, adding damage when discard a pixmap is not
necessary too because a new pixmap is going to be created.
2023-01-03 11:55:36 +00:00
Vlad Zahorodnii
3725d67ee1 scene: Introduce cursor item and scene
The cursor scene contains the contents of the cursor. It contains a
CursorItem. The CursorItem either creates a SurfaceItem or an ImageItem
based on the currently attached CursorSource.

The cursor item is rendered by the cursor scene. For now, wherever the
cursor must be rendered, a dummy scene delegate is constructed. It's not
nice but it's a pretty cheap operation. There's a lot of potential for
clean up by moving cursor layer handling from output backends to
compositor. The main reason why there are no persistent scene views is
that it's just easier than tracking when they are actually used, e.g.
after switching between hw and sw cursor.

The software cursor fallback is a bit tricky case. It made to work by
constructing a scratch fbo. The cursor scene is rendered in the scratch
fbo, which is then rendered on the screen. Similar to the case above,
there's space for improvements, but I don't think it has to block the
effort for reusing Items to render the cursor.
2023-01-03 09:33:17 +00:00
Vlad Zahorodnii
dda77f5942 scene: Introduce ImageItem
The ImageItem provides a way to integrate an image in the scene graph.
2023-01-03 09:33:17 +00:00
Oliver Beard
036a66f996 plugins/nightcolor: Use Night Color icon for OSD
This makes the OSD message for Night Colour inhibition use the same icon as the tray applet.

I'm not sure where the original icon `preferences-desktop-display-nightcolor-off` is, but it would seem a good idea to remove it?
2023-01-03 09:00:32 +00:00
l10n daemon script
699e060d37 GIT_SILENT Sync po/docbooks with svn 2023-01-03 03:22:19 +00:00
Xaver Hugl
d49cb64231 scene: ensure OpenGL texture is updated after direct scanout
While direct scanout happens, the damage of the SurfaceItem is reset, which
can cause the OpenGL texture to not be updated once direct scanout ends,
and leave the texture outdated until the surface is damaged again.
In order to fix that, make sure the texture is always fully updated after
the SurfaceItem has been used in direct scanout.
2023-01-02 12:57:13 +01:00
Steve Leung
501a45a869 scripting: log callDBus errors at warning level
If `callDBus` hits a problem, KWin will log a debug message saying that an error occurred, but it does not log the actual error message.  This makes troubleshooting KWin scripts more difficult.

Since the call failed, log the message at warning level to make it more visible.
2023-01-02 09:25:13 +00:00
Vlad Zahorodnii
58916aac4e tabbox: Remove Xcb::sync()
TabBox::hide() used to contain the following code

    QApplication::syncX();
    XEvent otherEvent;
    while (XCheckTypedEvent(display(), EnterNotify, &otherEvent))
        ;

The purpose of XSync() is to flush any pending requests and wait until
the X server processes them. After that, we can go through event queue
to find relevant events.

Why did tabbox go through the event queue to find the EnterNotify
events? It's unclear. So it was removed in
b4c957b617. However, the XSync() call was
left out. It doesn't make sense on its own. So remove it too.
2023-01-02 08:28:47 +00:00
l10n daemon script
d91e288672 GIT_SILENT Sync po/docbooks with svn 2023-01-02 03:05:37 +00:00
l10n daemon script
8e140db62e 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-01-02 02:31:51 +00:00
l10n daemon script
3aa3b98033 GIT_SILENT Sync po/docbooks with svn 2023-01-01 03:04:22 +00:00
l10n daemon script
752f565521 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-01-01 02:21:02 +00:00
Andreas Cord-Landwehr
ee87e8699d Include missing cmath header for std::round
Fixes compilation on Yocto Kirkstone.
2022-12-31 12:18:27 +00:00
Parag W
6352173651 Fix compile failure without XINPUT
Declare and reference m_xinputIntegration only if HAVE_X11_XINPUT is defined and enabled.
2022-12-31 11:19:45 +00:00
l10n daemon script
133315267b GIT_SILENT Sync po/docbooks with svn 2022-12-31 02:21:03 +00:00
Xaver Hugl
beb6cca65d backends/drm: support hardware scaling with direct scanout 2022-12-30 18:16:26 +00:00
Niklas Stephanblome
39612ade13 effects/overview: allow entering spaces in search field
In the Overview effect, pressing the space bar doesn't always insert a
space character into the search field as one would expect; when the text
in the search field matches any windows, it instead activates the
highlighted window. At other times, it does insert a space as expected.

This behavior is unpredictable and unintuitive, so this commit fixes the
issue by intercepting the key input event and inserting a space when the
search field has focus. In this state, the highlighted window can be
activated using the enter/return key. When the search field doesn't have
focus, a press of the space bar will continue to activate the selected
window.
2022-12-30 17:44:48 +00:00
Xaver Hugl
00c0f29f8e autotests/drm: add test that verifies extending output lifetimes works 2022-12-30 14:53:45 +00:00
Xaver Hugl
239207c5ee backends/drm: extend connector lifetime to match their outputs
As disconnected outputs outlive DrmGpu::updateOutputs, the DrmConnector
and DrmPipeline must also be kept valid for that time

BUG: 463334
2022-12-30 14:53:45 +00:00
Nicolas Fella
ccaf0210d1 Ignore critical notifications in window heap effects
We filter out regular notifications, but critical notifications are their own window type, so we need to explicitly filter them too

BUG: 463437
2022-12-30 10:47:09 +00:00
l10n daemon script
87cd6bda4e GIT_SILENT Sync po/docbooks with svn 2022-12-30 10:04:38 +00:00
l10n daemon script
04b7c79329 GIT_SILENT Sync po/docbooks with svn 2022-12-30 02:42:48 +00:00
l10n daemon script
fddd65deda 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"
2022-12-30 02:09:12 +00:00
Joshua Goins
37adc06603 wayland: Send tilt and rotation events, if supported
While tilt is sent on X11, we're currently only sending pressure events and not tilt/rotation events on Wayland. Since Krita is still running in X11, and it's running through XWayland - it's technically a Wayland client and gets no tilt/rotation. This fixes that issue :-)

I saw !3231 which was working on complete Wayland tablet support, but it's been stagnating. I just wanted tilt & rotation support now, so I added a way to query capabilities from the `m_capabilities` variable on the private interface we already fetched.

Tested on Krita using the Tablet Debug Log.
2022-12-30 01:57:25 +00:00
Xaver Hugl
40ca578bd0 workspace: don't make the placeholder output too big
The size is used in NETRootInfo::setDesktopGeometry, which seems to cause
some applications to misbehave or even crash because they attempt to create
a texture larger than what the GPU supports

CCBUG: 461848
2022-12-29 21:19:04 +00:00
Nate Graham
b9612ca0b7 kcms/kwineffects: use new term "Peek at Desktop"
The widget was renamed a while back, but the KCM still used the old
term to refer to it when letting the user choose the visual effect that
it shows the user. Let's change that.

BUG: 463087
FIXED-IN: 5.27
2022-12-29 18:03:02 +00:00
Andrey Butirsky
58e2ce1057 cleanup: get rid of "parent" argument
- The Xkb object is owned by std::unique_ptr
so there is no need in the parent relationship

- Remove unused header
2022-12-29 16:55:33 +00:00
Andrey Butirsky
9bbcc506d3 fix ASAN detected stack-use-after-return error
Fixes: https://invent.kde.org/plasma/kwin/-/issues/129
2022-12-29 16:55:33 +00:00
l10n daemon script
3dc66923c4 GIT_SILENT Sync po/docbooks with svn 2022-12-29 02:27:25 +00:00
l10n daemon script
79c9c79f0a GIT_SILENT Sync po/docbooks with svn 2022-12-28 02:22:11 +00:00
l10n daemon script
4a210a7d79 GIT_SILENT Sync po/docbooks with svn 2022-12-27 02:13:10 +00:00
l10n daemon script
8b084b7b3d GIT_SILENT Sync po/docbooks with svn 2022-12-26 02:21:56 +00:00
l10n daemon script
e98282a8a6 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"
2022-12-26 02:05:01 +00:00
l10n daemon script
87c1f5a7fd GIT_SILENT Sync po/docbooks with svn 2022-12-25 03:02:31 +00:00
l10n daemon script
e4335e4c8b GIT_SILENT Sync po/docbooks with svn 2022-12-24 02:15:47 +00:00
ivan tkachenko
c735463916 Remove whitespace between "5 %" in actions names 2022-12-23 15:31:06 +00:00
Aleix Pol
ee7f4c47b2 screencast: Do not attempt to render an empty cursor
This will make the system assert upon bind as the image is null and thus
never allocated.
2022-12-23 04:46:43 +01:00
l10n daemon script
b661c3d122 GIT_SILENT Sync po/docbooks with svn 2022-12-23 02:12:48 +00:00
l10n daemon script
ae605bab12 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"
2022-12-23 01:55:25 +00:00
l10n daemon script
8c5f8e2fa5 GIT_SILENT Sync po/docbooks with svn 2022-12-22 02:09:16 +00:00
Xaver Hugl
e3586f7dbf fix some warnings 2022-12-21 21:42:49 +00:00
Xaver Hugl
1d98333660 effects/tileseditor: don't mix QObject and std::unique_ptr ownership 2022-12-21 21:42:49 +00:00
Xaver Hugl
1a8c796536 backends/fakeinput: fix time 2022-12-21 21:07:15 +01:00
Xaver Hugl
f6b6d3051b use std::chrono::microseconds for time in input events 2022-12-21 21:07:15 +01:00
Xaver Hugl
3390904c19 input: use KeyEvent instead of QKeyEvent 2022-12-21 21:07:15 +01:00
Xaver Hugl
55e55b9b15 input: use WheelEvent instead of QWheelEvent 2022-12-21 21:07:15 +01:00
Xaver Hugl
3d92f5b75f input: use MouseEvent instead of QMouseEvent 2022-12-21 21:07:15 +01:00