24621 Commits (258e9d8426347c563424a219a6c3c1045ee0d66f)
 

Author SHA1 Message Date
Andreas Cord-Landwehr 258e9d8426 Extend GLX switch to check if QtGui was being built with GLX plugin
Even though epoxy with GLX may be present, Qt's native interface only
exposes GLX API when it was being built with GLX support.
1 year ago
ivan tkachenko d80120fe7e
effects/overview: Use standard naming for the main QML source
Makes it easier to navigate project, especially when filtering through
all files by partial name.
1 year ago
Mike Noe 38ad317f27 kcms: Port away from Kirigami.Action.iconName 1 year ago
l10n daemon script 182fcb1791 GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii 00d404335e ci: Pass --repeat until-pass to ctest
Pass --repeat until-pass to make CI more robust to tests that randomly
fail.
1 year ago
l10n daemon script 34b651e526 GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii c2c229fb05 effects/screenshot: Fix potentially leaking screenshot fds to child processes
dup() doesn't copy flags such as FD_CLOEXEC.
1 year ago
Vlad Zahorodnii 60dc812b21 utils: Fix FileDescriptor duplicates potentially leaking to child processes
dup() doesn't duplicate flags such as FD_CLOEXEC.
1 year ago
l10n daemon script 8b4a0c35cc GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii 5fb5f1c92b autotests: Stabilize testWaylandSeat
TestWaylandSeat::sync() ensures that events and requests can't be
reordered after it. That is, it guarantees that

- events sent from the compositor will be processed by the client
  before sync() finishes
- requests issued by the client will be processed by the compositor
  before sync() finishes

WaylandSyncPoint relies on the fact that wl_display_sync()'s callback
and other wayland events will be processed in the same event queue.

But, it's not the case right now. The wl_callback belongs to the default
event queue and KWayland::Client::Seat belongs to a different queue.

If the default event queue is dispatched first, the WaylandSyncPoint may
emit the done signal too early.

In order to fix sync(), this change ensures that WaylandSyncPoint's
wl_callback uses the correct event queue.
1 year ago
Nicolas Fella 2f1744b67b Disable quitLock
Otherwise a KJob finishing terminates the app
1 year ago
Vlad Zahorodnii 5a42d0ac0e autotests: Drop testDontCrashNoBorder
The test used to verify that kwin doesn't crash when ShellClient sets
new geometry. ShellClient used to access decoration borders without
checking whether decoration() is null.

On the other hand, we've added a bunch of new test cases in
testXdgShellWindow, so let's remove this one. If the bug is back, that
test will fail.
1 year ago
Vlad Zahorodnii e9feaefa4b Handling failing to export GEM handle to prime fd
If gbm_bo_get_fd_for_plane() or gbm_bo_get_fd() fails, ensure that the
gbm buffer allocator properly handles it and doesn't return a
GraphicsBuffer object.
1 year ago
l10n daemon script f4b20c00a5 GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii a89573224c Drop Qt6WaylandClientMacros.cmake fork 1 year ago
Xaver Hugl e7c803b7e5 backends/drm: store drm properties directly in drm objects
This makes it possible to ensure type safety for enums, as each drm property
object can have its own type now, and it reduces the amount of typing needed
to access properties
1 year ago
Xaver Hugl adc5104e2a autotests/drm: disable tests to work around FreeBSD CI issues
The tests don't do anything platform specific, so test only on Linux
until the cause of the problems is found
1 year ago
Xaver Hugl 2c86866876 backends/drm: drop some unused logging
We're using drm_info to get property values from users. If property logging
in KWin is needed, it will be different from what we had until now
1 year ago
Nicolas Fella 8a0a91fea1 Port to standalone kglobalacceld 1 year ago
l10n daemon script 6a54f76dc4 GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii 111e98d24a autotests: Remove render node check in testPointerInput
The test doesn't require OpenGL anymore.
1 year ago
Vlad Zahorodnii e3bc9e8ac6 autotests: Allow running lockscreen test with software rendering
The test needs OpenGL in order to ensure that the window view effect is
loaded and it registers a screen edge. On the other hand, we could
register a screen edge ourselves and thus allow running the test on
freebsd.
1 year ago
Vlad Zahorodnii 35efeddb48 wayland: Fix sending org_kde_plasma_virtual_desktop.removed
If a virtual desktop is removed, the client will receive two removed
events.
1 year ago
Vlad Zahorodnii ac74de22c7 autotests: Fix testPlasmaVirtualDesktop
The test fails because it incorrectly handles the server-side and the
client-side virtual desktops being removed within one event loop cycle.

In order to fix the test, this change makes the removal of server-side
virtual desktop object take effect immediately.
1 year ago
Vlad Zahorodnii 959bb661af autotests: Drop testBufferSizeChange
testXdgShellWindow already tests intricate subsurface size changes. The
surface pixmaps are handled differently now too, so the test is not
useful as it used to be 4 or 5 years ago.
1 year ago
Vlad Zahorodnii c54a324e99 autotests: Make PointerInputTest::testUnfocusedModifiers() less flaky
While 50ms is enough on dev machines, CI runners can be more loaded and
some events can arrive after more time.
1 year ago
Vlad Zahorodnii e0da725533 autotests: Fix Test::waitForWindowDestroyed
Before Deleted merge, it used to be equivalent to waiting until the
window is closed.

This fixes tests waiting until the window closing animation completes
and the Window object is destroyed.
1 year ago
Vlad Zahorodnii 9852748a84 autotests: Use software rendering in testPointerInput
testPointerInput requires OpenGL compositing because it wants to test
cursor push back in the window view effect and the window view effect is
available only if OpenGL is supported.

On the other hand, ScreenEdgesTest::testPushBack() already tests similar
scenario, so let's drop relevant test in testPointerInput to allow
running it when using software rendering.
1 year ago
Vlad Zahorodnii c693450976 backends/virtual: Port to gbm
The virtual backend uses the surfaceless platform. On the other hand, we
move in a direction where the graphics buffer type is explicit, which
creates issues for the virtual backend.

This change ports the virtual backend to gbm so we could manually
allocate dmabuf buffers in order to unify buffer handling in kwin.

Its main drawback is that you won't be able to use the virtual backend
on setups without render nodes. On the other hand, given that the
compositor is meaningless without clients being able to share buffers
with it, it's reasonable to require some way to create and export prime
buffers.
1 year ago
Vlad Zahorodnii 15f6c910be autotests: Fix crash
If a test case is skipped, there will be no input devices.
1 year ago
Vlad Zahorodnii 7a1a1161cc ci: Bump to Qt 6.5 1 year ago
l10n daemon script cf3ab7a0ab GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii 0e676ceb93 autotests: Reduce execution time of testWaylandSeat
Currently the test spends a lot of time idling. This change speeds up
the test by removing QTest::qWait() calls.

The sync() helper was introduced to sync both client and server sides.
It lets us simplify some code and get rid of QTest::qWait()s.

With this change, the execution time will drop from 20s to about 300ms.
1 year ago
Markus Ebner d86da339d1 plugins/screencast: Provide absolute timestamps
Pipewire's buffer meta structure apparently wants the presentation timestamp
to be absolute (where absolute means number of nanoseconds since computer was started).
So subtracting the timestamp of the buffer breaks the timestamps later on in the pipeline.
1 year ago
Xaver Hugl 9e3999dc5f backends/drm: remove support for transforming the scene with hardware rotation
This feature is no longer needed, as the scene can efficiently do its own
transformations now. Support for using hardware rotation to make direct scanout
work specifically can be added again later
1 year ago
Xaver Hugl 8ca38fb328 backends/drm: fix buffer orientation check for direct scanout
Without hardware rotation, the buffer transform with always be "normal",
so all "normal" client buffers would be accepted for direct scanout, which
is not correct.

CCBUG: 467138
1 year ago
Alexander Lohnau 3ff7a527e3 kcms: Port to org.kde.config QML module from KConfig
The implementation in KDeclarative will be removed
1 year ago
Vlad Zahorodnii ee31581006 autotests: Remove WAYLAND_ONLY tests
WAYLAND_ONLY will create two tests: one with Xwayland, the other without
Xwayland. This is somewhat wasteful and it results in higher CI times.

On the other hand, Xwayland is started on demand. If a test doesn't need
Xwayland, it won't start.

So let's remove WAYLAND_ONLY in order to lighten kwin on CI resources.
If wayland only tests are needed, we can consider passing the operation
mode to the WAYLANDTEST_MAIN helper, but there aren't such tests afaik.
1 year ago
Vlad Zahorodnii 67b898b803 Move DmaBufAttributes struct to GraphicsBuffer header
The main motivation is to avoid scattering graphics buffer things around
kwin.

DmaBufParams struct has been moved to the OutputBackend, but with the
introduction of buffer allocators, we need to port screencasting code to
the new abstractions some time in the future.
1 year ago
l10n daemon script 22b10c4055 GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script 6f16d9b273 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
l10n daemon script 60b3f492d9 GIT_SILENT Sync po/docbooks with svn 1 year ago
Xaver Hugl 9915cfc6df wayland: send modifiers to clients under the mouse 1 year ago
Xaver Hugl ca9eb3d87d wayland/autotests/client: don't assume pointer enter and leave only increment serial by one 1 year ago
Vlad Zahorodnii 232bcc5d82 wayland: Drop support for linux dmabuf buffer flags
A client can specify the following flags when creating a linux dmabuf
client buffer:

- y_invert
- interlaced
- bottom_first

Only the y_invert flag is supported by kwin. The interlaced and the
bottom_first flags are ignored. On the other hand, most clients don't
specify the dmabuf flags. For example, neither EGL nor Vulkan WSIs
use the y_invert flag.

The y_invert flag is undesired because it also blocks optimizations such
as direct scanout because DRM assumes that the origin is in the top left
corner.

Therefore, this change drops the support for linux dmabuf flags. From
the protocol perspective, this is fine. It can be viewed as buffer
import failing with the specified flags.
1 year ago
Vlad Zahorodnii 99af2aa726 core: Move DmaBufAttributes getter to GraphicsBuffer
LinuxDmaBufV1ClientBuffer contains properties (formats, and flags) that
are not available in the base GraphicsBuffer type and there's no reason
to move it there.

In order to get rid of those properties (and eventually hide the
LinuxDmaBufV1ClientBuffer type from the public api), this change adds a
DmaBufAttributes getter in the GraphicsBuffer.
1 year ago
Vlad Zahorodnii 27b27696e8 {effects,scripts,plugins}: Use kwin translation domain
It makes it easier to handle translations when the plugins are stored in
the same directory.
1 year ago
Vlad Zahorodnii 64dca07d48 Remove Messages.sh in libkwineffects
It's unused.
1 year ago
Vlad Zahorodnii e82e9b9f30 Move genericscriptedconfig to kcms directory
The kcms tree suits genericscriptedconfig better as the scripting
directory primarily contains the scripting api.
1 year ago
l10n daemon script da13fe9c08 GIT_SILENT Sync po/docbooks with svn 1 year ago