24625 Commits (d2aee0a1a28cb3d3cfeb11d177c24eaaaa3c15d5)
 

Author SHA1 Message Date
Xaver Hugl f70be829c6 backends/drm: don't access nullptr output configs 1 year ago
Vlad Zahorodnii 050336e421 Minor cosmetic improvements in Window
This change reorders some things in Window header so related things are
kept spatially close to make the code easier to navigate.
1 year ago
Alexander Lohnau fe935c0dc8 Adjust to new KPackage namespace for structures
See https://invent.kde.org/frameworks/kpackage/-/merge_requests/73
1 year ago
l10n daemon script fe5b9961cf GIT_SILENT Sync po/docbooks with svn 1 year ago
Aleix Pol d0b87a900f screencasting: Add an autotest
Adds an autotest that makes sure a screencasting stream works as
expected.
Adds an optional dependency to KPipeWire only effective to run the test.
1 year ago
Aleix Pol 7a6c2ce36f screencasting: Support opaque drm video formats
Fixes a warning on the CI
1 year ago
Aleix Pol aaae80a569 backends/virtual: Fix format
While we are using GL_RGB8, it seems to be using 32bit pixels.
1 year ago
Vlad Zahorodnii abb9b0d2cd Reshuffle desktop and activity related code in Window
Keep virtual desktop and activity related code spatially close to
improve code readability.
1 year ago
Vlad Zahorodnii 712a23bd59 Move Window::desktop to X11Window
Window::desktop() is obsolete. On the other hand, X11 doesn't support
having a window on several virtual desktops, so we still need it. As a
compromise, this change moves it to X11Window instead.
1 year ago
Vlad Zahorodnii 0d11a09010 tabbox: Port away from Window::desktop 1 year ago
Vlad Zahorodnii 2c12a6a417 wayland: Avoid updating outputs of a closed window
BUG: 467954
1 year ago
Xaver Hugl 66495f9c79 wayland/outputmanagement: don't access nullptr changesets
Since 6b8e08dfa9, changesets can be nullptr
1 year ago
Vlad Zahorodnii 101e38527d kcms: Port away from org.kde.kcm.ConfigModule
org.kde.kcm.ConfigModule doesn't exist anymore. Its replacement lives in
org.kde.kcmutils module now.

Note that the replacement has no "quickHelp" property, so it's been
removed. While on this, also drop "ConfigModule.buttons". It still
exists in the new ConfigModule but the default buttons should be fine.
1 year ago
Vlad Zahorodnii 73c26baab4 scripting: Make WindowModel.desktop property return list of desktops
The X11 desktop id property is obsolete.
1 year ago
Vlad Zahorodnii aebc361c45 Drop Window::isOnDesktop(int) 1 year ago
Vlad Zahorodnii e306e1b287 tabbox: Port away from legacy desktop ids 1 year ago
Vlad Zahorodnii 222b23eaa3 Adjust to kdecoration api changes 2 years ago
Vlad Zahorodnii d76527e7e6 Port window cascading from X11 desktop ids to VirtualDesktop 2 years ago
Vlad Zahorodnii 044e160a50 Cleanup includes in window.cpp 2 years ago
Vlad Zahorodnii cd36bb82b2 Regroup methods and fields in Window
Group methods and fields together to make Window internals less chaotic.
2 years ago
Vlad Zahorodnii ec31ab4980 Drop Window::resourceMatch()
Its body is trivial and it's used only once so it can be inlined.
2 years ago
Vlad Zahorodnii 25f284e68c Remove comments reminding to copy properties in copyToDeleted()
Window::copyToDeleted() is gone.
2 years ago
l10n daemon script b0841fbe7d GIT_SILENT Sync po/docbooks with svn 2 years ago
Nate Graham fec40b7163 Revert "backends/libinput: don't multiply v120 value by scroll speed"
This reverts commit 9cd52b4060.

This commit broke the adjustable scroll speed feature on Wayland. That
feature may not have been implemented in the most technically ideal way,
but simply breaking it and leaving the mouse KCM with UI control that
does nothing isn't great. Besides, there was always a simple way to
avoid any scroll-related regressions caused by this feature: reset the
scroll speed to its default value, which internally is a multiplier of 1
and exercises the same codepath that 9cd52b40 imposes on everyone.

We can come up with a better implementation for Plasma 6.

BUG: 464592
FIXED-IN: 5.27.4
2 years ago
Vlad Zahorodnii c6035115f9 Drop ReleaseReason enum 2 years ago
Vlad Zahorodnii 3e766e8d5e Move Window::{frameId,window} to X11Window 2 years ago
Vlad Zahorodnii 1334b38ee1 Move X11-specific "skip close animation" handling to X11Window 2 years ago
Vlad Zahorodnii d35f88adee Move Window::wmClientLeader to X11Window 2 years ago
Vlad Zahorodnii e403c5bf63 Move Window::info to X11Window 2 years ago
Vlad Zahorodnii bf19234df3 Move Window::detectShape to X11Window 2 years ago
Vlad Zahorodnii fa8bd5c0d9 Move Window::{opaqueRegion,shapeRegion} to X11Window 2 years ago
Vlad Zahorodnii 46d0c04f91 Move Window::{depth,hasAlpha,visual} to X11Window 2 years ago
Vlad Zahorodnii 87bfdcf1d6 scene: Port WindowItemX11 to X11Window 2 years ago
Vlad Zahorodnii 551e4a8233 Move Window::propertyNotifyEvent to X11Window 2 years ago
Vlad Zahorodnii 005b098707 Move xwayland surface association logic to X11Window 2 years ago
Vlad Zahorodnii 2d275e16ec Merge XwaylandWindow with X11Window 2 years ago
Friedrich W. H. Kossebau c395afde9b KIdleTime plugin: adapt to new name KAbstractIdleTimePoller 2 years ago
l10n daemon script 2a4eccdbf4 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 4bf7fdf8e0 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"
2 years ago
Vlad Zahorodnii dbbcf31d0d x11: Merge Unmanaged into X11Window
Currently, managed and override-redirect windows are split in two types:
X11Window and Unmanaged. While looking at it strictly from type
perspective, this is great. But it creates other problems, e.g. we need
to put shared X11-specific code in the base Window class or mess with
"base" classes.

As an alternative solution, this change merges the Unmanaged class into
the X11Window class and disables some functionality based on the value
of isUnmanaged().

X11Window::manage() is used to create a managed Window. X11Window::track()
is used to create an unmanaged Window.
2 years ago
Xaver Hugl 062f092f38 workspace: prevent dangling pointers in output order list
An output can be still enabled but also scheduled for deletion
2 years ago
Xaver Hugl c51824b535 Add OutputManager for taking care of output settings in KWin
As a first step to move away from having an external service remember output settings
for KWin, this commit introduces an output manager that can load configuration files
and generate new output configurations.
2 years ago
Xaver Hugl 6b8e08dfa9 core/outputconfig: store output properties with std::optional 2 years ago
Vlad Zahorodnii 08bebd1c4a Drop supported_types parameter in Window::windowType()
It's unused mostly.
2 years ago
Vlad Zahorodnii 902c2feb12 scripting: Drop Window.shaped property
It should be irrelevant to the scripts and there's no matching
abstraction on wayland.

is_shape is made protected, but it will be eventually moved to an X11
specific subclass.
2 years ago
Vlad Zahorodnii 94f0e564be Move internal window fbo and pixmap to InternalWindow 2 years ago
Vlad Zahorodnii 10b5236cfa Unvirtualize some Window properties 2 years ago
Vlad Zahorodnii e31ec802f4 Drop Deleted
Currently, the normal window lifecycle looks as follows: create Window,
wait until it's shown, add it to Workspace, wait until it's closed,
create a Deleted, copy properties from the original window to the
deleted one, destroy the original window, wait until the last deleted
window reference is dropped.

There are a couple of issues with this design: we can't nicely
encapsulate X11 or Wayland specific implementation details if they need
to be accessed for closed windows; manual copying of properties is
cumbersome and error prone and we've had a dozen of cases where effects
worked incorrectly because some properties had not been copied.

The goal of this patch is to drop Deleted and extend the lifetime of the
original window, but with a special state set: Window::isDeleted().

The main danger is that somebody can try to do something with deleted
windows that they should not do, but on the other hand, such code needs
to be guarded with relevant checks too.
2 years ago
Vlad Zahorodnii 5454cc47c3 Preserve stacking order constraints when closing a window
When closing a window, we may need to change parent-child relationship
between windows, but we need to preserve stacking order constraints so
dialogs are placed above their parents when they're closed.
2 years ago
Vlad Zahorodnii 2510bf0439 wayland: Cache WaylandWindow::isScreenLocker()
This is needed to ensure that Window::isScreenLocker() returns a good
value for closed windows. Also, it's needed to get rid of
ClientConnection::aboutToBeDestroyed() connection, which can cause
problems with window teardown.
2 years ago