I don't have any code to show as I just checked what wall did but expo didn't. As DnD fails, I assume you're emitting those events right when expo starts/quits(?). If you emit the events only when expo calls moveViewport, it shouldn't affect DnD windows (emitting those events equals to situation without grid). So something like this could work:
screen->handleCompizEvent ("expo","start_viewport_switch", CompOption::Vector());
screen->moveViewport(...)
screen->handleCompizEvent ("expo","end_viewport_switch", CompOption::Vector());
I don't have time to test it right now, but I can try it later...
I don't have any code to show as I just checked what wall did but expo didn't. As DnD fails, I assume you're emitting those events right when expo starts/quits(?). If you emit the events only when expo calls moveViewport, it shouldn't affect DnD windows (emitting those events equals to situation without grid). So something like this could work: >handleCompizEv ent ("expo" ,"start_ viewport_ switch" , CompOption: :Vector( )); >moveViewport( ...) >handleCompizEv ent ("expo" ,"end_viewport_ switch" , CompOption: :Vector( ));
screen-
screen-
screen-
I don't have time to test it right now, but I can try it later...