Bug 390366

Summary: Cube Slide does not work on wayland
Product: [Plasma] kwin Reporter: Fabian Vogt <fabian>
Component: effects-window-managementAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: bernie, bugseforuns, vlad.zahorodnii
Priority: NOR Flags: mgraesslin: Wayland+
mgraesslin: X11-
Version: 5.12.5   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 5.15.0

Description Fabian Vogt 2018-02-13 09:36:39 UTC
The animations for virtual desktop transitions (e.g. the cube) do not work on wayland.
The cube itself works fine and can be used to switch desktops.
Comment 1 Martin Flöser 2018-02-13 16:00:08 UTC
interesting, there shouldn't be any difference there.
Comment 2 Martin Flöser 2018-02-13 16:01:43 UTC
The slide effect works for me, but Cube slide is clearly broken.
Comment 3 Fabian Vogt 2018-03-20 07:49:35 UTC
I just found that the effect works when plasmashell isn't running.

So I suspect it's related to the drawing of the desktop.
Comment 4 Bernie Innocenti 2018-05-14 15:47:38 UTC
Confirmed on Fedora 28 with kwin 5.12.5.
Comment 5 Vlad Zahorodnii 2018-08-25 21:48:55 UTC
(In reply to Fabian Vogt from comment #3)
> I just found that the effect works when plasmashell isn't running.
> 
> So I suspect it's related to the drawing of the desktop.

For me, it doesn't work even when plasmashell is not running:

https://www.youtube.com/watch?v=d8rRuUPbIDQ

on the video:
* Kate is an X client
* Dolphin is a Wayland client

I find it very interesting that rotation angles, and translation
values look the same for X and Wayland clients and yet, only X
clients are slided.
Comment 6 Igor Poboiko 2018-09-17 19:30:36 UTC
Git commit 1115ca84902ad75f44a75df449f134795e3f0f47 by Igor Poboiko.
Committed on 17/09/2018 at 19:27.
Pushed by poboiko into branch 'master'.

[effects/cubeslide] Fix "sticky" windows detection on Wayland

Summary: This is second part of {D15175}, and aimed at fixing Bug 390366.
The problem was that effect relied on isManaged() to detect OSDs and notifications, that should be painted on top of the cube. On Wayland, the desktop window itself is not managed, which made it "sticky".

Instead we use isSpecialWindow() check to explicitly make notifications and OSDs sticky.
It still requires fixing Plasma::Dialog, since it does not set isSpecialWindow() flag correctly.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D15496
FIXED-IN: 5.15.0

M  +1    -1    effects/cube/cubeslide.cpp

https://commits.kde.org/kwin/1115ca84902ad75f44a75df449f134795e3f0f47