Add toggle signal for applet de-/activation in order to fix non-closing launchers on Meta (and also on Active Screenedges)

Review Request #129204 - Created Oct. 17, 2016 and submitted

Information
Roman Gilg
plasma-framework
master
367685
Reviewers
plasma
graesslin

The new Meta-key support for launcher opening doesn't work for closing at the moment. My analysis of the problem was as follows:

  • KWin calls Applet::activated() over DBus
  • Applet::activated() is connected to AppletInterface::activated()
  • AppletInterface::activated() is connected to setExpanded(true), which can only expand the launcher, but not the other way around

Q: Why is Alt+F1 working though?

A: The launchers seem to inherit the reimplemented function Dialog::focusOutEvent(..). Atleast when you delete line 1094 in dialog.cpp, which sets the visibility to false, it's not working anymore. Alt+F1 triggers the focusOutEvent(..) as a global shortcut.

Q: Why is it working with the Dashboard though?

A: The dashboard doesn't use the expanded feature of the plasmoid, but rather connects directly to the AppletInterface::activated() signal and shows/hides an independent widget when this signal gets triggered.

Solution:

Create new toggled() signal chain in KWin, Applet, AppletInterface, which tests the current expanded state and sets it afterwards accordingly to the opposite. This diff here in plasma-framework is the first one, which the others depend on. The others are on Phabricator:

  • kwin: https://phabricator.kde.org/D3077
  • plasma-workspace: https://phabricator.kde.org/D3078
  • plasma-desktop: https://phabricator.kde.org/D3079

Need feedback regarding:

  • Should we remove the activated() signal chain? Is it used somewhere else than KWin?
  • Could a race condition occur if we deexpand the applet while at the same time setting the visibility to false through focusOutEvent()? My tests until now don't suggest it, but I haven't yet looked into it extensively.

  

Issues

  • 0
  • 2
  • 1
  • 3
Description From Last Updated
Roman Gilg
Roman Gilg
David Edmundson
Marco Martin
Roman Gilg
Marco Martin
Roman Gilg
Marco Martin
Roman Gilg
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted with commit 65706d3878d556c7a1eac18984ec41b1a1d96d56 by Roman Gilg to branch master.
Loading...