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

Roman Gilg

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.


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:
  • plasma-workspace:
  • plasma-desktop:

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.



  • 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.