Bug 401172 - Widget Explorer doesn't hides on focus lost on Wayland
Summary: Widget Explorer doesn't hides on focus lost on Wayland
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-wayland (show other bugs)
Version: master
Platform: Neon Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-11-18 17:13 UTC by Alexander Mentyu
Modified: 2019-12-22 19:06 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.66


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Mentyu 2018-11-18 17:13:11 UTC
SUMMARY
Widget explorer hides after click on desktop on X - but not on Wayland

One of this bug implications - open widgets explorer and immediately after it open application launcher - notice app launcher is opened behind widgets explorer

SOFTWARE/OS VERSIONS
Operating System: KDE neon Developer Edition
KDE Plasma Version: 5.14.80
KDE Frameworks Version: 5.53.0
Qt Version: 5.11.2
Kernel Version: 4.15.0-39-generic

ADDITIONAL INFORMATION
Possible related bugs:
https://bugs.kde.org/show_bug.cgi?id=369867
https://bugs.kde.org/show_bug.cgi?id=379635
Comment 1 Patrick Silva 2019-01-22 16:46:51 UTC

*** This bug has been marked as a duplicate of bug 398669 ***
Comment 2 Patrick Silva 2019-01-22 16:48:17 UTC
ops, it's not duplicate.
Just related.
Comment 3 David Edmundson 2019-12-22 11:37:11 UTC
Git commit d25bc3ce2138779e1b14ca0f7463396299b3ee1c by David Edmundson.
Committed on 22/12/2019 at 11:37.
Pushed by davidedmundson into branch 'master'.

Sync QWindow flag WindowDoesNotAcceptFocus to wayland plasmashell interface

Summary:
Currently the widget explorer relied on some QML code calling
KWindowSystem::forceActiveWindow which on plasma implicitly set this
hint.

This works for the first show, but the order of events is somewhat
unreliable. It's invoked from QML when the window is ready, but for the
second show this is before the wl_surface is created and it no-ops.

By syncing the flags in applyType() we can guarantee we call this both
when setFlags is called and when the wl_surface is created in the
correct order.
Related: bug 415124

Test Plan:
Ran plasmashell
Opened widget explorer twice
Had focus each time

Reviewers: #kwin, #plasma, romangg

Reviewed By: #kwin, #plasma, romangg

Subscribers: kde-frameworks-devel

Tags: #frameworks

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

M  +7    -0    src/plasmaquick/dialog.cpp

https://commits.kde.org/plasma-framework/d25bc3ce2138779e1b14ca0f7463396299b3ee1c