e8a29c1e82
When we focus a window on a different desktop, and the calc_showing idle that hides/shows the windows gets run before we get focus events back from X, we think that we are hiding the window with the focus so we focus a "random" window to avoid leaving the user with no focus. Work around this temporarily by checking display->expected_focus_window; this isn't a perfect fix because there are cases where display->expected_focus_window corresponds to a window we tried to focus in the past but failed, but it makes things work fairly well. https://bugzilla.gnome.org/show_bug.cgi?id=597352