Commit graph

25263 commits

Author SHA1 Message Date
l10n daemon script
618bf2a26c 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"
2023-08-09 02:17:49 +00:00
Xaver Hugl
2541e3fbe0 backends/drm: don't assume we never get new subpixel types
CCBUG: 472340
2023-08-08 09:12:24 +00:00
l10n daemon script
b198ae6fe1 GIT_SILENT Sync po/docbooks with svn 2023-08-08 02:24:39 +00:00
l10n daemon script
37e490d7cc 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"
2023-08-08 02:20:18 +00:00
Xaver Hugl
5007d337b3 backends/drm: queue cursor updates instead of replacing the original commit
At commit time, the newest commit that's ready will be chosen, ensuring that
cursor updates added just before commit time can't delay the primary plane
update unnecessarily
2023-08-07 18:51:04 +00:00
Xaver Hugl
bf17d6388c backends/drm: don't commit buffers that are still being rendered to
This allows updating the commit until the next vblank happens, making the
effect of the dropped frame less visible
2023-08-07 18:51:04 +00:00
Xaver Hugl
a64e43e6b1 utils/filedescriptor: add helper to query if the fd is readable 2023-08-07 18:51:04 +00:00
Vlad Zahorodnii
7c24242300 qpa: Remove Window::eglSurface()
Surfaceless contexts are required now, so hardcode the egl surface in
the relevant place to tidy the api of the Window.
2023-08-07 13:17:18 +00:00
Vlad Zahorodnii
1687183d4d qpa: Port OpenGL code path to GraphicsBuffer
This allows us to unify graphics buffer handling for normal wayland
windows and internal windows.
2023-08-07 13:17:18 +00:00
Vlad Zahorodnii
9911b6b54c libkwineffects: Add support for depth/stencil attachments
It's needed so we can allocate fbos suitable for qtquick.
2023-08-07 13:17:18 +00:00
Vlad Zahorodnii
76335880bf core: Expose graphics buffer allocator in RenderBackend
It can be used by other components to allocate buffers on the
compositing render device. For example, QPA.
2023-08-07 13:17:18 +00:00
Vlad Zahorodnii
c2dfb55c59 wayland: Implement xdg-shell v6
This change adds support for xdg_wm_base v6, which introduces
xdg_toplevel suspended state.

The suspended state is tied to the visibility of the window item so the
effects could possibily "resume" window content updates.
2023-08-07 12:21:28 +00:00
Nathan Mills
05527271f5 wayland: Fix uninitialized variables. 2023-08-07 11:30:16 +00:00
Nathan Mills
890712f872 drm: Fix undefined behavior when bit shifting. 2023-08-07 11:30:16 +00:00
Antonio Russo
5502ce9a9c placeSmart: Properly track width and height
`Placements::placeSmart` searches for an optimal position for windows, attempting to minimize overlap.  The core of this algorithm tracks the
client's height and width in `ch` and `cw`, which have been adjusted by -1. This simplifies logic determining the bottom and right points of a
window when you are starting at the top and left points.

However, this decision requires adjusting that number by +1 when doing the opposite: determining the top and left points when you start with
the bottom and right points.

placeSmart cycles through window locations, searching for acceptable nooks and crannies to fit a window in, nicely.  It begins by checking
for places to put the top left corner of the window which abut another constraint.  If that fails, it then tries to place the bottom right
abutting a constraining feature.

After finding a suitable bottom (or right) location, the top (or left) location must be determined, requiring the -1 adjustment to be undone.

This patch adds that +1 back in.

# The bug it solves

This error can be seen by opening a bunch of windows that are placed using the "Minimal Overlapping" rule.  The open space on the screen will be tiled from left to right, and then top to bottom in the windows.  Once no more windows can be placed like that, the next window will be placed at the extreme bottom-right corner.  However, it will be one pixel too low and one pixel too far to the right---if you try to move the window, it will "snap" to the correct spot.

This single pixel may seem minor or even irrelevant, but when you use the "Present Windows" desktop effect on a multiple-monitor setup, this one pixel will cause the window to show up on both monitors.
2023-08-07 07:14:18 +00:00
l10n daemon script
499ee68656 GIT_SILENT Sync po/docbooks with svn 2023-08-07 02:43:30 +00:00
l10n daemon script
9750581ba9 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"
2023-08-07 02:38:56 +00:00
Xaver Hugl
7be6aa73f2 plugins/screenshot: do color transformations if necessary
BUG: 471874
2023-08-06 17:36:22 +00:00
l10n daemon script
85237fe7a7 GIT_SILENT Sync po/docbooks with svn 2023-08-06 02:20:53 +00:00
Kai Uwe Broulik
207cb3de6f XdgTopLevelWindow: Update client output in initialize()
It was only updated when the client moved/resized or the outputs
themselves changed.
2023-08-05 14:41:31 +02:00
Kai Uwe Broulik
19b8948b51 kcms/decoration: Rename dragging property to dragActive
ListView/GridView already have a dragging property and Qt 6.6
makes it FINAL to prevent you from overriding it.
2023-08-05 10:57:20 +00:00
Kai Uwe Broulik
8d571b0d1d kcms/decoration: Connect model signals for theme property
The theme property depends on the contents of the model,
so signal a change if the model has items added/removed
or got reset.

BUG: 470778
2023-08-05 09:42:07 +00:00
Kai Uwe Broulik
559d55f64f XdgPopupWindow: Disconnect relayout when role gets destroyed
Otherwise we will still react on a frameGeometryChanged signal
and try to relayout the popup when its transient parent was
already set to null leading to a crash.

BUG: 472532
2023-08-04 18:29:45 +02:00
Xaver Hugl
be6be22bae internalwindow: don't crash on pointer leave when m_handle is nullptr
BUG: 472922
2023-08-03 11:28:20 +00:00
Xaver Hugl
befb50ebec backends/drm: allow modesets with atomic tests if a modeset is already pending
Otherwise the tests will always fail

BUG: 461657
2023-08-03 10:46:07 +00:00
Xaver Hugl
8feeb9b023 backends/drm: resize shadow texture with the output gbm swapchain 2023-08-03 07:00:10 +00:00
Kai Uwe Broulik
53279fd8d3 InternalWindow: Don't be movable on a dialog with BypassWindowManagerHint
Such a dialog isn't placeable, so it shouldn't be movable.
Fixes being able to move the tabbox around if Alt is the modifier
key for moving windows.
2023-08-03 06:26:27 +00:00
l10n daemon script
7c3032777c GIT_SILENT Sync po/docbooks with svn 2023-08-03 02:59:35 +00:00
Xaver Hugl
2ea707585f input: use modifiersRelevantForGlobalShortcuts for tabbox events
This way, caps lock doesn't get in the way

BUG: 453918
2023-08-02 15:21:48 +02:00
l10n daemon script
a4dd18c138 GIT_SILENT Sync po/docbooks with svn 2023-08-02 02:25:51 +00:00
Nate Graham
d7e61b30a1 Port to modern SVG instantiation 2023-08-01 11:51:20 -06:00
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
2023-08-01 11:06:25 +00:00
Xaver Hugl
2fff5891a5 backends/drm: wait for pending pageflips before turning outputs off 2023-08-01 11:06:25 +00:00
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.
2023-08-01 11:06:25 +00:00
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
2023-08-01 11:06:25 +00:00
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.
2023-08-01 10:41:41 +00:00
l10n daemon script
950458b428 GIT_SILENT Sync po/docbooks with svn 2023-08-01 02:33:32 +00:00
Nate Graham
ade934a9d1 Port to Kirigami.Icon
Part of https://invent.kde.org/plasma/plasma-workspace/-/issues/82.
2023-07-31 16:29:49 +00:00
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.
2023-07-31 07:02:00 +00:00
l10n daemon script
6a1418c5b1 GIT_SILENT Sync po/docbooks with svn 2023-07-31 03:00:42 +00:00
Xaver Hugl
53c2b8c68b port most remaining uses of EGLDisplay and EGLContext to their wrappers 2023-07-29 22:07:46 +00:00
l10n daemon script
04e23efe22 GIT_SILENT Sync po/docbooks with svn 2023-07-29 02:16:07 +00:00
Xaver Hugl
3820224767 backends/drm: remove "unrecognized enums" warnings
They don't serve any purpose
2023-07-28 21:07:22 +02:00
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.
2023-07-28 10:18:50 -06:00
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.
2023-07-28 10:17:58 -06:00
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.
2023-07-28 12:58:20 +00:00
l10n daemon script
a2df0707a9 GIT_SILENT Sync po/docbooks with svn 2023-07-28 02:24:46 +00:00
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.
2023-07-27 10:55:14 +00:00
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.
2023-07-27 12:30:19 +02:00
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
2023-07-27 09:15:39 +00:00