24856 Commits (381de13973c8f72f0746e68c96518b45c015f6b4)
 

Author SHA1 Message Date
l10n daemon script fd67dd7b89 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"
1 year ago
Xaver Hugl 8229573e63 autotests/drm: add a test for doing modesets
And fix an issue preventing it from working
1 year ago
Vlad Zahorodnii 9af9e93ef6 backends/{wayland,x11}: Remove unused args 1 year ago
Vlad Zahorodnii 37aef0c015 Take cursor surface offset into account
From the spec

    On surface.attach requests to the pointer surface, hotspot_x
    and hotspot_y are decremented by the x and y parameters
    passed to the request. Attach must be confirmed by
    wl_surface.commit as usual.

In practice, I don't think it matters that much as most toolkits use
wl_pointer.set_cursor to change the hotspot.
1 year ago
Vlad Zahorodnii 1541e35362 Don't assume SurfaceCursorSource has wl_shm buffer
The SurfaceCursorSource assumes that the cursor surface has a wl_shm
buffer attached to it, which is a bad assumption, as the client can
attach a buffer of any type to the surface. Furthermore, the cursor
surface can have custom transforms applied to it, for example a
wp_viewport, which current code fails to handle.
1 year ago
Vlad Zahorodnii dbce106031 wayland: Grab the contents of cursor scene 1 year ago
Vlad Zahorodnii 76e911d2cc Drop ImageCursorSource
The ImageCursorSource used to be primarily a porting aid. That is, if we
couldn't port some code to SurfaceCursorSource or ShapeCursorSource, the
ImageCursorSource was used in interim. Now, all parts of kwin have been
ported to ShapeCursorSource and SurfaceCursorSource, so the image cursor
source can be dropped.
1 year ago
Vlad Zahorodnii 3d5b5844d0 Drop Cursor::image()
Use CursorSource::image() instead.

Cursor caching in the ScreenCastStream has been changed so
QImage::cacheKey() is not being used. This is rather a preparation for
making kwin grab the contents of the cursor scene.
1 year ago
Vlad Zahorodnii af7c1db43b backends/drm: Drop DrmAbstractOutput::regionToRects() 1 year ago
Vlad Zahorodnii b7a9d00752 backends: Prefer Output::modeSize() over Output::pixelSize()
Output transforms are handled differently, so let's use modeSize() to
pick the buffer size consistently.
1 year ago
Xaver Hugl a48c98f5ab xcbutils: fix nativeFloor
The floor was not done in the X-native coordinate space but with double
scaling

BUG: 459373
1 year ago
Nicolas Fella dd604c8e42 [plugins/stickykeys] Unlatch keys when deactivating sticky keys
Otherwise when deactivating sticky keys while a modifier is latched
it will stay latched forever with no way to unlatch
1 year ago
Nicolas Fella 1187f3c624 [plugins/stickykeys] Fix config group check
We are comparing the wrong group name, breaking reacting to config changes
1 year ago
Vlad Zahorodnii 04a592ff66 plugins/screencast: Remove "frame dropped" log messages
They can be safely ignored, so remove them to avoid spamming the logs.
1 year ago
Vlad Zahorodnii 00e536f22a Drop EglDisplay::supportsSwapBuffersWithDamage()
It's unused.
1 year ago
l10n daemon script 920165c187 GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script 47cb5c144e 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"
1 year ago
Vlad Zahorodnii 75f79618e9 backends/x11: Remove GLFramebuffer::pushFramebuffer()
It's unbalanced and the scene is responsible for pushing the fbo now.
1 year ago
Vlad Zahorodnii 380aaab2cc Fix deleting GraphicsBuffer twice
When GraphicsBuffer::dropped() is emitted, the buffer can be
unreferenced. If that's the case, the GraphicsBuffer will be deleted
twice: first in GraphicsBuffer::unref(), the second time in drop().

In order to address the issue, this change gets rid of the
GraphicsBuffer::dropped() signal, so it's always guaranteed that the
buffer stays alive until the reference count is checked.

The GraphicsBuffer::dropped() signal is used to remove the mapping
between wl_resource and ShmClientBuffer when the corresponding
wl_shm_buffer object is destroyed. On the other hand, we could perform
such cleanup when calling drop() too. This code can be further improved
by reimplementing wl-shm, which we need to do at some point in the
future.
1 year ago
Vlad Zahorodnii 4b2568bdcf backends/virtual: Port to ShmGraphicsBufferAllocator 1 year ago
Vlad Zahorodnii b0bdffe08f backends/x11: Avoid rendering to buffers held by Xorg
Otherwise it's possible to see visual artifacts.
1 year ago
Vlad Zahorodnii 13d1b8b16f backends/x11: Port to ShmGraphicsBufferAllocator 1 year ago
Xaver Hugl f60bcfb646 handle laptop lid closing in KWin
Instead of KScreen turning the display off, do that in KWin directly
1 year ago
Xaver Hugl 6e9d5c2cc3 autotests: directly call setVirtualOutputs 1 year ago
Vlad Zahorodnii e34ded34f0 backends/wayland: Avoid rendering to buffers held by the compositor
Currently, the wayland backend does not monitor when its buffers are
released by the host compositor, which can potentially result in
glitches.

This change refactors the wayland backend so the swapchain buffers are
released upon receiving wl_buffer.release event.

wl_buffer.release event handling lives in the WaylandBackend. This
allows us to share some code, it might also be useful for implementing
direct scanout as any GraphicsBuffer providing dmabuf or shm attributes
can be wrapped in a wl_buffer.
1 year ago
Vlad Zahorodnii 88c35ab5fe Drop PointerInterface::cursor() getter 1 year ago
Xaver Hugl 4f9f73e28d utils/edid: use libdisplay-info 1 year ago
Vlad Zahorodnii 1d1ccc3770 autotests: Rework _KDE_NET_WM_SCREEN_EDGE_SHOW test 1 year ago
Xaver Hugl fdf89fd11a activities: check nullptr after the cast 1 year ago
l10n daemon script 755e8a5c64 GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script d5a52be6d7 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"
1 year ago
Nate Graham 059fade8e2 tabbox: Implement some more VDG feedback for Thumbnail Grid
Use a ToolButton rather than a Button for the close icon to reduce
unnecessary visual weight, and move it outwards so that its frame
touches the inner edge of the selection rectangle. Looks a bit nicer and
less attention-getting.
1 year ago
Nate Graham 07279bf541 tabbox: make Thumbnail Grid active item's text bold
This makes it follow a common KDE convention of using bold text to
indicate which item in a set is active or current. Doing it here too
helps direct visual attention to the selected item, improving speed of
interaction.
1 year ago
Nate Graham 3ca1fc800d Make "Thumbnail Grid" the default Task Switcher and make it live here
Per https://invent.kde.org/plasma/plasma-desktop/-/issues/53, we're
making an overhauled version of the Thumbnail Grid Task Switcher the
default one in Plasma 6.

Currently the default Task Switcher is specified as the "Breeze" Task
Switcher which isn't ideal since it doesn't live in this repo, and it's
possible to use KWin without Plasma, where it does live.

So as a part of making Thumbnail Grid the new default Task Switcher,
let's also move it here so that KWin's default Task Switcher is always
available.

This commit grabs the Thumbnail Grid Task Switcher verbatim from where
it currently lives in the kdeplasma-addons-repo as of commit
54d16f44a56530854444b844536933a3107ef8a6.

BUG: 433034
FIXED-IN: 6.0
1 year ago
Vlad Zahorodnii 805c899589 wayland: Validate serial of wl_pointer.set_cursor 1 year ago
Vlad Zahorodnii 8f928e6ac9 wayland: Port tablet cursor to {Shape,Surface}CursorSource
Currently the tablet cursor doesn't use SurfaceCursorSource because it
doesn't handle changing the surface size after the set_cursor request.

This change adds missing surface commit handling in the
SurfaceCursorSource so the tablet cursor can use it. As a side effect,
the pointer interface doesn't need to track surface commits anymore.
1 year ago
l10n daemon script d300c7a024 GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script 1cf8d46b12 GIT_SILENT Sync po/docbooks with svn 1 year ago
Ismael Asensio e0ba7b4086 TabBox: Fix automatically hiding initialization
It was initialized to different values in the header and
in the constructor. Let's remove one of them to avoid
the confusion

AMENDS: 9d8d7e28a1
BUG: 469412
FIXED-IN: 6
1 year ago
Vlad Zahorodnii 39d269008f Avoid rounding coordinates of motion events more 1 year ago
l10n daemon script fdae03ee62 GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii 16e46e19e0 wayland: Avoid losing precision in tablet events
globalPos() is rounded version of globalPosF().
1 year ago
Ismael Asensio 9d8d7e28a1 TabBox: Allow switchers to handle the tabbox hiding
Previously, the switcher item got hidden immediately after
selecting a window, so it wasn't possible to show an exit
transition.

Emit instead an `aboutToHide` signal and let the switchers
that opt-in to handle when to hide the tabbox by just setting
its `visible` property to `false`. In the default case we handle
that signal by immediately hiding the tabbox as usual.

For symmetry, add also a new `aboutToShow` signal which
simplifies setting an enter transition.
1 year ago
Nate Graham 98198dc77a tabbox: fall back to "compact", not "informative"
Informative is being deleted in Plasma 6 because it's worse than
Compact; see
https://invent.kde.org/plasma/plasma-desktop/-/issues/63#note_592077
1 year ago
Vlad Zahorodnii d2b0ed0c5a wayland: Implement wl_surface.preferred_buffer_scale and wl_surface.preferred_buffer_transform
The new events provide a way to tell the client what buffer scale and
buffer transform to use as they may lack the context to make a proper
decision.
1 year ago
Vlad Zahorodnii cad72753f0 wayland: Rename SurfaceInterface::preferredScale to preferredBufferScale
This is to match the wording in the core spec.
1 year ago
Nicolas Fella 53d19fbb9a Implement sticky keys on Wayland
Sticky keys allow to trigger key combinations one key at a time.

This is an accessibility feature used by people that cannot press
multiple keys simultaneously.

On X11 this is handled by the X server, configured via kaccess.

On Wayland we get to handle this ourselves.

wl_keyboard events already carry the modifier's latched/locked state, so
all we need to do is to
make sure the right state is set

Xkb gains a new method to set the state. The business logic is
implemented in a new plugin
that filters for keys and sets the Xkb state accordingly.

BUG: 444335
1 year ago
Vlad Zahorodnii e6b5cf283e core: Batch pointer input device events
This change introduces InputDevice::pointerFrame(). The main motivation
behind it is to allow batching multiple pointer events within a single
event frame.

BUG: 454428
1 year ago
Vlad Zahorodnii 60205c1348 backends/wayland: Fix wl_seat version
It should be 5.
1 year ago
Ismael Asensio a9a58b1ed5 Port usage of kcmshell5 to kcmshell6
Just two instances:
- in useractions for the menu action "Configure Window Manager"
- in the docbook about the key shortcuts
1 year ago