Stefano, the panel's window might be getting focus before the maximised window beneath it, and hence the launcher pops out. I think it's worth checking in the launcher, before it pops out, if the active window is one of the internal unity windows, and then ignoring if that is the case.
You can get the list of internal unity windows with: nux::XInputWindow::NativeHandleList () (which is a static function that gives you a std::list<Window>.
Stefano, the panel's window might be getting focus before the maximised window beneath it, and hence the launcher pops out. I think it's worth checking in the launcher, before it pops out, if the active window is one of the internal unity windows, and then ignoring if that is the case.
You can get the list of internal unity windows with: nux::XInputWind ow::NativeHandl eList () (which is a static function that gives you a std::list<Window>.
Hope that helps!