So really what can be done here is that unityshell.cpp can wrap CompWindow::place (eg by implementing a UnityWindow::place (CompPoint &p) {} function) and that can check if the window overlaps the launcher area and instead places it just outside the panel.
So really what can be done here is that unityshell.cpp can wrap CompWindow::place (eg by implementing a UnityWindow::place (CompPoint &p) {} function) and that can check if the window overlaps the launcher area and instead places it just outside the panel.
It is relatively bitesized.