24203 Commits (d9f5d432bede5d87293104ba12ab437bf7c888e2)
 

Author SHA1 Message Date
Vlad Zahorodnii c2fb99d126 x11: Drop xv-related workaround
It creates bouncing glitches in client side decorated windows. Besides
that, it's preferred to avoid adding client workarounds in the wm.
2 years ago
Vlad Zahorodnii 683761ea2d scripts/desktopchangedosd: Port to VirtualDesktop objects 2 years ago
Nicolas Fella 659f4eb555 Remove unneeded KService usages 2 years ago
l10n daemon script 8ced766a58 GIT_SILENT Sync po/docbooks with svn 2 years ago
Aleix Pol 577c031599 screencast: Simplify the region path
No need to render the intermediate texture into a second intermediate
texture.
2 years ago
Aleix Pol 6394bccdcb x11/windowed: Fix screencasting
Properly notify when the output changes.
Make sure we are reading from the correct framebuffer when forwarding
the texture.
2 years ago
Aleix Pol 309c9100fa virtual: fix screencasting by output
Properly notify when the output changes.
Forward the texture that holds the output when requested.
2 years ago
Harald Sitter 1ede84f4fe forward all channels of started subprocesses
there is no practical reason I can see for why this should be limited to
stderr only. we are not reading or otherwise consuming stdout, we should
just pass it on.
2 years ago
Dominique Hummel 0ca7b40da0 tiling: Evacuate tiled windows from custom & quick tiling on output removal
Context: If a display is removed, the corresponding TileManager is removed with it. This in turn removes every one of its Tiles with it, and when a Tile's destructor is called, it attempts to find a new replacement tile for any windows it was previously managing.

However, if the Tile is removed because its corresponding TileManager has been removed, this has the potential to cause a segfault in KWin, causing it to crash (I suspect a possible race condition? but not sure).

This MR correctly evacuates custom tiled windows & migrates quick tiled windows upon output removal.

BUG: 465522
2 years ago
l10n daemon script fbed3d2d69 GIT_SILENT Sync po/docbooks with svn 2 years ago
Natalie Clarius 127ae4b556 useractions: rename shortcuts 'window to screen' -> 'move window to screen' 2 years ago
Vlad Zahorodnii f71ee59a37 Port away from Cursor::setPos()
Use input device specific apis to change the position of the cursor. The
main reason to do so is to break the assumption that Cursor position is
the same as pointer position, which I would like to rely on later to
merge tablet and pointer cursors.
2 years ago
Vlad Zahorodnii 160cc98597 wayland: Fix a typo in DataControlDeviceV1Interface::sendPrimarySelection()
interfaceVersion() is not the same as the resource version.
2 years ago
David Edmundson d084629f3c wayland: Version check before send_primary_selection calls
This is only in v2

BUG: 465657
2 years ago
l10n daemon script a9dd78e246 GIT_SILENT Sync po/docbooks with svn 2 years ago
Andreas Cord-Landwehr 4c2952a533 Add missing cmath include for std::ceil 2 years ago
Andreas Cord-Landwehr 80b5deb032 Include missing header for std::round 2 years ago
Andreas Cord-Landwehr 484d2da046 Set CXX standard for crossbuilding utility 2 years ago
l10n daemon script 150137b299 GIT_SILENT Sync po/docbooks with svn 2 years ago
Vlad Zahorodnii a1a09e91ab plugins/screencast: Simplify projection matrix code in window source
Split orthographic matrix construction and y inversion in two steps to
improve code readability.
2 years ago
Vlad Zahorodnii 83c38b0907 Drop Window.screen property
Use Window.output instead.
2 years ago
Vlad Zahorodnii 37f4199b19 scripting: Drop clientArea(area, QPoint, VirtualDesktop) overload
Use Workspace.screenAt() to look up the output instead.
2 years ago
Vlad Zahorodnii fa2b854ee4 scripting: Switch to Output 2 years ago
l10n daemon script 379e813bdd GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 3b391c9f67 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"
2 years ago
Vlad Zahorodnii 60db5637b4 plugins/screencast: Simplify y inverted handling
dmabuf buffers have the origin in the top left corner, so a texture with
attached dmabuf must have y inverted.

By correctly specifying the y inverted flag, we could leverage existing
infrastructure in kwin to handle vertically mirrored textures and make
simpler some projection matrix code in screencasting.
2 years ago
David Redondo cc4d99aea4 Fix button to Qt::MouseButton mapping
Even though the names seem to match, QtWayland maps button values
to enum values in ascendung order (as it does on X11). The wrong
mapping is usually not a problem because we send the native button
events to clients. However when the Qt names or values are used
for communication between KWin and a client this leads to
misunderstandings.
BUG:465463
FIXED-IN:5.27.1
2 years ago
l10n daemon script e909234244 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 9aad886729 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"
2 years ago
Xaver Hugl 815269a26f backends/drm: set cursor again after it was hidden
This isn't necessary with atomic modesetting, as moving and setting are
the same thing. With legacy though, if the cursor was hidden, moving it
with the layer visible does not automatically show it again, so that needs
to be done explicitly

BUG: 461181
2 years ago
Ismael Asensio 1b75d4b71a kcms/rules: Change opacity defaults to 100%
This has the benefit of providing a saner default for the values
of `opacityActive` and `opacityInactive` rule properties, both
in the UI and when reading the config.

The side effect is the same we have when changing default values:
if someone would have set a rule with some opacity to 0%, it will
be read as 100% next time kwin starts.

In this case it is a small price, as it is always easier to change
it back when the windows are visible that restoring it when they're
not, specially if it wasn't voluntary.
2 years ago
Natalie Clarius 0b2c442196 kcms/rules: add warning for low opacity
Once upon a time, in a moment of acute stupidity, I accidentally created a window rule making all windows completely transparent. I meant to go for 0% transparency when really the slider said 0% opacity. And once you've made the very window to change this setting invisible, the only way to fix that mistake is to log into a TTY or different DE and find the config file to edit manually. Since I've since seen several KRedditors fall into the same trap:  

Show a warning when active or inactive opacity is set to ~~<= 15%~~ < 25%.

![warning](/uploads/0b1178bf5782bff3b4293a0031bb4fca/warning.png)
2 years ago
Vlad Zahorodnii e1e9e89f34 wayland: Remove SeatInterfacePrivate::accumulatedCapabilities
The seat no longer posts the relevant protocol error.
2 years ago
David Edmundson e0c66d42cb Match pointer/keyboard/touch lifespan to Seat lifespan
PointerInterface is a "Server-managed multicasting resource". As in we
have one QObject, managed by the server, but internally it represents
multiple resources from various clients.

We cannot control the lifespan of those resources, they may persist long
after we stop having these capabilities on the seat.

If we delete our pointer object when we stop advertising a pointer
capability we have race conditions with clients calling release, or
potentially even having a seat_get_pointer in flight.

It's easier and safer just to have PointerInterface last as long as the
Seat. If we don't have a mouse no-one should try to bind, and even if
they did or remained bound long after we stop having a mouse it won't do
any harm as there are no mouse events to broadcast.
2 years ago
Aleix Pol 1a9ab2d46e screencast: Fix region screencasts top coordinate
We don't need to invert the top as the ortho already is on the correct coordinate
space.

Thanks to Dominique Hummel for helping debug the issue!
2 years ago
Aleix Pol 4078fcab2b screencast: Error out if we request a region without outputs
It makes for a bad development experience and I don't see a good use case
for it right now. If it existed, we can always make sure it works.
2 years ago
l10n daemon script 852d10ddd7 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 88d9a772fc 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"
2 years ago
Vlad Zahorodnii 3e9804215f Port Outline to org.kde.kwin 3.0
The outline has been overlooked.
2 years ago
Vlad Zahorodnii f731a8e9cf x11: Remove unused signals 2 years ago
David Edmundson fbb71f9c0b XWayland: Don't dispatch xwayland events in QAbstractEventDispatcher sleeps
QAbstractEventDispatcher blocks and waits constantly on every external event
processed; every timer or update from an X or wayland client, mouse
move or DRM event.

Right now every time this happens we go and check Xwayland for new
events, this is a system call (poll) that based on strace will
unsurprisingly immediately return with EAGAIN as there's nothing to read
from X. If there is something to read our socket notifier will fire. On block we do still need to read any events read in the meantime that weren't dispatched.

This cuts down our system calls significantly, which hopefully should have a
noticeable impact on performance especially when the kernel is under
load.

---

Found whilst analysing strace (by accident whilst looking for something else!)

In a simple case of xwayland nested running glxgears we go from 28 calls per frame to 21. With many many clients and more input events it'll be an even higher percentage.
2 years ago
l10n daemon script d983b78107 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 608fbbfa32 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"
2 years ago
Vlad Zahorodnii 7c1d188747 scripting: Remove unnecessary x11window.h include 2 years ago
Vlad Zahorodnii 6de388c79c scripting: Make workspace.getClient() return Window 2 years ago
Vlad Zahorodnii 09fd29dccc scripting: Remove unrelated signals
The current state is inconsistent. Some window-specific signals are
exposed in the workspace, some not.

This change drops those signals. One should monitor the signals it's
interested in instead.
2 years ago
Vlad Zahorodnii 7fd7c07b30 scripting: Remove noop signals 2 years ago
Vlad Zahorodnii 93c1a610bc scripting: Remove X11 specific signals 2 years ago
Vlad Zahorodnii 452bb20741 Drop Workspace::{oldDisplayWidth,oldDisplayHeight}
They're unused.
2 years ago
Vlad Zahorodnii 77bf51c3b5 effects/overview: Drop "blur background" option
The blur effect is used to improve the contrast. The option was added
thinking "why not? it might be useful." This was perhaps a mistake and
it should have been added with a clear valid usecase in mind.

CCBUG: 457495
2 years ago