24361 Commits (1cb3fa96b3de78b66784e374cc068ea12a0536f0)
 

Author SHA1 Message Date
l10n daemon script 1cb3fa96b3 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 871a1a460c scripting: Refactor generic scripted config
Currently it makes an assumption that the name of a scripted effect
starts with "kwin4_effect_" prefix, which has its issues. For example,
it will stop working if we choose to use simpler naming scheme.

This change reworks how the generic scripting kcmodule is constructed.
Instead of guessing kpackage type, make relevant kcms pass it explicitly
via the arg list.
2 years ago
Xaver Hugl e83c593fda adapt to kdecoration changes 2 years ago
l10n daemon script d4581a6cf3 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 854c19e00a GIT_SILENT Sync po/docbooks with svn 2 years ago
Vlad Zahorodnii 9aebfcb2ff Include src/ directory in the proper place
There's other code that includes headers starting from src/ directory,
so putting the corresponding include_directory() in src/effects/ is
inappropriate.
2 years ago
Vlad Zahorodnii ed87ac837b Stop including src/effects directory in kcmkwincommon target 2 years ago
Vlad Zahorodnii f288212869 Stop kcm_kwin4_genericscripted linking with libkwineffects 2 years ago
Vlad Zahorodnii ffce2a61f1 Drop service type desktop files
They're irrelevant now.
2 years ago
Vlad Zahorodnii 25440385e7 Port to KPluginMetaData::fromJsonFile()
KPluginMetaData::KPluginMetaData(QString) assumes that the file
specified in the string corresponds to a binary plugin now, not a
metadata file.

This fixes scripted effect kcms not working.
2 years ago
David Edmundson f88ff99d82 wayland: Truncate strings sent via plasmawindowmanager interface
Wayland has a limited size for strings in arguments. We should truncate
any strings that come from user-defined data before sending.

We keep the full title around within kwin as it keeps logic simpler.
Size length logic is lifted from QWaylandWindow's setTitle

BUG: 465775
2 years ago
l10n daemon script 86508b25c0 GIT_SILENT Sync po/docbooks with svn 2 years ago
Alexander Lohnau 1f7ec93954 Adjust to new KCM classes
Depends on https://invent.kde.org/frameworks/kcmutils/-/merge_requests/121
2 years ago
David Redondo d5679ee82c Port some connections to Qt::SingleShotConnection 2 years ago
Vlad Zahorodnii 3704c0a945 backends/drm: Remove some gbm_surface,gbm_device forward declarations 2 years ago
l10n daemon script b7834edefe GIT_SILENT Sync po/docbooks with svn 2 years ago
Vlad Zahorodnii 7dbb06d80c Fix picking drag target
The normal stacking order contains managed and unmanaged windows now.
This kind of breaks dragging from X11 to Wayland clients.

When an X11 client is the drag source, it's going to create an override
redirect window for the drag icon, which is beneath the pointer.

findManagedToplevel() will return the drag icon instead of the window
beneath the drag icon.

The root problem is that normal event processing has different needs. It
doesn't care about window type except when the screen is locked, while
dnd does. Perhaps it also makes sense to check whether the window accepts
focus.

This change introduces a specialized helper to pick the drag target.
Unfortunately, it amounts to some code duplication. On the other hand,
not sure that other options (such as adding flags to findToplevel()) are
better.
2 years ago
Vlad Zahorodnii bcc299c3fe Drop unused Workspace::deletedList()
It's unused, and there should not be any usecases for it outside the
Workspace.
2 years ago
Vlad Zahorodnii 8f21d444c6 Make Workspace::allClientList() return all windows
Currently windows are scattered in a few separate lists. If you need to
go through the windows, you have to do it piece by piece. On the other
hand, with the overhaul of window types, we've started converging
towards one universal type: Window. Keeping windows in the separate
buckets goes against this design.

Workspace::stackingOrder() already contains all windows. This change
repurposes Workspace::allClientList() from a list of "normal" windows to
all windows, i.e. Workspace::windows(), to be consistent.

There's one API change though. Scripting API will expose other window
types too. This is an intentional change so scripted effects could
operate with all windows. It also matches the current behavior observed
in libkwineffects, which exposes all windows as well.
2 years ago
Vlad Zahorodnii 392fb4eb01 Add explicit Window::isClient() checks
This is needed to prepare for introducing Workspace::windows().
2 years ago
Xaver Hugl f433213bd6 backends/drm: simplify how atomic commits are done
Instead of having every DrmProperty store pending values, store the data
for the next commit in a separate and temporary type. This simplifies the
code and makes it possible to do commits in a separate thread
2 years ago
l10n daemon script f71e322ead GIT_SILENT Sync po/docbooks with svn 2 years ago
Jan Grulich 3807b41c66 Screencast: avoid using DMABufs exclusively to allow renegotiation
Using DMABufs only will not allow clients to fallback to MemFD buffers
in case they fail to import DMABufs for whatever reason and completely
break screen sharing in such case.
2 years ago
Alexander Lohnau 4e9303a6cc Adapt to KPackage API changes for install/uninstall
This simplifies the code, because we can access the package after installing it.

Depends on https://invent.kde.org/frameworks/kpackage/-/merge_requests/68
2 years ago
Xaver Hugl d9077e36c5 backends/drm: use a common base class for property blobs
This simplifies the code a bit and makes more generic handling of blobs
possible
2 years ago
Vlad Zahorodnii f3dc057c71 x11: Disable NETWinInfo in X11Window
This piece of logic belongs in X11Window rather than Deleted as the
latter is merely a representation of a closed window.
2 years ago
Nate Graham a42f7f4807 kcms/effects: Add "tile"-related keywords
Ultimately the best solution would be to implement
https://bugs.kde.org/show_bug.cgi?id=462722, but that hasn't been done
yet, so for now let's use the existing approach of adding the names of
effects into the keywords list for this KCM to surface those effects at
the system level so e.g. people can find them with KRunner.

BUG: 467279
FIXED-IN: 6.0
2 years ago
Vlad Zahorodnii 88db280f2a Fix -Wdeprecated-enum-enum-conversion
Even though zwp_text_input_v2_content_hint and
QtWaylandServer::zwp_text_input_v2::content_hint represent the same
values, they are not the same from the compiler perspective.
2 years ago
Vlad Zahorodnii 7aa89944d7 Fix -Wambiguous-reversed-operator
`this` must be const to match the const-ness of the other mode.
2 years ago
Vlad Zahorodnii af4397581a Fix warning about comparing different enums
QEventPoint::state() returns a QEventPoint::State value, not
a Qt::TouchPointState value.
2 years ago
Friedrich W. H. Kossebau b2a50cffd8 Adapt to Qt6 name of QAccessibilityClient 2 years ago
Vlad Zahorodnii b9daa38da1 Drop Application::setupTranslator()
KI18n already does the same for us in its Q_COREAPP_STARTUP_FUNCTION
hook and setupTranslator() produces a compiler warning.
2 years ago
Vlad Zahorodnii 8eaebe5b7d Get rid of compiler warnings about unused getEglErrorString() 2 years ago
Vlad Zahorodnii d6309eb605 Fix -Wformat
QVector::count()'s return type is qsizetype. On a 64 bit platform, it's
equivalent to qint64, so "%d" does not suffice.

There are two ways to fix it: use PRIdQSIZETYPE or switch to the stream
operator. Since the warning format is not complex, this takes the latter
approach.
2 years ago
Vlad Zahorodnii 328cf606d4 Fix compiler warning about unused captured variable 2 years ago
Vlad Zahorodnii 1dde9a7b22 Remove unused X11WindowedEglLayerSwapchain::m_backend field 2 years ago
Vlad Zahorodnii 301d749e74 Remove unused RenderTarget::m_texture field 2 years ago
Vlad Zahorodnii c8ed324a3d Remove unused functions 2 years ago
Vlad Zahorodnii c91b90c58a Tidy Window::windowClosed() signal
"window" is redundant, so remove it. Also remove the original window
argument to improve the API consistency.
2 years ago
l10n daemon script 01cfa5e484 GIT_SILENT Sync po/docbooks with svn 2 years ago
Vlad Zahorodnii b4413f4b8b scene: Rework window elevation
The order in which windows are painted is computed dynamically every
frame. On the other hand, with the introduction of items, it's desired
to avoid doing that so repaints can be scheduled as needed. The
unification also opens the possibilities for more rendering related
refactors to make the code nicer and more reusable.
2 years ago
Aleix Pol 1cbc9185fb screencast: Properly detect the fallback
Do not check an it that is the container's end()
2 years ago
Vlad Zahorodnii bacc35c236 backends/virtual: Provide vertically mirrored layer buffers
This makes the behavior of the virtual backend more consistent with
wayland, x11, and drm backends. However, the main advantage is that it's
more nicer to memfd fallback code path in screencasting plugin.
2 years ago
Vlad Zahorodnii 2f56cdc3fe Replace Deleted with Window where possible
With this, Window and Deleted can be interchanged, which makes merging
the two easier.
2 years ago
Vlad Zahorodnii 149db99c6a Make Window ref'able 2 years ago
Vlad Zahorodnii 995d509e45 Allow destroying Deleted immediately
Currently Deleted are destroyed with a delay to avoid dangling pointers
within the middle of painting.

On the other hand, it's reasonable to require not to delete windows when
kwin starts painting the screen.

Over the years, we refactored how deleted windows. They are always
unreferenced after finishing the current frame. So it should be fine to
destroy Deleted immediately now.
2 years ago
Vlad Zahorodnii cdd18cd393 effects/slidingpopups: Prevent potential use-after-free 2 years ago
Vlad Zahorodnii 58ac7888e9 backends/x11: Split EglOnXBackend
The differences between windowed and host flavors of the X11 backend
have become too big, so let's split EglOnXBackend to avoid abstracting
something that makes little sense.
2 years ago
Vlad Zahorodnii 3bec3abb3f Use "window" instead of "toplevel" in Workspace 2 years ago
Vlad Zahorodnii 5b18cba3a0 Drop Workspace::{findAbstractClient,forEachAbstractClient} 2 years ago