24654 Commits (e63a3f93b56c00a9b3f5b8193f4631368443bb06)
 

Author SHA1 Message Date
l10n daemon script c77b5909de GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script c987f5da82 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"
1 year ago
Nicolas Fella 8c9c45b8f1 Add option to do nothing when activating window on another desktop
Some users prefer this over the existing options. It e.g. allows to open
a bunch of links and only then switch to the browser on a different desktop

BUG: 464283
1 year ago
Nicolas Fella 653681ac40 Allow activating windows on other desktops regardless of focus stealing protection
Currently, on X11, when activating a window that is not on the current desktop we allow this
only if focus stealing protection is set to none.

If any focus stealing protection is set then activation is denied. That behavior is
unintiutive to the user. When I e.g. click on a notification from a chat app I expect
something to happen, regardless of focus stealing protection.

Remove the special handling of windows on different desktops and only apply the usual
focus stealing prevention checks (based on timestamps etc). This also matches the behavior
on Wayland.
1 year ago
Vlad Zahorodnii c8c021a780 Remove some unused functions
Format querying logic has been moved to EglDisplay.
1 year ago
Vlad Zahorodnii b9ba12d02e wayland: Reimplement wl-drm
As of nowadays, most clients have switched to the linux-dmabuf protocol,
except Xwayland, which still needs the wl-drm protocol.

On the other hand, we would like to unify some buffer handling code.
There are a few options:

- drop the support for wl-drm protocol. Not doable, because Xwayland
  still needs it, even though it uses the linux dmabuf feedback protocol
  too
- re-implement the wl-drm protocol
- re-implement the minimal part of the wl-drm protocol needed by
  Xwayland

This change goes after the third option. Only the node name and the
capabilities will be sent. The buffer factory requests are not
implemented, but they can be if we discover that some clients need them.
1 year ago
l10n daemon script 66ca843946 GIT_SILENT Sync po/docbooks with svn 1 year ago
Marco Martin ef92eedce2 screencast: Base the frame skippin on max_framerate
the fixed framerate apparently needs to br 0/1 and to control
the actual framerate need to set the max one
1 year ago
Aleix Pol 226d8c0a3b screencast: Ensure we respect the negotiated framerate
Discards frames sent under the timeframe that was negotiated with the
client. This allows clients to just request the frames that they should
be able to compute.
1 year ago
Aleix Pol b9f9617fc7 screencast: Offer the real framerate range we have available
When setting up a stream, make sure we are offering the framerate that
the source has.
1 year ago
l10n daemon script 4049dfa2a5 GIT_SILENT Sync po/docbooks with svn 1 year ago
Andreas Cord-Landwehr 230c5cc4f7 Include missing cmath header 1 year ago
Nate Graham d25b9ebdb1 kcms/rules: improve text for window rules with descriptions
In particular, explain what all of the the focus stealing prevention
and protection settings do.

My understanding of the different modes comes from reading the code
and code comments in activation.cpp.

CCBUG: 458976
1 year ago
Xaver Hugl b14f7959eb backends/drm: add another multi gpu fallback
With the dmabuf multi-gpu path, a buffer is imported to the secondary GPU
and presented directly, but importing a buffer that's usable for scanout
is not possible that way on most hardware. To prevent CPU copy from being
needed in those cases, this commit introduces a fallback where the buffer
is imported for rendering only, and then copied to a local buffer that's
presented on the screen.

CCBUG: 452219
CCBUG: 465809
1 year ago
Xaver Hugl 7bb56eb363 platformsupport/scenes/opengl: move egl dmabuf format queries to KWinEglDisplay 1 year ago
Xaver Hugl 94ac8d235b platformsupport: remove initBufferConfigs
Instead, rely on EGL_KHR_no_config_context everywhere except the standalone x11 backend
1 year ago
Xaver Hugl 57c7eccb32 libkwineffects: extract most useful kwinglplatform bits to a separate class 1 year ago
Xaver Hugl ab7286fad1 platformsupport/scenes: move egl context into a separate class 1 year ago
Xaver Hugl 48fb07b367 platformsupport/scenes: move egldisplay code into a helper class 1 year ago
Xaver Hugl acf38d364b backends/drm: add linear dmabuf multi gpu fallback 1 year ago
Xaver Hugl 3c37717121 backends/drm: add more logging for multi gpu 1 year ago
l10n daemon script a8851d8e64 GIT_SILENT Sync po/docbooks with svn 1 year ago
Vlad Zahorodnii cae64719ec Install kwin_export.h in kwin directory
It allows to build a third party effect. In addition to that, it makes
sense to keep kwin things in a kwin directory.
1 year ago
Noah Davis 616783d892 Blacklist Spectacle for all window open/close effects
Spectacle needs to be blacklisted in order to stay out of its own
screenshots.

BUG: 467890
BUG: 463105
CCBUG: 465784
1 year ago
Ismael Asensio d4d5e3b7a8 kcm/rules: Improve "Ignore Geometry" property UI
This property is not used on Wayland because windows are
already not allowed to set their own geometry, so let's
hide it from the UI.

Also update the tooltip to explicitly state which properties
the `Ignore Geometry` property does affect on X11

BUG: 431265
FIXED-IN: 6.0
1 year ago
Nate Graham afdf3ad106 kcms/rules: show explanatory text with contextual help button, not tooltip
Tooltips don't work when using the system with touch, and these here are
also a bit annoying with a pointing device since they appear instantly on
hover and take up a lot of space, so they unexpectedly pop up and cover
UI elements a lot.

To improve this, use a KCM.ContextualHelpButton inline in the list items
to show the explanation when clicked or hovered, just like we do in most
other places in other KCMs.

To make this work, the internal line breaks in the explanatory text had
to be removed to make the text flow properly with an arbitrarily-sized
tooltip.
1 year ago
Vlad Zahorodnii e2d690e0aa Remove unused stuff in wayland_server.{h,cpp} 1 year ago
Vlad Zahorodnii 076fdebebd Revert "scene: Avoid creating SurfaceItem for Xwayland's cursor surfaces"
This reverts commit b549776b68.
1 year ago
Vlad Zahorodnii f286c311d5 Revert "cursorsource: fix scaling with Xwayland"
This reverts commit 81571203f1.
1 year ago
Vlad Zahorodnii 0edf264947 Stop setting XCURSOR_THEME and XCURSOR_SIZE envvars 1 year ago
Vlad Zahorodnii 2d7bd94f16 Remove some unused includes 1 year ago
Vlad Zahorodnii a08857cfd7 Drop OpenGLBackend::supportsSwapBuffersWithDamage()
It's unused.
1 year ago
Vlad Zahorodnii 17f4cde9af Drop kwineglext.h
EGL_WL_bind_wayland_display definitions are needed only in one cpp file,
so move them there instead.

We need to duplicate EGL_WL_bind_wayland_display definitions because
libepoxy doesn't define them for us.
1 year ago
Vlad Zahorodnii 43b7d2e457 Remove EGL_EXT_image_dma_buf_import and EGL_EXT_image_dma_buf_import_modifiers definitions
libepoxy provides them to us.
1 year ago
Vlad Zahorodnii 466868f5d4 wayland: Refactor linux-dmabuf buffer management
At the moment, the render backend provides its specific implementation
of LinuxDmaBufV1ClientBuffer. This has some of its limitations. For
example, due to the strong coupling, compositing restarts must be
handled carefully. It's hard to have a generic code path to import
dmabufs, which would be nice to have in order to unify graphics buffer
allocation across various backends; currently, it's all scattered.

To make the code simpler, this change drops the commented out YUV import
code path for now. Given that Mesa implicitly handles it, the need for
it is no longer so urgent.
1 year ago
l10n daemon script 5c7e53d635 GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script d1f718fe6a GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script 2538243765 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"
1 year ago
Xaver Hugl 6f722954a0 backends/drm: set the scaling mode to none
Setting it to "Full Aspect" causes some problems with amdgpu, breaking switching
the refresh rate between modes

BUG: 468235
1 year ago
l10n daemon script 565356e7e3 GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script 81f62b9d4f 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"
1 year ago
Vlad Zahorodnii 4691086389 wayland: Break xdg-foreign connection when window is closed
When a window is closed, we don't want to listen for the
WaylandServer::foreignTransientChanged signal anymore as it can lead to
a crash.
1 year ago
l10n daemon script cd812fab0f GIT_SILENT Sync po/docbooks with svn 1 year ago
David Edmundson 023fc220a1 wayland: Update pointer state before ending the drag
ending a drag will update focus. Kwin explicitly resets it to whatever
is now under the mouse now that the implicit grab has ended.

This means no-one sends a pointer up.

Clients (xwayland) don't automatically make leave events count as a
mouse up, because typically you don't get a leave event whilst we have a
grab.

Xwayland also can't track the status of the wl_datasource as it didn't
use it.

This patch shouldn't affect any wayland clients as we don't send a frame event
until the focus changes which is after the dnd_finished events.

BUG: 465444

Testing done:
 - dragged firefox under xwayland tabs out from firefox to the desktop
 - confirmed a new window appeared
1 year ago
Ismael Asensio 78643b958f kcms/rules: Import kcmutils to provide ConfigModule attached property
On KF5 it was provided by the module `kcm`.
1 year ago
Aleix Pol f35afcd7ae screencast: Still set the size to 0 for cursor-only frames
Otherwise OBS glitches (and so does KPipeWire-based software)
1 year ago
l10n daemon script 20e858b2fe GIT_SILENT Sync po/docbooks with svn 1 year ago
l10n daemon script 1cb5614fc1 GIT_SILENT Sync po/docbooks with svn 1 year ago
Aleix Pol Gonzalez ef6612ff77 screencast: Improve how we communicate that a frame has just cursor info
Set the SPA_CHUNK_FLAG_CORRUPTED flag to tell clients to ignore the frame.

See https://github.com/obsproject/obs-studio/issues/8630
1 year ago
David Edmundson f03af5eff5 libkwineffects: Set format on the main OffscreenQuickView
When showing the window RHI will realise the window has no underlying
platform window and create a temporary offscreen surface, different from
the offscreen surface we'll eventually be rendering into. This will use
the format of the main window.

If this offscreen surface format does not match the format of the
context we can fail in makeCurrent calls.
1 year ago