18195 Commits (08722ff386050bb53f295f0fc65c825134d476dd)
 

Author SHA1 Message Date
Adrien Faveraux 08722ff386 adapt shadow to Kwayland server Changes 4 years ago
Adrien Faveraux 69920044f7 Adapt dpms to Kwayland Server changes 4 years ago
Adrien Faveraux b690858e3f adapt VirtualDesktop to Kwayland Server Changes 4 years ago
Vlad Zahorodnii bac8d70c6d Fix build 4 years ago
Adrien Faveraux b0f7dcee98 adapt xdg foreign to Kwayland Changes 4 years ago
Adrien Faveraux 16c7b29c3b adapt Idle to Kwaylans Server Changes 4 years ago
Adrien Faveraux e6ba54a730 adapt idle inhibit to KWayland change 4 years ago
Aleix Pol 02fc40fa4a Make sure we don't leak the QPlatformFontDatabase using smart pointers
Found it when running KWin on ASAN
4 years ago
l10n daemon script e15004ff98 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"
4 years ago
Vlad Zahorodnii a17a86999b Emit clientAdded for wayland clients
Emit the clientAdded() signal also for Wayland clients in order to unify
the API of the Workspace class for different client types.
4 years ago
Vlad Zahorodnii b4e271c664 Synchronize xcursor.c 4 years ago
Vlad Zahorodnii 1330abc93d Provide hotspot in the device independent pixels
Currently, the trend is to get the coordinates of the hotspot and map it
to the device independent pixels at the call site.

This change makes the KXcursorSprite return the coordinates of the hotspot
in the device independent pixels to reduce the amount of duplicated code.
4 years ago
Vlad Zahorodnii 487e2d9fb6 Hide Xcursor private data behind d pointers
Hide all private behind a d pointer as one step closer to upstreaming of
KXcursorTheme and KXcursorSprite.
4 years ago
Vlad Zahorodnii 29064f088d screencast: Address minor issues 4 years ago
Vlad Zahorodnii 5a73f4a350 screencast: Move creation of the global to manager
We want to turn screencasting into a plugin eventually.
4 years ago
Aleix Pol 4eda4d2b5d drm: prevent cursor buffer leakage
Use smart pointers to make sure we don't dereference valid pointers.
4 years ago
Aleix Pol edb6159396 drm: we must not call showCursor when softwareCursor is on
Otherwise we'll show a dangling cursor but otherwise the cursor will be
updated by other code paths, so we end up with a weird cursor in the
middle of the screen that doesn't move.
4 years ago
Benjamin Port 9225848fb0 When maximizing a window raise client and gain focus
BUG: 418938 FIXED-IN: 5.20
4 years ago
Benjamin Port 0ec34afdcc On wayland, prevent changeMaximize to raise client 4 years ago
Aleix Pol a051baf1a9 screencasting: still build if memfd isn't available
BUG: 424607
4 years ago
David Edmundson 0a40880a31 Delete empty files 4 years ago
Aleix Pol 27951dc9e7 Only define PipeWire_FOUND if it's found 4 years ago
David Edmundson 83aa8dccd2 [virtualdekstops] Drop multi-head from VirtualDesktopManagement
Kwin's VirtualDesktop saved a different configuration per X screen. This
messes up with a recent refactor of our startup as now we load
virtualdesktops before the X11 screen number is set and we load from the
group "Desktops-screen--1" then save to another place.

For a wayland session it doesn't make sense to have such a strong X
tie-in. We may as well just tidy this up.

Multihead has been deprecated for a decade. There is absolutely no way
Plasma supports it. Worst case if someone magically is using mutlihead
they just get syncronised virtual desktops.

BUG: 424571
4 years ago
Aleix Pol 9438a2e1b1 Disable screencasting if there's no pipewire 0.3
Hopefully fixes the CI
4 years ago
Vlad Zahorodnii e7b8a5ad5e Remove remote-access leftovers
We've switched to PipeWire for screen casting \o/.
4 years ago
Aleix Pol 4ddefd37bd screencasting: Remove deprecated RemoteAccessManager interface
In favour of zkde_screencast_unstable_v1
4 years ago
Aleix Pol 02042908aa screencasting: implement wayland output streaming for egl and wayland backends 4 years ago
Aleix Pol 42e543c5b2 screencasting: implement intefraces to create dmabuf textures 4 years ago
Aleix Pol 38eb72efe3 screencasting: integrate zkde_screencast_unstable_v1
Includes a PipeWire implementation that will send the relevant streams
to the processes that need them.
4 years ago
Aleix Pol 27ea1b9527 screencasting: Expose necessary information to implement efficient screencasting 4 years ago
Aleix Pol 57e19874b7 drm_fourcc.h: only typedef uint32_t on the platforms it's needed
On linux we have it defined on some headers. If we do hardcode it
ourselves build will fail when linux/types.h is included afterwards.
4 years ago
Aleix Pol 4c267c261e Adapt to changes in the PlasmaWindowManagement interface 4 years ago
Aleix Pol 29a2b2a355 Make it possible to specify KWin::GLTexture mutability
Some features will rely on it and complain that GLTexture decided to use
glTexStorage
4 years ago
Aleix Pol ff65bec92c Introduce a GLTexture::toImage helper class 4 years ago
Aleix Pol 1ef90d9c90 Add API to easily find Toplevels from their internal Id 4 years ago
Aleix Pol fbbf96751b Workspace::findToplevel should iterate through allClients
Not just x11 ones.
4 years ago
l10n daemon script a1c0d43deb 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"
4 years ago
Vlad Zahorodnii 555885072d Check if we successfully restored input focus
In rare cases, Workspace::restoreFocus() may fail, for example when the
most recently activated client is about to be destroyed or unmapped.

If it happens that we cannot restore the focus, then mark the window in
FocusIn event as active.

CCBUG: 424223
4 years ago
Vlad Zahorodnii 4921acf45a Grab all possible keyboard modifiers for window commands
BUG: 424272
FIXED-IN: 5.19.4
4 years ago
Cyril Rossi 3609a029ea KCM KWin Options setting ActiveMouseScreen set proper default value
Fix regression that was introduced by a mismatch in the default value of
ActiveMouseScreen option between kwin.kcfg and kwinoptions_settings.kcfg

BUG: 424389


(cherry picked from commit c853f8313a213a0f7d0f98f662f7e98849d547ca)
4 years ago
Vlad Zahorodnii 80a31ab4b7 Make setFrameGeometry() re-entrant for X and internal clients
If AbstractClient::setFrameGeometry() is called from a slot connected
directly to the frameGeometryChanged() signal, then is there a good
chance that kwin will fall into an infinite recursion. However, that's
the case with only X11 and internal clients.

The root cause of the infinite recursion is that both X11Client and
InternalClient compare the new geometry against the geometry before
update blocking. In order to fix the bug, we simply need to ensure that
updateGeometryBeforeUpdateBlocking() has been called before we start
emitting the frameGeometryChanged() signal.

Furthermore, a couple of tests were added to ensure that we won't hit
this subtle bug again.
4 years ago
Aleix Pol ef81ae3f9f Resize maximised windows upon workspace change
Don't issue a frameGeometry update until we have fully processed which
geometry we want.

BUG: 423596
4 years ago
Aleix Pol 7f1abd5dad Allow testing transformations on windowed KWin 4 years ago
Vlad Zahorodnii 2717252861 Partially revert a0c4a8e766
Unfortunately, a0c4a8e766 has a major bug
where clients that track focus events may get confused by focusToNull().

One such a notable example is Dota 2. It tracks the focus events to
minimize itself after the keyboard focus has been lost as well stop
playing music while it's in background. So, when we call focusToNull(),
Dota 2 will receive a corresponding FocusOut event and ask the window
manager to minimize it. It doesn't really matter that the FocusOut
event is going to be followed by a FocusIn event because when a window
is minimized, kwin will activate the next one in the focus chain.

Since those issues can't be fixed from the window manager's side, this
patch partially reverts a0c4a leaving only the autotest.

BUG: 424223
FIXED-IN: 5.19.4
4 years ago
Cyril Rossi 0fad9cc86c KCM KWin Options : propagate defaultsIndicatorVisibleChanged to children KCModule 4 years ago
Andrey Butirsky 0bb05d4b1a make keyboard layout DBus API more reliable
having deferred m_dbusInterface deletion allows to send DBus signal in
more cases.
That addressed in unit tests.
4 years ago
Andrey Butirsky 8e1018de2c save default keyboard layout
Implemented for Global, Virtual Desktop and Application layout policies.
Not implemented for Window policy due separate windows do not preserve
their IDs between sessions (still could be implemented the same way as for Application policy).

Layout saving/restoring happens on Session save/load.
Covered by unit tests
4 years ago
Vlad Zahorodnii cf27128877 Update input transformation matrix when buffer geometry changes
Currently, we update the input transformation matrix for the focused
pointer surface only when the frameGeometryChanged() signal is emitted.
However, since the input transformation matrix is computed based on the
current position of the upper left corner of the main surface, it is
wrong to do so because the frame geometry is a logical geometry that
doesn't have any direct relationship with the buffer geometry, i.e. the
rect on the screen occupied by the main surface.

If the input transformation matrix gets out of sync, user may notice
that pointer events are "shifted."

This change introduces a new signal that's emitted when the input
transformation matrix has been changed. Input related components in kwin
can connect to it to keep a copy of the input transformation matrix in
SeatInterface in sync. Under the hood, the new signal is just an alias
for the bufferGeometryChanged() signal.
4 years ago
Vlad Zahorodnii c4c06c4e1f Notify about new client geometry also when moving windows 4 years ago
Vlad Zahorodnii 9c55c01767 Introduce a signal that notifies about new buffer geometry
The new signal can be useful if one wants to watch a toplevel for buffer
geometry updates. This can be especially useful for input related code
because the position of the upper left corner of the main surface is used
to compute the input transformation matrix.
4 years ago