Comment 2 for bug 683261

Jason Smith (jassmith) wrote :

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.