23731 Commits (e88a9e511adb4101b9074360dcede31f315d5e68)
 

Author SHA1 Message Date
Vlad Zahorodnii 0987b55cdd wayland: Prefer input()->pointer()->pos() over cursor pos
On Wayland, the cursor primarily visual role, not functional.
Interactive move resize should get the position from the corresponding
input device.
2 years ago
l10n daemon script 777c2bdb18 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 738820d438 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 9e97c7383c Add support for DecoratedClient::windowClass() 2 years ago
Vlad Zahorodnii b867f76d41 backends/wayland: Stop forwarding keymap and modifiers
These concepts are hard to map to InputDevice abstractions, so remove
them and let kwin use its own internal keymap instead (rather than
get it overridden by the host compositor's keymap) and track modifiers
based on the events it receives.

If the goal is to have these at any cost, I think the way out of it
would be to provide wayland backend specific signals. I would like to
avoid doing that though because it breaks encapsulation and we would
need some casts in kwin to wire in these events.
2 years ago
l10n daemon script c1ecce9ec3 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script d4b6c8f911 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 b4569f5985 Add ShapeCursorSource
ShapeCursorSource provides the contents of the given cursor shape in the
Xcursor theme.

If the given cursor shape is animated, ShapeCursorSource will keep
updating its content based on the value of current sprite's delay value.
2 years ago
Vlad Zahorodnii e552be6cb1 Add CursorSource
CursorSource acts as a black box providing the contents of the cursor.
That's it, the image and the hotspot.
2 years ago
Vlad Zahorodnii f881bdf51b backends/drm: Use drmModeGetConnectorTypeName()
It ensures that connector type naming is consistent across compositors
and saves us some work adding string mappings.

drmModeGetConnectorTypeName() uses the same naming scheme as the drm
backend so the client side should be unaffected by this change.

CCBUG: 385135
2 years ago
Nicolas Fella f764861157 Rename Touch Screen KCM to Touchscreen Gestures
To avoid a conflict with the new Touchscreen KCM under input devices
2 years ago
l10n daemon script 08173dbb06 GIT_SILENT Sync po/docbooks with svn 2 years ago
Xaver Hugl f70caec4b3 backends/drm: drop explicit modifiers completely if no output config works
Removing modifiers one by one creates a huge amount of combinations that
can make KWin hang for a long time in some cases. Instead of doing that,
leave it up to Mesa to pick a modifier when a setup doesn't work, which
will generally result in the least amount of bandwidth used and should be
able to power all output combinations.
2 years ago
Xaver Hugl 6bb4ebdf04 backends/drm: set hdr metadata to 0
Otherwise we might have broken colors from leftover state of other compositors
2 years ago
Vlad Zahorodnii af24f5b011 Remove Window.clientPos and Window.clientSize properties
The main motivation behind this change is to reduce the number of
geometry properties, in particular limit the use of clientPos that can't
be expressed as an alias to clientGeometry().topLeft().

The client geometry is not useful to scripts as they lack functions to
go from one type of geometry to another. The scripts use exclusively the
frame geometry.

The client geometry is not that useful in kwin too, similar to scripts,
almost all our window management code works with frame geometry. Client
geometry is useful when requesting the client to resize the window.
2 years ago
Xaver Hugl a762f68c08 kcmkwin/kwincompositing: remove no longer relevant keywords 2 years ago
Nicolas Fella 8986091878 [libinput] Re-run touchscreen->output mapping when externally clearing output name
When setting a device's output name externally we assign the relevant output to the device

If we pass an empty name we set a null output, which causes a crash the next time the touchscreen is touched

Since passing an empty name semantically means 'Detect output automatically' rerun the mapping heuristic so we get a valid output
2 years ago
Xaver Hugl a054093580 qAbs -> std::abs 2 years ago
Vlad Zahorodnii bb53b21c4c wayland: Add more inert Output checks 2 years ago
l10n daemon script 5cfab52bb6 GIT_SILENT Sync po/docbooks with svn 2 years ago
Aleix Pol df77fcd9e0 x11window: Calculate the native floor from the begining of the output
If this function is useful to make sure we are properly aligned with the
output's pixels, we should start with the output's 0, otherwise we'll be
carrying over the rounding errors increasingly as our workspace grows.

BUG: 459373
2 years ago
Xaver Hugl cdeacdbdad backends/libinput: update screens on Workspace::outputsChanged
Using OutputBackend::outputsQueried can cause problems because it's emitted
before output settings like enablement get adjusted to the new output configuration.
It also doesn't react to output changes initiated by KScreen and is in the
way of plans to use multiple output backends at the same time.

BUG: 461901
2 years ago
Mouse Zhang acb25fbd5e effects/blendchanges: move effect chain position after blur and backgroundcontrast 2 years ago
l10n daemon script 51ad320962 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script a2c3645606 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 9d1f7cde61 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
Xaver Hugl cf3b167d50 effects/kwinquickeffect: ensure view map doesn't contain a nullptr view
BUG: 462014
2 years ago
l10n daemon script bd7a6bb65d GIT_SILENT Sync po/docbooks with svn 2 years ago
Xaver Hugl 681368d4cc VirtualDesktopManager: clean up API a bit
Using templates brings nothing except complexity here
2 years ago
Xaver Hugl 147f3509ea Refactor placement code
This removes the usage of x11 virtual desktop ids and makes the code a bit
more readable
2 years ago
Vlad Zahorodnii 8197bf8890 Remove Window.visibleRect property
Scripts don't paint so the visible rect is no of use to them.
2 years ago
Vlad Zahorodnii 3d0101e127 Move window XID properties to X11Window
Scripts can't use platform specific apis so it makes little sense to
have these properties. On the other hand, they can be useful for debug
console.
2 years ago
Vlad Zahorodnii b622bc5ec5 Remove Window.surface property
Scripts don't have sufficient capabilities to use platform specific
apis. So exposing wayland surface object to scripts makes no sense.
2 years ago
Vlad Zahorodnii a0971264b8 Remove Window.alpha property
Scripts don't paint, there's little point for exposing this property to
scripts.
2 years ago
Vlad Zahorodnii 65130f85e6 Port Workspace from Window::clientPos() 2 years ago
Vlad Zahorodnii f9abd04459 Port constraint constraints from Window::clientPos() 2 years ago
Vlad Zahorodnii 0ec732491b Port PopupInputFilter to Window::clientGeometry()
Saves us some math operations.
2 years ago
Vlad Zahorodnii 5e04977d31 Drop SurfacePixmap::contentsRect()
It's unused.
2 years ago
Vlad Zahorodnii 64a6a70b3e autotests: Use fewer Window::clientPos() 2 years ago
Alexey Andreyev 462d5f0642 utils/serviceutils: Improve Exec key parsing
Take into account Exec field codes.

The change makes possible to have both X-KDE-Wayland-Interfaces field
(for example, kde_lockscreen_overlay_v1)
(and additional arguments for Exec field (for example, %U).

See also:

https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s07.html

Contributes to:

https://invent.kde.org/plasma-mobile/plasma-dialer/-/merge_requests/105
2 years ago
Nate Graham c01569e4b8 effects/windowview: make search field's placeholder text accurate
This effect has a search field that doesn't actually search; it filters
through open windows. Let's change its placeholder text to reflect this,
so users don't get confused.
2 years ago
Vlad Zahorodnii 3a7b35a95b backends/wayland: Drop WaylandBackend::flush()
These flush()es are unnecessary, wayland backend will work fine without
them.
2 years ago
Vlad Zahorodnii 8655cc76e8 core: Drop initial window state properties in OutputBackend
Relevant output backends take these properties using their (xyz)Options
struct now.
2 years ago
Vlad Zahorodnii 12acd9bb78 autotests: Port away from OutputBackend::setInitialWindowSize() 2 years ago
Vlad Zahorodnii 528abfb00a backends/{x11,wayland}: Rework passing initial configuration to windowed backends
Currently, OutputBackend stores the initial state for windowed backends.
It's messy because the backends can have different needs. Instead, make
windowed backends take an Options struct with all possible options.
2 years ago
Aleix Pol 69c9f19973 screencast: Don't scale the cursor
Otherwise it gets cutt off when scaling > 1.
This fixes Nate's screencasts (and anyone who has a system like nate's,
that is).

Part-of: <https://invent.kde.org/plasma/kwin/-/merge_requests/3195>
2 years ago
Vlad Zahorodnii b2d78a5c30 backends/wayland: Decouple from Compositor and Scene
Scene::addRepaintFull() is used to request an output update, but there
are other ways to do it that require referencing neither Compositor nor
Scene.

Part-of: <https://invent.kde.org/plasma/kwin/-/merge_requests/3202>
2 years ago
Vlad Zahorodnii 3aa635430b effects: Drop WindowPaintData.shader property
It allows us to encapsulate SurfaceItem rendering. It's needed to add
support for YUV->RGB conversion fallback path.

Effects that use this property must be ported to OffscreenEffect, see
also OffscreenEffect::setShader().

This is a BREAKING CHANGE!
2 years ago
Vlad Zahorodnii 4363b25b2d effects/invert: Port to OffscreenEffect
Allows us to drop WindowPaintData.shader and to encapsulate rendering of
windows, which is needed to provide YUV->RGB conversion path.
2 years ago
Vlad Zahorodnii 69859aec28 kwineffects: Bring back OffscreenEffect::setShader()
OffscreenEffect can be still used to apply a shader effect to a window.
2 years ago