Bug 402852 - User actions popup is not seen as a popup
Summary: User actions popup is not seen as a popup
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL: https://phabricator.kde.org/D17981
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-04 13:09 UTC by Vlad Zahorodnii
Modified: 2019-01-05 12:46 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:
mgraesslin: Wayland+
mgraesslin: X11-
mgraesslin: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vlad Zahorodnii 2019-01-04 13:09:30 UTC
SUMMARY
This can "false-trigger" scale or glide effect.

STEPS TO REPRODUCE
1. Enable Scale effect;
2. Open user actions popup.

OBSERVED RESULT
The popup is animated by the scale effect.

EXPECTED RESULT
The popup is not animated by the scale effect.

SOFTWARE/OS VERSIONS
KDE Plasma Version: 5.14.80
KDE Frameworks Version: 5.53
Qt Version: 5.12
Comment 1 David Edmundson 2019-01-04 13:57:59 UTC
That's going to be interesting to solve properly.

wl_shell_surface.set_popup  requires a parent.
Sending a null value isn't allowed by the spec.

Same if we move for XDGShell. xdg-foreign (in it's current form) doesn't help either.

The only other option is having the QPA meddle with shellClient directly, which is rather messy.
Comment 2 Martin Flöser 2019-01-04 16:27:47 UTC
It's an internal window. We can just access the QWindow.
Comment 3 David Edmundson 2019-01-04 22:04:49 UTC
That's not the issue. Qmenu is already a popup in the qwindow. But our qpa doesnt send this to the shell client.
Comment 4 Martin Flöser 2019-01-05 07:20:23 UTC
Our ShellClient can access the QWindow to evaluate whether it's a popup. We don't need to go over the Wayland protocol.
Comment 5 Martin Flöser 2019-01-05 10:12:05 UTC
See: https://phabricator.kde.org/D17981
Comment 6 Martin Flöser 2019-01-05 12:46:13 UTC
Git commit 6b3e55d6f515167e4c753788485043d831859c8b by Martin Flöser.
Committed on 05/01/2019 at 12:45.
Pushed by graesslin into branch 'master'.

Implement isPopupWindow for internal windows

Summary:
Just accessing Qt::Popup WindowFlag.

Test Plan: Not tested for the described problematic case

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17981

M  +16   -0    autotests/integration/internal_window.cpp
M  +3    -0    shell_client.cpp

https://commits.kde.org/kwin/6b3e55d6f515167e4c753788485043d831859c8b