Currently Launcher.cpp is relatively unaware of when a quicklist is visible at all. Launcher triggers mouse in/out events into LauncherIcon and they do with them as they please. Ideally we would create a new class, QuicklistManager which would provide the following public interface:
Launcher would then simply watch signal on the QuicklistManager, and all LauncherIcon's would register their quicklists with the QuicklistManager and show them through that interface.
Action plan for solving this problem:
Currently Launcher.cpp is relatively unaware of when a quicklist is visible at all. Launcher triggers mouse in/out events into LauncherIcon and they do with them as they please. Ideally we would create a new class, QuicklistManager which would provide the following public interface:
QuicklistManager * Default ();
QuicklistView * Current ();
void RegisterQuicklist (QuicklistView *quicklist);
void ShowQuicklist (QuicklistView *quicklist, bool hide_existing_ if_open = true);
void HideQuicklist (QuicklistView *quicklist);
sigc::signal<void, QuicklistView*> quicklist_opened;
sigc::signal<void, QuicklistView*> quicklist_closed;
Launcher would then simply watch signal on the QuicklistManager, and all LauncherIcon's would register their quicklists with the QuicklistManager and show them through that interface.