Commit graph

23285 commits

Author SHA1 Message Date
Vlad Zahorodnii
459d842772 effects: Drop EffectWindow::hasAlpha()
It's impossible to properly map EffectWindow::hasAlpha() to wayland
abstractions, where a window can have subsurfaces.

The main motivation behind this change is to move Window::hasAlpha() and
Window::depth() to X11Window.

At the moment, EffectWindow::hasAlpha() is used as a micro-optimization.
API and ABI breaking change in libkwineffects.
2022-10-11 07:14:05 +00:00
Vlad Zahorodnii
eedbde464e utils: Drop updateXTime() 2022-10-11 06:43:25 +00:00
Vlad Zahorodnii
f950cbd3d1 Move Platform::updateX11Time() to Application
Platform can be viewed as an output backend and updating X11 time has
nothing common with that.
2022-10-11 06:43:25 +00:00
Vlad Zahorodnii
903e18d88c Merge Window::maximize() and Window::changeMaximize() 2022-10-11 06:21:15 +00:00
Vlad Zahorodnii
a1d5849d81 Make X11Window responsible for emitting clientMaximizedStateChanged signal 2022-10-11 06:21:15 +00:00
Vlad Zahorodnii
40a4cd13a4 Make Window::changeMaximize() take MaximizeMode 2022-10-11 06:21:15 +00:00
Vlad Zahorodnii
b044a7d5ff Drop adjust argument in Window::changeMaximize() 2022-10-11 06:21:15 +00:00
l10n daemon script
0e2d5bd232 GIT_SILENT Sync po/docbooks with svn 2022-10-11 02:08:07 +00:00
Volker Krause
74ae78d4c6 Adapt to Qt XkbCommon header changes in Qt 6 2022-10-10 17:07:37 +02:00
Vlad Zahorodnii
a119218c8b x11: Move Unmanaged damage initialization hack into SurfaceItemX11
It's unnecessary on wayland and there's a bug in m_isDamaged
initialization. We need to set m_isDamaged to true otherwise
SurfaceItemX11 won't attempt to query the damage.
2022-10-10 13:10:12 +00:00
Vlad Zahorodnii
bcd43ff44d backends/x11: Implement own keyboard interception
At the moment, the keyboard interception code in the effects system
relies on Qt code processing key events. However, since QDesktopWidget
is removed in Qt 6, this is a blocker for Qt 6 port.

This change ports the X11 backend to private xkb keymap as indicates in
the todo comment. It allows us to drop the last QDesktopWidget usage.
2022-10-10 09:16:50 +00:00
l10n daemon script
7aee88581f GIT_SILENT Sync po/docbooks with svn 2022-10-10 02:06:15 +00:00
Joshua T
b0682129f9 kcmkwin/kwindecoration: Add "Shadow" to list of keywords
Since the window decoration settings includes the size of a window’s shadow,
the word "shadow" should be one of the keywords.
2022-10-09 14:26:00 +00:00
l10n daemon script
8f3e2d6a8d GIT_SILENT Sync po/docbooks with svn 2022-10-09 02:13:51 +00:00
l10n daemon script
88bebf0cbf GIT_SILENT Sync po/docbooks with svn 2022-10-08 10:55:52 +00:00
l10n daemon script
243c055aee GIT_SILENT Sync po/docbooks with svn 2022-10-08 02:09:27 +00:00
Xaver Hugl
e0120aa387 kwingltexture: port away from manual memory management 2022-10-07 14:50:10 +02:00
Xaver Hugl
7bca6267b0 decorationbridge: wrap factory in a std::unique_ptr 2022-10-07 14:50:10 +02:00
Xaver Hugl
e482556d58 screenedge: modernize some code 2022-10-07 14:50:10 +02:00
Xaver Hugl
1c7eb138ff backends: port more code to std::unique_ptr 2022-10-07 14:50:10 +02:00
Vlad Zahorodnii
cd1def8c55 effects/slide: Remove SlideDocks option
SlideDocks option was added after receiving negative feedback about
sliding docks. SlideBackground option was added to provide smooth
transition path for old users.

In hindsight, adding SlideDocks option was a mistake. It provides
excessive configurability in exchange for more code complexity.
2022-10-07 07:49:49 +00:00
l10n daemon script
63f519b0a2 GIT_SILENT Sync po/docbooks with svn 2022-10-07 02:24:07 +00:00
Vlad Zahorodnii
94486e0cc1 backends/virtual: Stop creating a dummy output during backend initialization
With the virtual backend, it makes more sense to create outputs on
demand. It makes code clear, it would be also nice to use the virtual
backend for virtual outputs rather than have every backend implement its
own virtual outputs.
2022-10-06 18:04:35 +00:00
Vlad Zahorodnii
9d53f2d29c autotests: Add missing setVirtualOutputs calls 2022-10-06 18:04:35 +00:00
A. Meyer
bf00ab6f94 Change description for window border shortcut
Changes the "Hide Window Border" shortcut description to "Toggle Window
Border", which more accurately describes the feature.

BUG: 348549
2022-10-06 17:40:25 +00:00
Volker Krause
f50046524b Remove public declaration of the KWin::FPx2 debug stream operator
Qt 6 insists on this being exported, which in turns fails as this is
actually not implemented. There seemingly is an implementation, but that's
in a different namespace, so this can never have been used from the
outside anyway.
2022-10-06 16:43:47 +02:00
Vlad Zahorodnii
cddb2177f1 effects: Fix window highlighting in WindowHeap
Currently, windows are not highlighted as expected in the window view
effect if the keyboard focus belongs to another screen view.

In general, it makes more sense to apply "Window.window.activeFocusItem"
constraint only to heap.selected.
2022-10-06 07:35:56 +00:00
l10n daemon script
0228f667a9 GIT_SILENT Sync po/docbooks with svn 2022-10-06 02:13:45 +00:00
Vlad Zahorodnii
7eca5f44db x11: Reset SurfaceItemX11::m_isDamaged when the damage handle is destroyed 2022-10-05 14:17:09 +03:00
Vlad Zahorodnii
b3214db0b7 x11: Make damage region fetching code more robust to errors
With DamageReportNonEmpty damage report level, the x server will
send kwin a DamageNotify when the damage region changes from empty to
not empty.

The damage region will be made empty when SurfaceItemX11 calls
xcb_damage_subtract().

It appears like xcb_generate_id() can return us an already associated
XID, which eventually results in xcb_damage_subtract() failing and
breaking state tracking in SurfaceItemX11. KWin will no longer receive
DamageNotify events and some windows will freeze.

In order to make getting BadIdChoice less catastrophic, this change
makes the SurfaceItemX11 reset m_isDamaged after successfully fetching
the damage region. If xcb_generate_id() returns us a bad id, kwin will
try to fetch the damage again in the next frame.

BUG: 456511
2022-10-05 10:10:25 +03:00
Vlad Zahorodnii
d2899928cd Reset m_delayFocusWindow in Workspace::cancelDelayFocus()
CCBUG: 459860
2022-10-05 06:38:25 +00:00
l10n daemon script
df142cfe49 GIT_SILENT Sync po/docbooks with svn 2022-10-05 02:03:58 +00:00
Vlad Zahorodnii
2048e40d19 autotests: Extend OutputChangesTest with more cases
This change extends the OutputChangesTest so it also covers the cases
where a maximized and a fullscreen window is moved back to its original
output when it's hotplugged.
2022-10-04 15:21:00 +00:00
Vlad Zahorodnii
2bb3299533 effects/fullscreen: Prevent playing animation for invisible windows
It makes no sense to play the animation if the window is invisible. It
can also produce unexpected results if the window is not on current virtual
desktop as animate() will temporarily force the window to be visible.
2022-10-04 14:14:40 +00:00
Xaver Hugl
18a72f7187 backends/drm: also force linear layout for dumb buffer cursors
While it usually shouldn't make a difference, it ensures that the buffer import
always works properly

CCBUG: 456306
2022-10-04 07:33:59 +00:00
Vlad Zahorodnii
6ba44deee4 effects/maximize: Prevent playing animation for invisible windows
If an invisible window is animated, e.g. minimized window, the maximize
effect will temporarily make it visible in order to play the animation,
which is unexpected.
2022-10-04 06:48:43 +00:00
Laurent Montel
1b57b27b76 Use POSITION_INDEPENDENT_CODE for static lib for helping to build against qt6 2022-10-04 08:28:40 +02:00
Xaver Hugl
ae4dd73e99 backends/drm: use linear buffers for multi gpu where necessary 2022-10-03 10:44:51 +00:00
Xaver Hugl
1f92dc5e5d backends/drm: correct test buffer check
There can be situations where the surface fits but there's no test buffer yet
2022-10-03 10:44:51 +00:00
Volker Krause
2bda46d5b9 Don't try to create a QChar from a non-char key enum
Asserts with Qt 6. Instead, check with the static QChar::isLetter, that
handles invalid input properly.
2022-10-03 09:12:19 +00:00
Volker Krause
25a2c0a9e8 Adjust reduced feature CI to run unprivileged
Same thing was done to the common templates.
2022-10-03 10:35:46 +02:00
l10n daemon script
3e82a1ede9 GIT_SILENT Sync po/docbooks with svn 2022-10-03 03:01:29 +00:00
Nicolas Fella
4a10dfeeff Install po folder 2022-10-02 16:45:13 +02:00
l10n daemon script
2dcd8ae9bb GIT_SILENT Sync po/docbooks with svn 2022-10-02 03:16:14 +00:00
David Edmundson
3649ec474b [x11window] Remove duplicate activities check
We check if activities are valid in Window::setActivities. We don't need
to do it when we read the X11 properties.
2022-09-30 07:10:50 +00:00
David Edmundson
ad95b495ac Sync activities after kwin restart
Activities are loaded async. During this time any fetch of activity
information is incorrect as we will treat any settings as invalid.

We need to ignore attempts to set activities during this time, but also
refresh Window's concept of activities once we are loaded.

BUG: 438312
2022-09-30 07:10:50 +00:00
Méven Car
e60f26e0ab Disable PrimarySelection in seat setPrimarySelection
BUG: 456167
2022-09-29 10:32:03 +00:00
Vlad Zahorodnii
4c07daec3f effects/slide: Increase spring constant
We've got complaints that the animation is too slow.

BUG: 455450
2022-09-28 15:41:04 +00:00
l10n daemon script
b4cd4f645e 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-09-28 01:57:42 +00:00
Nate Graham
5322f32cf0 Set bugReportUrl for all KCMs in this repo
CCBUG: 204364
2022-09-27 12:15:26 -06:00