I've looked into this bug again yesterday and finally found the problem was with Onboard. Unity's special case for Onboard failed because we didn't have WM_CLASS set up probably at all times. This is fixed in trunk now and Onboard finally gets raised on top of Dash in all modes.
Optional: As a leftover from my experiments, Onboard now has a X window property ON_SCREEN_KEYBOARD(CARDINAL) = 1 set. It's compatible with CompScreen::getWindowProp() on the unity side. In case you ever want to get rid of the hard-coded "onboard" in unity, this may be of help.
I've looked into this bug again yesterday and finally found the problem was with Onboard. Unity's special case for Onboard failed because we didn't have WM_CLASS set up probably at all times. This is fixed in trunk now and Onboard finally gets raised on top of Dash in all modes.
Optional: As a leftover from my experiments, Onboard now has a X window property ON_SCREEN_ KEYBOARD( CARDINAL) = 1 set. It's compatible with CompScreen: :getWindowProp( ) on the unity side. In case you ever want to get rid of the hard-coded "onboard" in unity, this may be of help.