23036 Commits (938b8c87a114992325740cd934fb1f44fae87897)
 

Author SHA1 Message Date
Vlad Zahorodnii 5f15f3b47c wayland: Move output-management-v2 implementation in wayland/
Since both output-management-v2 protocol implementation and the rest of
kwin live in the same place and the fact that kde-output-management-v2
is very plasma specific, we can move Platform::requestOutputsChange() to
the implementation of kde-output-management-v2 protocol, it simplifies
the code a bit and improve code encapsulation.

In order to further simplify kde-output-management-v2 protocol, this
change alters the behavior of the protocol so an output configuration
can be applied only once, which is a very reasonable behavior.
2 years ago
Vlad Zahorodnii a9267bdcdc plugins/qpa: Assume there's current context when swapBuffers() is called
It can happen that the window is resized after makeCurrent() and before
swapBuffers(). In that case, context()->makeCurrent() will re-create the
fbo and qpa will present an uninitialize fbo.

Assume that there's current context when swapBuffers() is called. Other
QPA already do this, for example, QtWayland. This would make the
behavior of our qpa consistent with QtWayland and fix resizing the fbo
in swapBuffers().

In general, kwin should be able to handle size mismatch between the fbo
and QWindow, but as an extra hardening measure, we could forbid resizing
windows during rendering, this can be done later though.
2 years ago
Xaver Hugl 11ad5fea9a effects/slide: apply slide setting for docks to applet panels
Otherwise they detach from panels, which looks weird
2 years ago
Volker Krause 835dc7c818 Explicitly mark DrmObject as non-copyable
It implicitly already is not copyable, due to the unique_ptr member.
However, Qt6 moc code isn't realizing that and fails to compile the
DrmPlane Q_GADGET sub-class of this.
2 years ago
Xaver Hugl 6cdb1e6f64 backends/drm: add stricter checks for direct scanout
Buffers with implicit modifiers from another GPU must not be imported, as
the layouts may not be compatible.
For buffers with incompatible modifiers, direct scanout can also be rejected
early, saving some computational power.

BUG: 457851
2 years ago
Mathieu Jobin 3ac5116487 Update URL to theme-details on develop.kde.org 2 years ago
Xaver Hugl f4e917f734 backends/drm: release buffers for disabled objects
BUG: 456686
2 years ago
ivan tkachenko a6cc4b557b
debug console: Sort windows tree model
Now you can see properties like 'minimizable' and 'minimized' literally next
to each other, not on the other end of a view.
2 years ago
Xaver Hugl ca7a2cdef6 plugins/nightcolor: use FileDescriptor class 2 years ago
Xaver Hugl 9c4f3d447f debug console: use FileDescriptor class 2 years ago
Xaver Hugl 1b1e0ab95f wayland/drmlease: use FileDescriptor class 2 years ago
Xaver Hugl 1464028934 backends/drm: use FileDescriptor class for drm buffer fds 2 years ago
Xaver Hugl 6cd4d69644 dmabuf: make use of FileDescriptor class 2 years ago
Xaver Hugl cb8be232a1 utils: introduce helper class for file descriptors 2 years ago
Vlad Zahorodnii ca6f84dad6 Rework how wl_output and kde-output-device are created
Create wl_outputs only for outputs in Workspace.
2 years ago
Vlad Zahorodnii c7293d95e0 backends/{x11,virtual}: Allocate render data for all available outputs
This makes the behavior of virtual and x11 backend consistent
with the drm and the wayland backend and reduces the number of users of
the Platform::outputEnabled signal.
2 years ago
Mikhail Zolotukhin f6054863e1
window: expose "output" property
This allows it to be used from QML KWin Script or via property() C++
call.

This is useful to be able to use client area function with pointers
API without falling back to VirtualDesktop X11 ids from scripts.
2 years ago
Vlad Zahorodnii 6982c506a5 wayland: Setup window management when starting to manage X11 window
We don't need to wait until the window is ready for painting in order to
create a plasma window, in fact, quite the opposite is desired. It's
better if the plasma window is created in manage() so the task manager
displays the corresponding item even if the window is not showing up for
whatever reason.
2 years ago
Natalie Clarius 979dddb4f1 Fix wrong center snap zone value
Snap to center was mistakenly using the zone size for snap to window.
2 years ago
Vlad Zahorodnii 4d1c82d111 Make ColorManager use outputs managed by Workspace
This removes one more dependency on Platform::enabledOutputs() and
Workspace knows better about what outputs are managed.
2 years ago
Vlad Zahorodnii b9c00ba90d Create color manager after workspace 2 years ago
ivan tkachenko 3197c7892f
effects/{private,desktopgrid,overview}: Guard against function execution when component is being destroyed
Accept drop events correctly and use returned value (action) of
Drag.drop() to guard against the situation where the delegate is about
to be destroyed.

This does not fix any bugs per se, except suppressing a warning about
undefined targetScreen being printed to a console on every window dropped
onto a different virtual desktop.
2 years ago
Vlad Zahorodnii c3f9aab329 plugins/screencast: Allow including cursor in window screencasts
BUG: 452960
2 years ago
Blake Sperling 1a475a73de effects: Improve animation durations and easing curves in Windowheap-based effects
This commit doubles the animation durations for WindowHeap-based effects
(Overview, Present Windows, and Desktop Grid) and uses the OutCubic easing
curve for their opening and closing animations. This makes them feel smoother
and more comfortable.

BUG: 455521
BUG: 448538
FIXED-IN: 5.26
2 years ago
Xaver Hugl 9f41620b77 backends/drm: don't crash if beginFrame fails
CCBUG: 455532
2 years ago
ivan tkachenko 8feaa8922a
effects/{private,desktopgrid,overview}: Clean up QML/JS code and bump imports 2 years ago
ivan tkachenko f892c9510e
effects/colorpicker: Fix off-by-one error during coordinates conversion
Due to this bug color picker used to not only select one pixel higher
than it should (which is quite negligible), but also returned garbage
value for the topmost row of pixels (when you push the cursor against
the top edge of the screen).

FIXED-IN: 5.24.7, 5.25.5, 5.26
2 years ago
ivan tkachenko 2fa4a4c4e9
effects/colorpicker: Factor out effects->renderTargetRect() constant 2 years ago
Kai Uwe Broulik 90688b11f6 desktopbackgrounditem: Prefer desktop window with size matching output
Conky monitor's floating popup is of type desktop, too, and when it
gets picked over Plasma's desktop window, visual artifacts can be
observed behind e.g. the overview effect.
2 years ago
Vlad Zahorodnii 3934d1d0f2 wayland: Remove surface() check in Window::setupWindowManagement()
At the moment, an Xwayland window can be marked ready for painting even
though the corresponding wl_surface is missing. If that happens,
Window::setupWindowManagement() will fail to create a plasma window and
the task manager won't display the corresponding item.

As a short-term solution, remove the surface() check. It's not really
needed after all. For example, if it takes too long to start an app or
it doesn't show up at all, we still want to see a task manager item.

In long-term, kwin probably needs to take into account both xsync and
whether wl_surface has been associated, which is more complex.

BUG: 444325
2 years ago
Vlad Zahorodnii e24ee60bb2 autotests: Remove Test::initWaylandWorkspace()
It reduces the amount of boilerplate code and makes startup sequence in
autotests similar to the one in kwin_wayland.
2 years ago
Kai Uwe Broulik 84bde36cc0 Make EGL a REQUIRED dependency
Target kwin links against EGL::EGL unconditionally.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2 years ago
David Edmundson c5e40c9687 Use correct geometry in GTKShowWindowMenu 2 years ago
David Edmundson 2854d59da4 Avoid rounding on X11 configure events
As per the comment this is in kwin logical space not X11 space,
therefore results should be floating.
2 years ago
Vlad Zahorodnii c214801a23 wayland: Simplify geometry setup code in InternalWindow
This weird setup code was needed to work around buggy geometry code a
while ago.

It fixes the debug console getting offscreen.
2 years ago
Volker Krause b01b13353b Remove QDesktopWidget use in WorkspaceWrapper for Qt6
This is basically a continuation of 73973641.
2 years ago
Xaver Hugl 039dd96f8d xwaylandinterface: move global to Application 2 years ago
Xaver Hugl 53815e2b28 databridge: move global to Xwayland 2 years ago
Xaver Hugl fde7d44941 tabletmodemanager: move global to Application 2 years ago
David Edmundson 49d80162c5 [effects/blend] Fix opacity value of old window
We animated from 1.0 to 0.0, however this does not take into account
that a previous effect may also have adjusted the opacity.

We should multiply accordingly.
2 years ago
David Edmundson 3b26936019 Ammend documentation for prePaintScreen wrt openGL context 2 years ago
l10n daemon script fbec3a1f80 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
Nicolas Fella ed829eb5ad Remove unused includes 2 years ago
Xaver Hugl 41c23fa70e effects/windowview: always set the mode when activating with gestures
Otherwise the mode uses is defined by the last time the effect was used and
thus not very predictable
2 years ago
Nicolas Fella 7744a941ce Fix warning about lambda capture
C++20 doesn't like capturing 'this' via '='
2 years ago
Volker Krause 86abf8dbc3 Use a non-deprecated enum value for "no key" 2 years ago
Nicolas Fella 9a34ebbffc [x11] Refactor output updates
The current code has multiple index-based for loops iterating over items we get from XCB

Dealing with raw indices is error-prone and not pretty

By using std::span we can replace these loops with range-based for loops

Also remove some intermediate containers that aren't neccesary
2 years ago
Arjen Hiemstra 77af052f9d WindowView: Add "show windows from class on current desktop" mode
We currently have "windows from current desktop" and "windows from
class" but not one combining both. This adds that mode along with a
(default empty) shortcut and border activation.

BUG: 413342
2 years ago
Xaver Hugl 02f55e0e40 wayland: print warning about automatic backend selection
BUG: 457491
2 years ago
ivan tkachenko aaa5e6fee3
effects/private: Fix ExpoLayout reflowing in Desktop Grid while dragging
This fixes makes ExpoLayout independent of its position on a screen,
which in turn stops it from randomly reflowing while dragging a virtual
desktop across desktop grid. It also removes an unwanted animation at
the end of activation of desktop grid: desktops move in place and then
windows proceed to adjust themselves resulting in a double animation.

FIXED-IN: 5.25.5 5.26
2 years ago