Commit graph

26228 commits

Author SHA1 Message Date
Łukasz Patron
083318dddd
x11window: Skip strict geometry checks in isFullScreenable()
This addresses an issue where mpv window with keep aspect ratio enabled
cannot be fullscreened due to constrainClientSize() returning size that
doesn't fit full screen area.

NOTE: This has been tested with 3440x1440 display and 1920x1080 video in
      mpv.
2024-02-26 11:33:18 +01:00
David Edmundson
32be54b19d x11window: Disable strict geometry placement by default in wayland
Strict geometry disables certain user activites; full screen requests
and only sending configure events at sizes the client claims to support.

This was added as a workaround for xterm in 19 years ago. It's a client
side bug as applications can still choose to ignore the configure event,
so kwin shouldn't have to sanitise them in advance. xterm seems to have
fixed it's bug, and pragmatically we know not all window managers
perform these checks so most clients should not be relying on it.

On Wayland this additional check is proving problematic, the handling of
scaling especially fractional scaling is hitting cases where it's better
to always ask the client to do what kwin wants.

Tests that refer to sizeIncrements are dropped as they are only used in
the strict geometry passes which is being obsoleted. Resizing in general
is still tested.

BUG: 481456
2024-02-26 10:32:49 +00:00
Akseli Lahtinen
024db60ccd tileseditor: Don't allow tiles to move tiles already at minimum size
Previously a tile could intersect with the tile next to it when resizing tiles in tiles-editor.

This checks that the tile next to the resized one is not at minimum size already, and stops
resizing if it is.

Do note that any current setups that may get broken if there is tiles that intersect each other,
so they may have to remake the tile setup.

BUG: 465721
FIXED-IN: 6.0.1
2024-02-26 10:16:55 +00:00
l10n daemon script
fb36af09cd GIT_SILENT Sync po/docbooks with svn 2024-02-26 01:22:57 +00:00
l10n daemon script
4d5195bf8b 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"
2024-02-26 01:14:57 +00:00
Aleix Pol Gonzalez
7468465393 wayland: Install the clientconnection.h header file
Together with the rest of files that effects might use.

Signed-off-by: Falko Becker <falko.becker@mbition.io>
2024-02-25 19:18:19 +00:00
l10n daemon script
d649eab88a GIT_SILENT Sync po/docbooks with svn 2024-02-25 01:27:05 +00:00
l10n daemon script
a8af40ecf7 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"
2024-02-25 01:15:42 +00:00
l10n daemon script
8029c5c7ac GIT_SILENT Sync po/docbooks with svn 2024-02-24 01:19:16 +00:00
Ser Freeman
9cf424993f Window: Extract next interactive move geometry code to the separate function
This will allow code reuse.
2024-02-23 19:40:00 +00:00
Ser Freeman
4449315e39 Window: Extract next interactive resize geometry code to the separate function
This will allow code reuse.
2024-02-23 19:40:00 +00:00
Ser Freeman
10e41fc948 Window: Extract title bar rect code to the separate function
This will allow code reuse.
2024-02-23 19:40:00 +00:00
Vlad Zahorodnii
56d3c797cc plugins/showpaint: Add support for color management
It makes the show paint plugin work when color management is enabled.
2024-02-23 18:42:12 +02:00
Vlad Zahorodnii
7c0a88f34b plugins/glide: Fix rotation order when applying render target transformation
The perspective projection matrix has its y axis flipped vertically. It
should be undone when applying the render target transformation, otherwise
the rotation order will be wrong.

BUG: 481664
2024-02-23 13:57:16 +00:00
Marco Martin
9da0b8543f Send tablet input to active screen
Try to send the tablet input to the configured screen for the tablet if any,
otherwise always send it to the active screen, not the screen of the active window
which is very confusing

BUG:479713
2024-02-23 09:01:15 +00:00
l10n daemon script
493a4f7280 GIT_SILENT Sync po/docbooks with svn 2024-02-23 01:20:21 +00:00
Xaver Hugl
d51b69d6ac useractions: don't interact with deleted windows
BUG: 481688
2024-02-22 23:53:57 +01:00
Aleix Pol Gonzalez
05a3e2bad9 systemd: Set up a watchdog
Allows to notify systemd whether kwin is still running and possibly
restart the service if it stops responding.

Use Type=notify-reload to watch the kwin service. This will make it so
we receive SIGHUP rather than SIGTERM on the wrapper which we can handle
gracefully and stop the kwin process and restart as expected.

https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2024-02-22 16:47:35 +00:00
Xaver Hugl
4f008c0231 backends: port most algorithm calls to ranges 2024-02-22 16:12:15 +00:00
Vlad Zahorodnii
ff4cfe279a backends/x11: Avoid calling doneCurrent() if GLX context has not been created
BUG: 477854
2024-02-22 15:43:52 +00:00
Vlad Zahorodnii
bb354de90e backends/wayland: Guard against failing to create EGLSwapchain
BUG: 478864
2024-02-22 17:12:58 +02:00
Xaver Hugl
d33ab542db backends/drm: only enable HDR if both display and driver are capable of it
The config may have HDR or WCG enabled, and the driver or display settings changed
since then to make it impossible to actually enable either.
The config values stay unchanged when this happens, so reconnecting the display with
HDR support will automatically turn it on again.

BUG: 481518
2024-02-22 13:01:30 +00:00
zoro wk
904c33556b xcbutils: arm x apps can't be dragged to a negative position on the screen
the behavior of converting negative floating-point numbers to unsigned
integers is undefined. It is necessary to keep the conversion behavior
consistent between ARM and x86 platforms.

through the above conversions, all become the two's complement of
negative numbers.

Signed-off-by: zorowk <near.kingzero@gmail.com>
2024-02-22 10:27:19 +00:00
Vlad Zahorodnii
648cfcd66c wayland: Avoid rearranging layer surfaces when wl_surface size changes
wl_surface size is not used when re-arranging surfaces. It also results in
excessive configure events.

Note that it can be useful for updating strut rects, but we could use the
next geometry, which is even preferrable over the frame geometry as the
Workspace would use proper struts earlier.
2024-02-22 10:03:09 +00:00
l10n daemon script
602095ec52 GIT_SILENT Sync po/docbooks with svn 2024-02-22 01:22:16 +00:00
l10n daemon script
b7bdd4f3ff 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"
2024-02-22 01:15:21 +00:00
Xaver Hugl
8c3332f619 opengl/eglcontext: tell Qt when the OpenGL context gets changed
Otherwise, Qt thinks the old context is still current and will do things like
destroying VAOs with KWin's context, which ends up destroying the VAO of the
context and breaks rendering.

BUG: 479094
2024-02-21 20:58:09 +01:00
Xaver Hugl
564bfafb57 backends/drm: delay cursor updates with VRR by default for non-AMD GPUs 2024-02-21 16:28:50 +01:00
Xaver Hugl
039fd39e34 backends/drm: delay cursor updates with adaptive sync
While the primary plane delivers a high enough refresh rate for the cursor to be
at least usable, delay cursor updates to be in sync with the primary plane. This
avoids stutter of the content being shown on the primary plane.

Because amdgpu doesn't handle this correctly at the moment, this feature is guarded
behind the KWIN_DRM_DELAY_VRR_CURSOR_UPDATES environment variable.
See https://gitlab.freedesktop.org/drm/amd/-/issues/2186 for more details on that.
2024-02-21 14:35:12 +00:00
Xaver Hugl
080d28b3f9 backends/drm: move committing logic into a separate method
This makes the code a bit more readable
2024-02-21 14:35:12 +00:00
Jonathan Esk-Riddell
5306823435 Update Frameworks version requirement to 6.0.0
GIT_SILENT
2024-02-21 14:33:28 +00:00
Vlad Zahorodnii
c5c25a66f7 Remove legacy virtual desktop id from "Move to" action 2024-02-21 14:30:40 +02:00
Vlad Zahorodnii
2c445ebf3c Remove all legacy virtual desktop ids
Amends 0bd65de375.
2024-02-21 14:28:15 +02:00
Aleix Pol Gonzalez
ade5d72c3a qpa: Don't build SPI support if Qt wasn't build with it
Signed-off-by: Falko Becker <falko.becker@mbition.io>
2024-02-21 12:25:09 +00:00
Jin Liu
c2c19fe91f plugins/contrast: fix: effect not clipped to region
Introduced in:
7732f0e56b
2024-02-21 19:00:47 +08:00
Xaver Hugl
0bd65de375 useractions: remove legacy virtual desktop number from the menu
In almost all cases it's duplicated in the name, and if the user manually
changes the name, the custom name should be shown without additional numbers

CCBUG: 481576
2024-02-21 09:07:19 +00:00
Vlad Zahorodnii
f77f5b2342 plugins/overview: Make screen edge toggle overview rather than cycle between modes
The user may have no usecase for the grid view mode, i.e. they may want
to activate overview, do their thing, and then return back to normal
desktop. However, with the current behavior, there's one extra step
(switch to grid mode) in order to go back to desktop.

In hindsight, we should have added different screen edge actions for
overview and grid modes. This can be done in 6.1.

BUG: 481335
2024-02-21 08:44:10 +00:00
l10n daemon script
be3823e826 GIT_SILENT Sync po/docbooks with svn 2024-02-21 01:21:51 +00:00
l10n daemon script
af7fa6a040 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"
2024-02-21 01:14:15 +00:00
Vlad Zahorodnii
bb8b51a3ab Fix disappearing software cursor in overview and zoom effect
The overview and the zoom effect repaint the whole screen every frame.
But the problem is that there are cases when there's nothing to repaint.
I'm not quite sure why it happens. Maybe overview and other effects
should honor the repaint region, but on the other hand, they don't need
to because of the fullscreen effect api promises.

This change forces overview and zoom effect to use "generic paint" code
path in the workspace scene to force infiniteRegion() repaint regions.

BUG: 481523
2024-02-21 01:01:59 +02:00
Vlad Zahorodnii
b2450cfe14 plugins/wobblywindows: Ignore PAINT_SCREEN_TRANSFORMED
Screen transform apis have been dropped, so the wobbly windows should be
safe to ignore screen transformations.
2024-02-21 01:01:59 +02:00
Michael VanOverbeek
86f0d9914e Fix zoom push mouse tracking on multi-monitor workspaces
Zoom push tracking now considers the layout of the user's monitors, accounting for situations where the monitor layout doesn't form a perfect rectangle. These changes help prevent the zoom area from being unable to reach certain areas of the workspace depending on which edge of which screen the user pushes against.

One known issue is that, if the mouse moves too quickly, the zoom area can sometimes imperfectly track the movement. It will look the same as the original bug (areas of the screen will appear to be cut off/unreachable), but moving the mouse in the opposite direction a tiny bit snaps the zoom area back to where it should be. 

BUG: 467182

@teams/qa Heads-up that I'm very blind, and this is the first time I've ever contributed to a KDE project. I've tested the changes on my system and they fix the bug, but I want to make sure I didn't break anything in the process.
2024-02-20 20:23:35 +00:00
Jakob Petsovits
9e3e567592 backends/drm: Undo fade-out effect upon unsuccessful DPMS Off
DrmOutput::setDrmDpmsMode() already takes care of reverting any
pending output pipeline changes, but the aboutToTurnOff signal from
setDpmsMode() needs an explicit wakeUp signal to cancel it out.

BUG: 477916
CCBUG: 481520
2024-02-20 14:29:32 -05:00
Aleix Pol Gonzalez
79dd34b3f9 Do not rely on NETWM for the main Window class
NETWM forces a weird X11 dependency on KWin that doesn't necessarily
match what we want to do. Instead we decouple such a central class in
KWin like it's Window from KWindowSystem X11 support.

Signed-off-by: Falko Becker <falko.becker@mbition.io>
2024-02-20 18:04:06 +00:00
Nicolas Fella
afa450b97a Set componentDisplayName for shortcut migration
Otherwise the binary name is used as display name, causing all kwin
shortcuts to be registered under kwin-6.0-delete-desktop-switching-shortcuts
2024-02-20 11:22:11 +00:00
l10n daemon script
4045b3b389 GIT_SILENT Sync po/docbooks with svn 2024-02-20 01:23:39 +00:00
l10n daemon script
6dc908908c 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"
2024-02-20 01:15:26 +00:00
Xaver Hugl
8fa782f1a8 autotests/integration/outputchanges: add geometry restore test 2024-02-19 17:18:28 +01:00
Xaver Hugl
2c280b1bb0 placementtracker: save geometry restores more explicitly
Geometry restores were only saved when maximize or fullscreen changed, which is
not the only time the geometry restores change. This adds a signal to Window for
that, which fixes a few bugs with windows being moved between screens while
maximized or fullscreened
2024-02-19 17:18:28 +01:00
Xaver Hugl
86db3b4336 placementtracker: don't set geometry to geometry restores
It can cause problems when the geometry restore value is invalid

BUG: 473602
2024-02-19 17:18:28 +01:00