Commit graph

23816 commits

Author SHA1 Message Date
Vlad Zahorodnii
d93b1d4943 effects/tileseditor: Specify effect chain pos
The explicit effect chain position is needed to ensure that the effect
is properly ordered with other effects such as screenshot.
2022-12-03 13:02:29 +00:00
Jan Grulich
47732c54b6 Screencast: properly renegotiate stream when window size changes
We need to completely renegotiate stream parameters in case of window
size gets changed, otherwise no renegotiation will happen and clients
will not accommodate to our changes.

Fixes: https://github.com/obsproject/obs-studio/issues/7875
2022-12-03 02:40:30 +00:00
l10n daemon script
75720785a0 GIT_SILENT Sync po/docbooks with svn 2022-12-03 02:15:33 +00:00
l10n daemon script
0c6d62a2ec 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-12-03 01:55:31 +00:00
Natalie Clarius
8ebe9c7981 kconf_update: replace cascaded by zero-cornered placement 2022-12-02 14:05:32 +00:00
Natalie Clarius
b6412454c2 placement: remove cascaded placement policy
becomes redundant with cascade-if-covering for zero-cornered placement
2022-12-02 14:05:32 +00:00
Natalie Clarius
b08ef54727 placement: apply cascade-if-covering to placement modes: random, centered, zero-cornered, under mouse 2022-12-02 14:05:32 +00:00
Natalie Clarius
274922caaf placement: cascade if window would completely overlap another window
BUG: 58063
2022-12-02 14:05:32 +00:00
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
2022-12-02 10:58:05 +00:00
Vlad Zahorodnii
0047dfc596 backends/wayland: Drop WaylandBackend::getOutputAt()
It's unused.
2022-12-02 08:49:04 +00:00
Xaver Hugl
00b21992c4 backends/drm: don't leak gbm surface if creating egl surface fails 2022-12-02 08:28:46 +00:00
l10n daemon script
07a2ef4273 GIT_SILENT Sync po/docbooks with svn 2022-12-02 03:11:46 +00:00
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"
2022-12-02 02:02:52 +00:00
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.
2022-12-01 16:46:27 +00:00
Marco Martin
68517a5806 remove unused member variable 2022-12-01 16:59:27 +01:00
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
2022-12-01 14:39:22 +00:00
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>
2022-12-01 12:31:02 +00:00
Nicolas Fella
5cab7c79b4 Revert "plugins/idletime: Adjust the poller to deprecation of simulateUserActivity()"
simulateUserActivity was un-deprecated

This reverts commit 4610aaf614.
2022-12-01 10:24:11 +00:00
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
2022-12-01 09:56:15 +00:00
Nicolas Fella
a6a022f00f Port away from deprecated KWindowSystem API 2022-12-01 08:08:54 +00:00
l10n daemon script
1d640cc013 GIT_SILENT Sync po/docbooks with svn 2022-12-01 02:08:42 +00:00
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"
2022-12-01 01:50:26 +00:00
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.
2022-11-30 11:20:39 +00:00
l10n daemon script
a93ccbd7e7 GIT_SILENT Sync po/docbooks with svn 2022-11-29 02:12:05 +00:00
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"
2022-11-29 01:51:31 +00:00
l10n daemon script
f0660a01dc GIT_SILENT Sync po/docbooks with svn 2022-11-28 02:12:17 +00:00
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.
2022-11-27 11:30:03 +00:00
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.
2022-11-27 11:30:03 +00:00
l10n daemon script
2fd9cc4fc1 GIT_SILENT Sync po/docbooks with svn 2022-11-27 02:05:46 +00:00
Luigi Toscano
c18a0b80bf Install translated documentation from po/ too
... when KDocTools is found.
2022-11-27 00:05:59 +01:00
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.
2022-11-26 13:54:22 +02:00
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.
2022-11-26 11:36:02 +00:00
l10n daemon script
613cedcc15 GIT_SILENT Sync po/docbooks with svn 2022-11-26 02:06:16 +00:00
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"
2022-11-26 01:50:13 +00:00
Vlad Zahorodnii
7a1f97754f wayland: Simplify implementation of xdg_toplevel.set_minimized 2022-11-25 07:43:45 +00:00
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.
2022-11-25 07:43:45 +00:00
l10n daemon script
777c2bdb18 GIT_SILENT Sync po/docbooks with svn 2022-11-25 02:13:15 +00:00
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"
2022-11-25 01:51:47 +00:00
Vlad Zahorodnii
9e97c7383c Add support for DecoratedClient::windowClass() 2022-11-24 10:18:05 +00:00
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.
2022-11-24 09:34:53 +00:00
l10n daemon script
c1ecce9ec3 GIT_SILENT Sync po/docbooks with svn 2022-11-24 02:08:12 +00:00
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"
2022-11-24 01:51:45 +00:00
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.
2022-11-23 20:10:59 +00:00
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.
2022-11-23 20:10:59 +00:00
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
2022-11-23 13:31:00 +00:00
Nicolas Fella
f764861157 Rename Touch Screen KCM to Touchscreen Gestures
To avoid a conflict with the new Touchscreen KCM under input devices
2022-11-23 10:47:54 +00:00
l10n daemon script
08173dbb06 GIT_SILENT Sync po/docbooks with svn 2022-11-23 02:20:01 +00:00
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.
2022-11-22 16:28:38 +00:00
Xaver Hugl
6bb4ebdf04 backends/drm: set hdr metadata to 0
Otherwise we might have broken colors from leftover state of other compositors
2022-11-22 15:41:21 +00:00
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.
2022-11-22 13:40:09 +00:00