Commit graph

23977 commits

Author SHA1 Message Date
l10n daemon script
27fca4d8a8 GIT_SILENT Sync po/docbooks with svn 2023-01-25 02:29:54 +00:00
l10n daemon script
7bd4bd0bf7 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-25 02:03:19 +00:00
Aleix Pol
43586d673a tiles: Don't generate the client area until we know it's necessary 2023-01-24 17:58:26 +01:00
Aleix Pol
96962941e3 QuickTile: register enum to metaobject/QDebug 2023-01-24 17:58:26 +01:00
Xaver Hugl
11327da292 xdgshellwindow: ignore window position rules placing windows outside of all screens
BUG: 464047
2023-01-24 14:40:53 +00:00
Xaver Hugl
58fdbbc444 autotests/integration: test restoration of window states on moveresize cancel 2023-01-24 11:39:02 +00:00
Xaver Hugl
9f2ed2083c window: restore special window states on moveresize cancel
BUG: 464507
2023-01-24 11:39:02 +00:00
David Redondo
d6b75907cc Data control: Resend selection when not following through with request
Normal event flow is from a client view is
-> wlr_data_control_device.set_selection
wlr_data_control_device.selection
or
wlr_data_control_source.cancelled
wlr_data_control_device.selection
However when the race mentioned in the comment happens the client
sees
-> wlr_data_control_device.set_selection
wlr_data_control_device.selection
wlr_data_control_source_cancelled
Which can confuse client state thinking the clipboard didn't change
as it associates the selection event with its own request. Resend
the selection event in this case to tell the client the correct
selection.
BUG:464509
FIXED-IN:5.27
2023-01-24 09:35:20 +00:00
Vlad Zahorodnii
e6d2a19857 backends/drm: Fix custom mode generation
maxSizeRefreshRate is uninitialized.

BUG: 463619
2023-01-24 07:15:10 +00:00
l10n daemon script
85b9bcc10c GIT_SILENT Sync po/docbooks with svn 2023-01-24 02:25:15 +00:00
l10n daemon script
c8a92f833b 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-24 02:04:53 +00:00
Xaver Hugl
7cb4b51d5e inputpanel: ignore requested output
While there's specific hardware where the IM could benefit from requesting to
be shown on a specific output, it effectively never has enough information to
choose a useful output - and the protocol doesn't allow setting a null output
to indicate that the compositor should do the choice.
To avoid showing the OSK on the wrong output, always put it on the active
output and ignore what the IM client requests.
2023-01-23 22:28:41 +00:00
Vlad Zahorodnii
cc5b917de1 tiling: Forbid overlapping quick tiles
It looks weird and it can break Tile::supportsResizeGravity() logic.
2023-01-23 16:50:31 +02:00
Vlad Zahorodnii
826fb1cb29 Fix a crash that happens when resizing quick tiled window
QuickTile::setRelativeGeometry() and QuickRootTile::setVerticalSplit() or
QuickRootTile::setHorizontalSplit() can hit recursion when size
constraints start taking effect.

This change reworks how other quick tiles are resized. With the proposed
design, when relative geometry changes, QuickRootTile will notice that
and start resizing other tiles.

When QuickRootTile resizes horizontal or vertical split, it is going to
ignore QuickRootTile::relativeGeometryChanged() signals (m_resizedTile).
It prevents hitting the recursion and makes moving h/v splits more
predictable.

I do think that in order to make the tile design more robust to this
kind of bugs, it's worth splitting geometry in two kinds though - the
one that indicates the preferred geometry (implicitWidth/implicitHeight
in qtquick lingua) and the current geometry, the parent node then
monitors the preferred geometries and updates the current geometries.

BUG: 464621
2023-01-23 14:58:09 +02:00
l10n daemon script
3650250c31 GIT_SILENT Sync po/docbooks with svn 2023-01-23 02:14:19 +00:00
l10n daemon script
19f8a724f1 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-23 01:57:54 +00:00
l10n daemon script
5504edf5fa GIT_SILENT Sync po/docbooks with svn 2023-01-22 02:29:51 +00:00
l10n daemon script
0b291dcb36 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-22 02:01:44 +00:00
Jonathan Esk-Riddell
0c1e73ce82 Update kf5 version requirement to 5.102.0
GIT_SILENT
2023-01-21 20:06:15 +00:00
l10n daemon script
f48471fd98 GIT_SILENT Sync po/docbooks with svn 2023-01-21 02:17:30 +00:00
David Edmundson
bfe837c918 effects/tileseditor: Set translation domain in QML files
BUG: 464572
2023-01-20 23:21:37 +00:00
Vlad Zahorodnii
0d44092db2 wayland: Fix invisible tablet cursor
A cursor source is created but it's not attached to the cursor.

BUG: 464529
2023-01-20 14:47:54 +02:00
David Edmundson
fef1553b90 xwayland: Set parent on XwlDropHandler
A parent is provded to the XwlDropHandler but it doesn't reach the
QObject superclass
2023-01-20 09:41:01 +00:00
Vlad Zahorodnii
e83af181f7 Remove some code duplication in cursor layer code
Move some generic properties to the OutputLayer class and add a cursor
layer getter in the RenderBackend class. That allows us to get rid of
some code duplication. And we could use this work to move more cursor layer
code from backends to Compositor.
2023-01-20 08:22:18 +00:00
l10n daemon script
fb8e77d9cf GIT_SILENT Sync po/docbooks with svn 2023-01-20 02:22:20 +00:00
John Brooks
a276e6dc10 wayland: Fix high-res scroll events with low-res clients
Sending an axis event for every high-res scroll wheel movement was
causing excessive scrolling on clients that expect low-res (discrete)
scroll events.

Signed-off-by: John Brooks <john@fastquake.com>
2023-01-19 13:06:51 +00:00
Jonathan Esk-Riddell
a873830a86 Update version number for 5.28.80
GIT_SILENT
2023-01-19 12:28:32 +00:00
Jonathan Esk-Riddell
0e0b9dea12 Update version number for 5.26.90
GIT_SILENT
2023-01-19 11:17:01 +00:00
l10n daemon script
b2925850fb GIT_SILENT Sync po/docbooks with svn 2023-01-19 02:35:29 +00:00
Xaver Hugl
3d1101d5ff autotests/integration: fix decoration input test 2023-01-18 19:15:29 +01:00
Xaver Hugl
52b4ee3338 input: don't trigger titlebar actions on every event with a touchpad
Instead, accumulate the values and only trigger an action when the user
has scrolled far enough

BUG: 444737
2023-01-18 14:14:28 +01:00
Xaver Hugl
b89009f9e1 plugins/screencast: send frame callbacks if the window is otherwise invisible
If we don't send frame callbacks, the application might stop rendering or
throttle to single digit fps.

BUG: 464217
2023-01-18 08:01:45 +00:00
Vlad Zahorodnii
7c58f169e0 Store shadow elements as QImages
At quick glance, it doesn't seem like there's any benefit from storing
the shadow elements as pixmaps. It saves us some QImage <-> QPixmap
conversions too.
2023-01-18 07:27:40 +00:00
l10n daemon script
be7083eb46 GIT_SILENT Sync po/docbooks with svn 2023-01-18 02:17:58 +00:00
Vlad Zahorodnii
d57be742ff effects/diminactive: Ensure that m_activeWindow is always reset
As the FIXME comment says, a window can be deleted without prior
windowClosed signal.

BUG: 442222
2023-01-17 18:41:07 +00:00
Arjen Hiemstra
361aa053e1 kwinquickeffect: Use an asynchronous incubator for view creation
Creating views is the main thing blocking quick effect activation.
Rather than blocking until everything is created, we can use
QQmlIncubator so we create views asynchronously. This allows KWin to do
other things while views are being created. This is mostly relevant for
multiscreen setups where we create a view per screen.
2023-01-17 10:03:37 +00:00
Arjen Hiemstra
39a3b53bfb windowview: Only create PlaceholderMessage when needed
If there's windows and we're not searching, we don't need the
PlaceholderMessage. So only create it when we actually need it to reduce
the time needed to activate the effect.
2023-01-17 10:03:37 +00:00
Arjen Hiemstra
8242584b6e windowview: Use asynchronous instantiators instead of repeaters
We don't need the features of Repeater here and can instead just use an
Instantiator, which allows us to use asynchronous creation for the
window delegates, reducing the time needed to activate the effect.
2023-01-17 10:03:37 +00:00
Vlad Zahorodnii
cf583aa367 Change default latency policy to "Force smoothest animations"
There are some performance differences between X11 and Wayland. Desktop
systems are mostly unaffected by them, but laptops suffer a bit.

On Wayland, kwin always does double buffering. This is great for
reducing latency and avoiding tearing, but if the gpu can't keep up with
the work, you're going to see stuttering.

Another issue is that in order to reduce latency, we need to have very
good frame stats. At the moment, kwin records only cpu render time, but
we also need to record the gpu time. We've already done some work in
this area, but it's most likely Plasma 6 material. (plasma/kwin!1163)

In the meantime, let's change the default latency policy to "Force
smoother animations." It's going to improve frame rate. If people care
about latency, they can change latency policy in system settings; the
option is still there.

CCBUG: 452119
2023-01-17 04:10:30 +00:00
l10n daemon script
5dc6ea454e GIT_SILENT Sync po/docbooks with svn 2023-01-17 02:41:25 +00:00
l10n daemon script
03c407cb7d 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-17 02:03:45 +00:00
Vlad Zahorodnii
d42442b424 effects: Fix a typo in RenderGeometry::appendWindowVertex()
Only the y coord is scaled, but both x and y coords have to be scaled.
2023-01-16 18:52:50 +00:00
Weng Xuetian
ff092b12b0
Add text-input-v1 support
Main reason to support this old interface is because this is the only
protocol chromium (and effectively all electron app) that supports.

The protocol itself very similar to text-input-v2 with some minor difference.
So not hard to support by just duplicate some existing code. There might be
some unclear protocol design issue if kwin need to support multiple SeatInterface,
but for now it should be ok to assume there is only one seat.

Tested using fcitx5 against weston-editor and chromium with flag
--enable-features=UseOzonePlatform --ozone-platform=wayland
--enable-wayland-ime
2023-01-16 10:34:37 -08:00
Vlad Zahorodnii
5963790b21 kcms/rules: Use window class and role with original casing
The window rules kcm uses lower-case window class and role, but kwin can
use window class and role with other casing, which will break the ExactMatch
match rule.

BUG: 464190
2023-01-16 16:52:02 +00:00
Kai Uwe Broulik
ecf3fa9f10 backends/x11: Remove dependency on GLTexture::toImage
It is being phased out. Instead, read the pixels from the
cursor's framebuffer using `glReadPixels`.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2023-01-16 15:06:20 +00:00
Vlad Zahorodnii
dedae9e667 effects/morphingpopups: Fix glitch
There's a visual glitch that looks like a random rectangle in the top
left corner of morphing popup. It appears like it's caused by the blur
effect, it produces wrong results when the window is captured in
CrossFadeEffect::redirect().

Make CrossFadeEffect::redirect() unset blur and contrast force roles, so
the backdrop effects are not included in the captured frame.
2023-01-16 13:43:18 +02:00
Vlad Zahorodnii
d32f8df7c8 effects/{blur,contrast}: Move to the front in the effect chain pos
Backdrop effects such as blur and background contrast have to be in the
front of the effect chain because they need to work with background
before the window is painted on top.

Hopefully it's going to fix panel popup blinking visual artifacts.
2023-01-16 10:23:28 +00:00
Arjen Hiemstra
f95eb71173 Remove WindowQuad::makeArrays and WindowQuad::makeInterleavedArrays
RenderGeometry can do all that these methods do and offers some extra
functionality, in addition to having a more explicit API.
2023-01-16 09:51:28 +00:00
Arjen Hiemstra
3118b48650 Disable vertex snapping for Wobbly Windows and Magic Lamp
The subdivided grid used by these effects doesn't account for pixel
alignment. If we force the generated WindowQuads to be rounded, the
quad's sizes no longer match the texture sizes, which results in blurry
rendering.

BUG: 461283

eeffects
2023-01-16 09:51:28 +00:00
Arjen Hiemstra
3ee51e3f21 Allow overriding the vertex snapping mode for OffscreenEffect
Certain effects need vertices that aren't being rounded to device
coordinates. So allow those to explicitly request that.
2023-01-16 09:51:28 +00:00