25036 Commits (7c3032777cfdbf4ae02a9a027fe148b4171624c5)
 

Author SHA1 Message Date
l10n daemon script 7c3032777c GIT_SILENT Sync po/docbooks with svn 1 year ago
Xaver Hugl 2ea707585f input: use modifiersRelevantForGlobalShortcuts for tabbox events
This way, caps lock doesn't get in the way

BUG: 453918
1 year ago
l10n daemon script a4dd18c138 GIT_SILENT Sync po/docbooks with svn 1 year ago
Nate Graham d7e61b30a1 Port to modern SVG instantiation 1 year ago
Xaver Hugl 6404517976 backends/drm: increase safety margin of commit thread
Linux scheduling isn't predictable enough to run with such a tight deadline,
so increase it until this can be handled better
1 year ago
Xaver Hugl 2fff5891a5 backends/drm: wait for pending pageflips before turning outputs off 1 year ago
Xaver Hugl db2944076a backends/drm: remove the race condition in DrmAtomicCommit
There is a chance that DrmGpu::pageFlipHandler gets executed on the main
thread while drmModeAtomicCommit hasn't returned yet on the commit thread.
When this situation happens, the destructor of DrmAtomicCommit doesn't set
the buffers to be current for the relevant drm planes, and once it gets
deleted, the framebuffers get destroyed and the output turns off.
To prevent that from happening, this commit moves the relevant code to a
method that gets explicitly called from the pageflip handler.
1 year ago
Xaver Hugl 4610a916d3 backends/drm: handle atomic commits failing correctly
If the pending pageflip flag is not reset, KWin will wait for a pageflip that
never comes
1 year ago
Vlad Zahorodnii 5fae9a944e wayland: Implement xdg-shell v5
In v5, the xdg_toplevel.wm_capabilities event had been introduced which
specifies a list of actions allowed by the compositors. Mainly useful to
client-side decorated apps.
1 year ago
l10n daemon script 950458b428 GIT_SILENT Sync po/docbooks with svn 1 year ago
Nate Graham ade934a9d1 Port to Kirigami.Icon
Part of https://invent.kde.org/plasma/plasma-workspace/-/issues/82.
1 year ago
Vlad Zahorodnii b25e7a849b scene: Make ImageItem use linear filter and clamp-to-edges wrap mode
Use the linear filter to ensure that the cursor doesn't look blocky with
some scale factors and use the clamp-to-edge wrap mode to avoid
potential artifacts when the image is scaled.
1 year ago
l10n daemon script 6a1418c5b1 GIT_SILENT Sync po/docbooks with svn 1 year ago
Xaver Hugl 53c2b8c68b port most remaining uses of EGLDisplay and EGLContext to their wrappers 1 year ago
l10n daemon script 04e23efe22 GIT_SILENT Sync po/docbooks with svn 1 year ago
Xaver Hugl 3820224767 backends/drm: remove "unrecognized enums" warnings
They don't serve any purpose
1 year ago
Nate Graham fb6edd72e8 plugins/desktopchangeos: Port away from PlasmaExtras.Heading
The Kirigami version is a drop-in replacement. See
https://invent.kde.org/plasma/plasma-workspace/-/issues/75.
1 year ago
Nate Graham 6a25deed28 Revert "Port to upstream QML components where possible"
This reverts commit fd04fe04c0.

This change wasn't technically wrong, but presents an awkward developer
API until the point where we can port *all* PlasmaComponents to their
upstream QQC2 versions, and as such, it was premature.
1 year ago
Nate Graham fd04fe04c0 Port to upstream QML components where possible
Basically:
- PlasmaExtras.Heading -> Kirigami.Heading
- PlasmaComponents3.Label -> QQC2.label

We can do this because these components only existed in the past to use
special Plasma colors, but no visual styling. And the color stuff is
obsolete because Kirigami colors work correctly in Plasma now.

Everything was tested with a dark Plasma theme and a light color scheme
to ensure no regressions.
1 year ago
l10n daemon script a2df0707a9 GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii 50bc9bb1f1 scene,wayland: Make tracking of the buffer source box less error prone
At the moment, the SurfaceItem needs to track individual properties that
may contribute to the buffer source box. That's error prone.

To fix that, this change makes the SurfaceInterface indicate when the
source box has changed and the SurfaceItem should sync its source box,
discard quads, etc.
1 year ago
Xaver Hugl 7d02bc17d6 backends/drm: rework how atomic commits are tracked
Pending buffers for drm planes and crtcs are no longer tracked in the planes
and crtcs themselves, but instead in a DrmCommit object that is used as
the user data for the pageflip handler. This way multiple commits can be
pending at the same time without causing conflicts, and the handling of
pending buffers is simplified as well.
1 year ago
Xaver Hugl fcf24d98bf plugins/backgroundcontrast: use the same texture format as the main framebuffer
With color management, the main framebuffer has values over 1. As the effect used GL_RGBA8 for its
fbos, all values in them got clamped to 1, making the result look much darker than it should be. To
fix that, this commit changes it to use the same format as the main framebuffer, ensuring that the
range of values that can be stored is the same
1 year ago
l10n daemon script 47c415c119 GIT_SILENT Sync po/docbooks with svn 1 year ago
Xaver Hugl 90425f46db input: create shape cursor source before using it
BUG: 472358
1 year ago
Xaver Hugl 87444f6ce3 backends/drm: offload atomic commits to a separate thread
This separate thread submits commits as late as possible, so that until
immediately before vblank the cursor position can still be updated, reducing
its latency and opening the door for more optimizations.
1 year ago
Vlad Zahorodnii febdee08b9 wayland: Fix SurfaceInterface::bufferSourceBox() when the viewport source rect is unset
Vscode starts with a valid source rect but it resets it eventually by
calling wp_viewport.set_source(-1, -1, -1, -1).

On the other hand, `current.viewport.sourceGeometryIsSet` would be true
if that happens.

SurfaceInterface::bufferSourceBox() should use the buffer size when the
source rect has been unset otherwise the damage handling code will be
confused and it's likely that the scene won't issue repaint requests.
1 year ago
Vlad Zahorodnii 762254c354 qpa: Port BackingStore to shared memory graphics buffer allocator
At the moment, graphics buffers coming from wayland and internal windows
use different code paths to update textures. However, they don't have
to.

If the internal windows are ported to GraphicsBuffer, it will be
possible to unify SurfacePixmapInternal and SurfacePixmapWayland to make
pixmap logic a bit simpler.
1 year ago
Vlad Zahorodnii 84149945f6 core: Keep shared memory graphics buffer memory map persistent
This simplifies the logic a bit if a graphics buffer is mapped both by
the SurfacePixmap and QPA.
1 year ago
l10n daemon script bd7a802d01 GIT_SILENT Sync po/docbooks with svn 1 year ago
Xaver Hugl d3fed712f0 platformsupport/opengl: support implicit modifiers even with explicit modifiers
This is needed to make the combination of explicit modifier OpenGL + implicit modifier drm
backend work
1 year ago
Vlad Zahorodnii 29229c5aff scene: Fix syncing buffer source box with 100% scale
The buffer source box is synchronized when the surface-to-buffer matrix
changes. However, when using 100% scaling, it's likely that the
surface-to-buffer matrix will be identity and therefore no corresponding
signal to indicate the change will be emitted.

To fix that, we need to update the buffer source box also when the
buffer size changes.
1 year ago
Vlad Zahorodnii 9a2355339c core: Rework OutputTransform type
In some cases, it's desired to know what the inverse transform of a
given output transform is. It's possible to make it work by providing
helper functions, but we tend to avoid doing so.

This change converts the OutputTransform from an enum to a class so it's
possible to have both data + methods in the same type. Unfortunately,
unlike Rust, C++ provides no way to attach methods to enums, classes and
structs is the only way to go.
1 year ago
Vlad Zahorodnii 637e3a6389 core: Move Output::Transform enum to KWin namespace
Being in the KWin namespace has a couple of advantages: the enum can be
forward declared, and the transform can be replaced with a slightly more
complex but useful type.
1 year ago
Vlad Zahorodnii 9e898c0e68 scene: Expand surface damage if the surface is scaled
If the surface item's contents is scaled, i.e. its scale factor doesn't
match the output's scale, GL_LINEAR will be applied to smooth the
contents. The unfortunate thing is that it's possible some of the
changed pixels will bleed to the neighbor ones.

In order to handle that scenario better, this change makes the
SurfaceItem expand the damage if there's scale factor mismatch.

bufferSourceBox and bufferTransform properties were introduced to detect
if the surface contents is going to be scaled. bufferSourceBox covers
both crop transform from wp_viewport and scale factor from wl_surface.
bufferTransform is same as wl_surface's buffer transform property.
1 year ago
Vlad Zahorodnii b98ffaf785 wayland: Introduce SurfaceInterface::bufferSourceBox()
The bufferSourceBox provides a way to get the source region of the
attached buffer. It can be used to compute the effective scale factor
when using wp_viewport.
1 year ago
Vlad Zahorodnii bad25bd5c7 Revert "scene: Pad damage if scale factor is fractional"
This reverts commit 56f6bab0c3.
1 year ago
l10n daemon script 7363ac6a94 GIT_SILENT Sync po/docbooks with svn 1 year ago
David Edmundson 35adcfe36a delete platform cursor before Application
We want the platform cursor to have roughly the same lifespan as the
application.

By using QObject parent mechanism, this gets deleted after the
Application destructor in the QObject destructor.

This causes an issue that removing an event filter (used by the X11
cursor) calls into the application singleton which is no longer valid.

BUG: 465970
1 year ago
l10n daemon script 44b06a7baf GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script 239266c13e 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 b6e820bb93 GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script de07471c48 GIT_SILENT Sync po/docbooks with svn 1 year ago
Luca Weiss 21420a8671 backends/drm: add missing sys/types.h include
This include is needed for the type dev_t used in this file. Issue seen
when compiling with musl libc on Alpine / postmarketOS.
1 year ago
l10n daemon script 07eafe3b0b GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii aae599d989 Add Xaver Hugl as maintainer
Xaver has been doing really amazing work and he's very active in kwin.
1 year ago
l10n daemon script 302085f63a GIT_SILENT Sync po/docbooks with svn 1 year ago
Laurent Montel 8c51619c1e Remove extra ; 1 year ago
Vlad Zahorodnii 0ccce49fa2 Remove unused fields
Detected by clang.
1 year ago
Alexander Lohnau 33e32f293b Remove X-KWin-Exclude-Listing metadata flag
We only have one KWin script making use of this and that one is shown
regardless. The issue with this flag is that it will hide scripts from
the user without a possibility to see them.

For effects, we have quite a few internal ones and a possibility to show
even hidden ones. But we can not reuse this logic for the scripts.

BUG: 458572
FIXED-IN: 6.0
1 year ago