Comment 32 for bug 969039

Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

Yay found the problem....

So. Compiz does indeed grab all the keys, which is why its hard to reproduce. The problem is for some reason in unityshell.cpp when alt tab terminates it ends up eventually doing XUngrabKey() on all the arrow keys!! So to correctly reproduce this:

1) Alt+Tab (just open the switcher and close it)
2) Attempt a alt+<arrow_key>

The offending code is here:
bool UnityScreen::altTabTerminateCommon(....)
{
  ....
  screen->removeAction(&optionGetAltTabRight ());
  screen->removeAction(&optionGetAltTabDetailStart ());
  screen->removeAction(&optionGetAltTabDetailStop ());
  screen->removeAction(&optionGetAltTabLeft ());
  ...
}

So before I push a branch i have to track down what that code is for...or what it was really fixing (don't want another regression).

It ends up ungrabbing these keycodes:

111 <- Up arrow
113 <- Left arrow
114 <- Right arrow
116 <- Down arrow

Ill attempt to get a branch out for this next week!