23662 Commits (8ebe9c7981818c8ac1afbb403222fccaf7c66dc3)
 

Author SHA1 Message Date
Natalie Clarius 8ebe9c7981 kconf_update: replace cascaded by zero-cornered placement 2 years ago
Natalie Clarius b6412454c2 placement: remove cascaded placement policy
becomes redundant with cascade-if-covering for zero-cornered placement
2 years ago
Natalie Clarius b08ef54727 placement: apply cascade-if-covering to placement modes: random, centered, zero-cornered, under mouse 2 years ago
Natalie Clarius 274922caaf placement: cascade if window would completely overlap another window
BUG: 58063
2 years ago
Harald Sitter bcfd735808 effects/screenshot: offer an opt out of permission checking
in a CI context the paths are mutable between installation and use
and as such the permission checks can just not ever work. for use
in such scenarios allow completely disabling the permission checks
2 years ago
Vlad Zahorodnii 0047dfc596 backends/wayland: Drop WaylandBackend::getOutputAt()
It's unused.
2 years ago
Xaver Hugl 00b21992c4 backends/drm: don't leak gbm surface if creating egl surface fails 2 years ago
l10n daemon script 07a2ef4273 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script c0461f6b48 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 245dcd2b80 backends/wayland: Provide a cursor per output
It allows us to track cursor state per output and make it more
straightforward to introduce cursor layers in general.
2 years ago
Marco Martin 68517a5806 remove unused member variable 2 years ago
Marco Martin e4507861f7 Custom quick tiling with configuration ui
* Allow to do quick tiling to custom tile geometries, windows will be snapped to tiles when dragged with the shift modifier pressed.
* Tile geometries are screen specific.
* The global shortcut Meta+T will trigger a fullscreen configuration ui as a QML effect for the tiles which allows to add, remove and resize tiles
* UI and behavior is a bit similar to the Windows Fancy Zones addon: https://docs.microsoft.com/en-us/windows/powertoys/fancyzones
* Its main scope is to help the workflow with very big monitors, especially ultra wide ones, where most application don't make sense maximized to the full screen (eventually also support games to be full screened to a given tile instead of the whole screen)
* it should get also some bindings for scripting, as its ain goal is not to replicate other popular tiling window managers, but should give the popular kwin tiling scripts to have a more robust infrastructure
* it will eventually get support for a set of predefined layouts, but this is for a second phase

BUG: 438788
2 years ago
Samuel Dionne-Riel 81ff7e6316 libinput/connection: Ensure touchpad defaults are used
The previous logic would set `defaults` to the last found group.

Since a touchpad is a pointer, it would set `defaults` to point
to `[Libinput][Defaults][Pointer]`, and thus the next clause would
try to find `[Libinput][Defaults][Pointer][Touchpad]`, instead of the
expected `[Libinput][Defaults][Touchpad]`. That is, only if a default
was set for Pointer.

Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
2 years ago
Nicolas Fella 5cab7c79b4 Revert "plugins/idletime: Adjust the poller to deprecation of simulateUserActivity()"
simulateUserActivity was un-deprecated

This reverts commit 4610aaf614.
2 years ago
Vlad Zahorodnii 8d04733682 plugins/nightcolor: Register its own service name
In order to make monitoring Night Color appearing and disappearing robust,
make Night Color register its own dbus service.

CCBUG: 428854
2 years ago
Nicolas Fella a6a022f00f Port away from deprecated KWindowSystem API 2 years ago
l10n daemon script 1d640cc013 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 3e13c516c4 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 7c0cdcf472 backends/wayland: Fix input timestamp in relative motion events
RelativePointer::relativeMotion already provides us timestamps with
microseconds granularity, so we need to convert timestamps in vice versa
order.
2 years ago
l10n daemon script a93ccbd7e7 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script e691c169de 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
l10n daemon script f0660a01dc GIT_SILENT Sync po/docbooks with svn 2 years ago
Vlad Zahorodnii 65cd40e85d backends/wayland: Call wl_pointer.set_cursor when pointer enters an output
We must always call wl_pointer.set_cursor when the pointer enters the
surface.
2 years ago
Vlad Zahorodnii c784217eae backends/wayland: Use software cursor when pointer is locked
Currently, if the pointer is locked, the wayland backend will create a
subsurface. However, when the cursor moves to one of the screen edges,
it looks weird because the xdg window geometry is computed as bounding
geometry of the main surface and its subsurfaces. However, even after
calling xdg_surface.set_window_geometry, it still looks weird because
subsurfaces are stacked above window decoration.

With the proposed change, when the pointer is locked, the wayland
backend will hide the host compositor and use the software cursor. If
the pointer is unlocked, it will go back to using host cursor.

Long term goal is to make every output have its own cursor to make
output layer logic simpler.
2 years ago
l10n daemon script 2fd9cc4fc1 GIT_SILENT Sync po/docbooks with svn 2 years ago
Luigi Toscano c18a0b80bf Install translated documentation from po/ too
... when KDocTools is found.
2 years ago
Vlad Zahorodnii 711cdc7825 backends/wayland: Try to reallocate output layer data on beginFrame()
Mesa's implementation of wl_egl_window_resize() is pretty smart. It
avoids immediately resizing the buffers. On the other hand, its API
doesn't enforce that behavior and other implementations of wayland-egl
may choose to use a different strategy.

This change moves wl_egl_window_resize() to beginFrame() to make buffer
resizing handling more nicer. Also, for the record, the drm backend
works in similar fashion.
2 years ago
Vlad Zahorodnii d8c42ec540 backends/wayland: Simplify pointer locking
At the moment, once the first output gets pointer locked, other outputs
release their locks. It's unnecessary, other outputs can keep their locks.
2 years ago
l10n daemon script 613cedcc15 GIT_SILENT Sync po/docbooks with svn 2 years ago
l10n daemon script 79b35e1070 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 7a1f97754f wayland: Simplify implementation of xdg_toplevel.set_minimized 2 years ago
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