Activity log for bug #1086988

Date Who What changed Old value New value Message
2012-12-05 20:42:56 Brandon Schaefer bug added bug
2012-12-05 20:43:09 Brandon Schaefer unity: importance Undecided High
2012-12-05 20:43:11 Brandon Schaefer unity: assignee Brandon Schaefer (brandontschaefer)
2012-12-05 20:43:23 Brandon Schaefer unity: milestone 7.0.0
2012-12-05 20:43:28 Brandon Schaefer unity: status New Confirmed
2012-12-05 20:44:21 Brandon Schaefer description When the Dash or HUD is open the Launcher has X event focus. This means XIM will not work with either because the events generated are ment for the Dash or HUD not the Launcher.... Here is the bit of offending code: unityshell.cpp-2726- // We do this after the notify to ensure input focus has actually been moved. unityshell.cpp-2727- if (n == CompWindowNotifyFocusChange) unityshell.cpp-2728- { unityshell.cpp-2729- UnityScreen* us = UnityScreen::get(screen); unityshell.cpp-2730- CompWindow *lw; unityshell.cpp-2731- unityshell.cpp-2732- // can't rely on launcher->IsOverlayVisible on focus change (because ubus is async close on focus change.) unityshell.cpp-2733- if (us && (us->dash_controller_->IsVisible() || us->hud_controller_->IsVisible())) unityshell.cpp-2734- { unityshell.cpp:2735: lw = screen->findWindow(us->launcher_controller_->LauncherWindowId(0)); unityshell.cpp-2736- lw->moveInputFocusTo(); unityshell.cpp-2737- } unityshell.cpp-2738- } Ill have to look into a good soultion to this problem...as the point of this code is to avoid losing focus of the Dash or HUD when an external program is opened...So this regession needs to be avoided. (And no you can't simply refocus the dash or hud, that doesn't give key focus back...) When the Dash or HUD is open the Launcher has X event focus. This means XIM will not work with either because the events generated are ment for the Dash or HUD not the Launcher.... Here is the bit of offending code: unityshell.cpp-2726 // We do this after the notify to ensure input focus has actually been moved. if (n == CompWindowNotifyFocusChange) { UnityScreen* us = UnityScreen::get(screen); CompWindow *lw; // can't rely on launcher->IsOverlayVisible on focus change (because ubus is async close on focus change.) if (us && (us->dash_controller_->IsVisible() || us->hud_controller_->IsVisible())) { lw = screen->findWindow(us->launcher_controller_->LauncherWindowId(0)); lw->moveInputFocusTo(); } } Ill have to look into a good soultion to this problem...as the point of this code is to avoid losing focus of the Dash or HUD when an external program is opened...So this regession needs to be avoided. (And no you can't simply refocus the dash or hud, that doesn't give key focus back...)
2012-12-06 23:54:17 Brandon Schaefer unity: status Confirmed In Progress
2012-12-07 02:29:19 Brandon Schaefer branch linked lp:~brandontschaefer/unity/lp1086988-fix-x-focus-dash-hud-xim
2012-12-13 03:18:39 PS Jenkins bot unity: status In Progress Fix Committed
2013-01-14 21:10:17 Launchpad Janitor unity (Ubuntu): status New Fix Released
2013-04-03 15:01:22 Stephen M. Webb unity: status Fix Committed Fix Released