Commit graph

23703 commits

Author SHA1 Message Date
Vlad Zahorodnii
182026a4bd backends/wayland: Use linux-dmabuf directly
The main motivation behind this change is to get rid of the dependency
on EGLSurface so the order in which output layers are presented or
updated doesn't matter.

At the moment, if both the cursor and the primary layers are updated
within same frame, the read and draw surfaces in present() will be wrong
for the primary layer.

With fbos, the read and draw surfaces won't matter.
2022-12-09 15:23:27 +02:00
David Redondo
cb9ffbcd01 Remove selectionCleared and sendClearSelection from datadevice and friends
Having both selectionChanged and selectionCleared as well as
sendSelection and sendClearSelection complicates things. API users
have to connect to both signals, internally the methods have logic
to call themselves but in the end do the same as the protocols only
know send_selection.
2022-12-09 10:34:08 +01:00
l10n daemon script
dbcbba5fac GIT_SILENT Sync po/docbooks with svn 2022-12-09 02:05:09 +00:00
Natalie Clarius
0053c782a1 quick tiling: find target output by direction 2022-12-08 18:59:44 +00:00
Natalie Clarius
67c558286f useractions: add shortcuts for {switch to/window to} screen {direction}
BUG: 453038
2022-12-08 18:59:44 +00:00
Natalie Clarius
084b88522c workspace: get output in direction relative from reference
BUG: 451286
BUG: 453038
2022-12-08 18:59:44 +00:00
Vlad Zahorodnii
52f6829d6c backends/x11: Introduce cursor layers 2022-12-08 17:37:36 +00:00
Vlad Zahorodnii
3a861640c2 backends/wayland: Simplify initialization of primary layer
Neither wl_egl_window_create() nor eglCreatePlatformWindowSurfaceEXT()
are likely to fail. If they fail, it's okay-ish to let kwin crash.
2022-12-08 17:37:36 +00:00
Vlad Zahorodnii
dbd574ec05 backends/wayland: Introduce cursor layers
It's a necessary step to let kwin repaint the cursor from Compositor.

Unfortunately, it also means that we need to add more (temporary) code
to paint the cursor in backends.
2022-12-08 17:37:36 +00:00
l10n daemon script
1c43571fe1 GIT_SILENT Sync po/docbooks with svn 2022-12-08 02:20:53 +00:00
Vlad Zahorodnii
35a99ec9ad Add explicit output cursor manipulation api
Currently, output backends track the cursor behind the scenes. This
results in some amount of code duplication, for example the handling of
hidden cursors, every backend handles in its own unique way, some don't
do it correctly. Another issue is that output backend interact with
other components behind the back. This can be a problem for tasks such
as backing the cursor with an output layer.

This change introduces explicit output cursor manipulation APIs in the
Output class. There's a good chance that it's going to be revised more
in the future as part of streamlining output layer manipulation apis.

With the proposed changes, the workspace would need to call
Output::setCursor() or Output::moveCursor() to set/unset or move the
cursor, respectively.
2022-12-07 12:05:26 +02:00
Nicolas Fella
6e0012a3c9 Adapt to deprecated KWindowSystem API 2022-12-07 09:50:26 +00:00
Vlad Zahorodnii
f191efb39e backends/drm: outputLayer -> primaryLayer
It makes terminology consistent.
2022-12-07 08:59:41 +00:00
l10n daemon script
47e78b5463 GIT_SILENT Sync po/docbooks with svn 2022-12-07 02:15:25 +00:00
l10n daemon script
9e82887160 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-07 01:53:13 +00:00
Xaver Hugl
3d9ccaf742 backends/drm: fix modifier check
If we force a linear modifier, the modifier list can't match up with the
display, which causes the surface to be recreated every frame.

CCBUG: 462625
2022-12-06 19:55:19 +00:00
Vlad Zahorodnii
ca7f7a42c8 wayland: Make kwin_wayland create virtual outputs
At the moment, we rely on placeholder output getting created, but there
are cases where it's desired to spin kwin with virtual outputs so you
could take screenshots and things as such.
2022-12-06 17:46:49 +00:00
Vlad Zahorodnii
cdda8593d8 backends/virtual: Fix KWIN_WAYLAND_VIRTUAL_SCREENSHOTS
Image path is incorrectly specified in the EGL backend. Also, `%s` must
be `%2`.
2022-12-06 15:26:07 +00:00
Xaver Hugl
bd26f57e18 backends/drm: allow using both adaptive sync and tearing at the same time
The driver will translate that to adaptive sync in the vrr range, and tearing
above it
2022-12-06 11:49:59 +00:00
Xaver Hugl
7c3489b1a5 wayland/tearingcontrol: actually create the d pointer object 2022-12-06 11:49:59 +00:00
Xaver Hugl
b3e977f416 backends/drm: add buffer format to logging 2022-12-06 10:13:38 +00:00
l10n daemon script
f1440ebca1 GIT_SILENT Sync po/docbooks with svn 2022-12-06 02:04:59 +00:00
l10n daemon script
30f73e7b03 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-06 01:49:30 +00:00
Vlad Zahorodnii
fdea693da5 wayland: Implement xwayland-shell-v1
As explained in [1], WL_SURFACE_ID is racy because wayland aggressively
reuses object ids. The xwayland-shell-v1 protocol intends to fix that by
two things:

* associating a serial number with each X11 window. This is to avoid
  potential XID reuse
* referring to the wayland surface by the wl_surface rather than
  specifying an object id

Unfortunately, we will have to maintain both legacy WL_SURFACE_ID and
WL_SURFACE_SERIAL for quiet some time until most instances of Xwayland
support the xwayland-shell-v1 protocol [2].

[1] https://gitlab.freedesktop.org/xorg/xserver/-/issues/1157
[2] https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/163
2022-12-05 17:09:01 +02:00
Xaver Hugl
909378e6fd kcmkwin/kwincompositing: add option to toggle tearing on Wayland 2022-12-05 12:52:18 +00:00
Xaver Hugl
b85550ab41 backends/drm: use tearing presentation where possible and appropriate 2022-12-05 12:52:18 +00:00
Xaver Hugl
b261050be1 wayland: implement tearing_control_v1 2022-12-05 12:52:18 +00:00
l10n daemon script
1a97d384f1 GIT_SILENT Sync po/docbooks with svn 2022-12-05 02:09:55 +00:00
l10n daemon script
98951840ca 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-05 01:51:57 +00:00
Vlad Zahorodnii
b4441cd502 backends/x11: Start reading host X11 events in initialize()
There's no reason to wait until the workspace is created.
2022-12-04 11:29:05 +00:00
Vlad Zahorodnii
28baea1c29 backends/x11: Simplify backend initialization 2022-12-04 11:29:05 +00:00
l10n daemon script
b18a3b3625 GIT_SILENT Sync po/docbooks with svn 2022-12-04 02:08:51 +00:00
l10n daemon script
2f49029e40 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-04 01:50:24 +00:00
Hongfei Shang
ebafdc4400 [x11] root window support _NET_WM_WINDOW_OPACITY
java gui will check this property on root window.

see:
6b55ef3b58/src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java (L328)

Signed-off-by: Hongfei Shang <shanghongfei@kylinos.cn>
2022-12-03 17:09:18 +00:00
Xaver Hugl
09a41d3851 workspace: slightly simplify tilemanager interactions 2022-12-03 15:33:23 +00:00
Vlad Zahorodnii
7939352fb7 backends/x11: Provide a cursor per output
The main motivation behind this change is to allow setting the cursor
per output, which eases up implementing things such as cursor output layers.

It also has another advantage - output related code is more
encapsulated. Furthermore, we could decouple output backends from Cursor.
2022-12-03 15:17:49 +00:00
Xaver Hugl
6e6caa1021 workspace: move desktopResized after adding new outputs
Otherwise it crashes because the tile manager on the added outputs don't
exist yet

BUG: 462568
2022-12-03 15:42:40 +01:00
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