Vlad Zahorodnii
eb058a4a2a
Merge ThumbnailItemBase and WindowThumbnailItem
2022-04-29 14:13:36 +03:00
Vlad Zahorodnii
953cf452a3
Implement DesktopThumbnailItem as a collection of window thumbnails
...
The main motivation behind this change is to refactor scene code in
order to allow us set WindowItem visibility upfront before compositing
starts.
2022-04-29 14:13:32 +03:00
Méven Car
96e82a3631
plasmawindowmanagement: Fix some warnings
2022-04-29 06:21:05 +00:00
l10n daemon script
143d803f7b
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"
2022-04-29 01:43:22 +00:00
Vlad Zahorodnii
16af4bf437
Remove redundant window filter calls
...
If the window filter rejects a window, that window won't be in the
stacking_order and henceforth won't be painted, so finalDrawWindow()
does extra work of checking again if the window is accepted.
2022-04-28 13:56:13 +00:00
Xaver Hugl
05877a8321
backends/drm: reduce "max bpc" to what is actually used
...
This prevents triggering a bug in the BenQ GW2765 monitor, and should
in theory have no downsides.
BUG: 449906
FIXED-IN: 5.24.5
2022-04-28 02:32:11 +02:00
Vlad Zahorodnii
d24f908720
Move EffectWindow and SceneWindow to Deleted
...
It simplifies finishCompositing() function.
2022-04-27 16:43:24 +00:00
Xaver Hugl
b522bbc8fc
backends/drm: fix build with HAVE_GBM_BO_GET_FD_FOR_PLANE=0
2022-04-27 15:33:04 +00:00
Vlad Zahorodnii
000f3d839f
Ensure that Workspace::deletedRemoved() is emitted while there's scene window
...
Effects may perform cleanup when a deleted window is removed. If that
happens and the SceneWindow is accessed, kwin may crash.
The Scene processes Workspace::deletedRemoved() before effects.
In order to fix dereferencing null pointer, this change makes the Window
destroy its associated SceneWindow.
2022-04-27 18:14:16 +03:00
Vlad Zahorodnii
892059cd23
Rename Window::effect_window to Window::m_effectWindow
2022-04-27 18:14:16 +03:00
Vlad Zahorodnii
fd453537c5
Drop Platform::screenSize()
...
It's effectively unused.
2022-04-27 06:49:26 +00:00
l10n daemon script
c8a151d4f1
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"
2022-04-27 01:44:50 +00:00
Xaver Hugl
5730dc624b
colors/colortransformation: add license header
2022-04-26 20:39:36 +02:00
Xaver Hugl
1365a76f3b
manage ColorPipelineStages with unique_ptr
2022-04-26 16:20:47 +00:00
Xaver Hugl
14e7afcb4e
color management: refactor and move to its own directory
...
The pipeline stages are also now properly managed, which should prevent
use-after-free errors.
BUG: 453026
2022-04-26 16:20:47 +00:00
Xaver Hugl
68a54a67b8
backends/drm: enable format modifiers by default
...
Format modifiers enable the graphics hardware to be much more efficient,
especially when it comes to multi-gpu transfers. With the issues regarding
bandwidth limits now solved, enable them by default to make all supported
systems benefit from them.
CCBUG: 452397
CCBUG: 452219
2022-04-26 17:03:19 +02:00
Xaver Hugl
916f1f4ea8
backends/drm: prune format modifiers when tests fail
...
When explicit modifiers are used, it can happen that Mesa chooses modifiers that make
the display hardware hit bandwidth limits. In that case, atomic tests fail and the
outputs don't work, or KWin may even crash.
In order to work around that, DrmGpu now removes the used modifier whenever an atomic
test fails, and tries to find a working combination of outputs and modifiers.
2022-04-26 17:03:02 +02:00
Vlad Zahorodnii
cd0430303b
Fix potential null dereference in LockScreenFilter
...
input()->findToplevel() may return null.
2022-04-26 12:49:30 +00:00
Vlad Zahorodnii
f9b7d5298b
Fix testModifierOnlyShortcut
...
If a window is destroyed before the frame is presented, the window
pointer will be dangling.
In order to make kwin handle that case correctly, the window is captured
using a QPointer.
2022-04-26 15:16:42 +03:00
Xaver Hugl
e7959b9693
backends/drm: don't expose DrmPipeline state as a public member
...
While having all state be public is great for avoiding the boilerplate that
comes with setters and getters, it also exposes more state than necessary
to the rest of the backend and makes it more error-prone if more than one
part of the state needs to be changed at the same time.
2022-04-26 07:43:37 +00:00
Vlad Zahorodnii
f7452fb4c5
Allow WindowThumbnailItem work also with override redirect windows
...
WindowThumbnailItem doesn't depend on features that are available only
with managed window.
By making WindowThumbnailItem work with all kinds of windows, its code
is easier to work with and refactor.
2022-04-26 06:48:09 +00:00
Vlad Zahorodnii
c773649377
Simplify EffectHandler::findWindow(uuid) implementation
...
With Workspace::findToplevel() code paths in findWindow() can be
unified.
2022-04-26 06:34:02 +00:00
l10n daemon script
beecf8c9d4
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"
2022-04-26 01:42:26 +00:00
Xaver Hugl
945eef58fe
OutputMode: use uint32_t for the refresh rate
2022-04-25 21:54:17 +02:00
Vlad Zahorodnii
175037d9d1
Prefer the term "window" over "client" in Workspace
2022-04-25 11:33:55 +00:00
Nils Fenner
4bb276aa93
Minor clean up in KWin::Window
...
References #81
2022-04-25 08:26:59 +00:00
l10n daemon script
3030a85694
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"
2022-04-25 01:51:27 +00:00
Alexander Lohnau
3324400672
Port KWin scripts KCM to new install location
...
Task: https://phabricator.kde.org/T14517
2022-04-24 09:58:34 +00:00
Alexander Lohnau
719e97194d
Port KWin Scripts KCM to QML
...
Task: https://phabricator.kde.org/T7289
2022-04-24 09:58:34 +00:00
l10n daemon script
be9781d0c5
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"
2022-04-24 01:40:58 +00:00
Xaver Hugl
9ed87a4e23
backends/drm: support common display modes
...
BUG: 448398
2022-04-23 23:29:57 +02:00
Xaver Hugl
a343af674b
backends/drm: fix damage tracking for virtual outputs
2022-04-23 10:51:09 +00:00
Vlad Zahorodnii
3de377e461
Rename XwaylandClient to XwaylandWindow
2022-04-23 07:55:51 +00:00
Vlad Zahorodnii
4b91c6163f
Rename XdgShellClient to XdgShellWindow
...
The word "client" means different things in wayland and kwin. Use a
better word to refer to windows.
2022-04-23 07:55:51 +00:00
Vlad Zahorodnii
a21aa839b1
Rename X11Client to X11Window
...
The word "client" means different things in wayland and kwin. Use a
better word to refer to windows.
2022-04-23 07:55:51 +00:00
Vlad Zahorodnii
f0f829bc5b
Rename WaylandClient to WaylandWindow
...
The word "client" means different things in wayland and kwin. Use a
better word to refer to windows.
2022-04-23 07:55:51 +00:00
Vlad Zahorodnii
3cdee2f24a
Rename LayerShellV1Client to LayerShellV1Window
...
The word "client" means different things in wayland and kwin. Use a
better word to refer to windows.
2022-04-23 07:55:51 +00:00
Vlad Zahorodnii
fb4607f5a6
Rename InternalClient to InternalWindow
...
The word "client" means different things in wayland and kwin. Use a
better word to refer to windows.
2022-04-23 07:55:51 +00:00
Vlad Zahorodnii
48b951201a
Rename InputPanelV1Client to InputPanelV1Window
...
The word "client" means different things in wayland and kwin. Use a
better word to refer to windows.
2022-04-23 07:55:51 +00:00
l10n daemon script
b935bca22f
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"
2022-04-23 01:44:53 +00:00
Vlad Zahorodnii
0ef12b69a1
plugins/screencast: Avoid damaging full screen on rotated outputs
...
Not sure what that check is for, but things should work as expected even
without it.
2022-04-22 20:03:20 +00:00
Volker Krause
5368537981
Fix Qt6 build regressions
2022-04-22 18:10:26 +00:00
Nils Fenner
b491aeb9ae
Rename AbstractClient to Window
2022-04-22 17:39:12 +00:00
Fushan Wen
2e7364ddde
WindowHeap: Hide window icon and label when excluded
...
This makes the opening animation of Window View from task manager less rigid.
2022-04-22 16:20:43 +00:00
Xaver Hugl
99761901ee
backends/drm: don't check the test buffer if we don't need one
...
BUG: 452572
2022-04-22 15:17:01 +00:00
Xaver Hugl
941bae2810
backends/drm: fail atomic tests gracefully when buffer allocations fail
...
This should fix the crash. However, it's still unclear to me why allocations
fail in the first place
CCBUG: 452572
2022-04-22 15:17:01 +00:00
Vlad Zahorodnii
2b7fa206e8
Refactor Output information initialization
...
Instead of passing all possible field values to the initialize()
function, pass all relevant data in a struct. With designated
initializers, it's more readable and makes code more comprehensible.
The general goal is to split Output's data in two categories - general
information about the output (e.g. edid) and mutable state (position,
mode, etc).
2022-04-22 14:36:41 +00:00
Fushan Wen
c4a0f20f4a
effects/windowview: Fix "Unable to assign [undefined] to int"
...
animationDuration is not defined in WindowViewEffect. Use
heap.animationDuration instead.
2022-04-22 21:13:43 +08:00
Vlad Zahorodnii
31c069ebf3
wayland: Let ecm_add_qtwayland_server_protocol_kde() work with targets
...
Makes CMakeLists.txt code a bit safer.
2022-04-22 12:38:41 +00:00
Vlad Zahorodnii
a4a2ee0428
Refactor output mode abstractions
...
With this, the drm backend will be able to associate drmModeModeInfo
with Output's modes, which can be useful if there are several modes with
the same resolution and refresh rate but different flags.
2022-04-22 11:17:11 +00:00