Bug 567333 - Using tab to toggle docked "utility windows" does not...
...bring focus back to GIMP image window When showing docks in multi-window-mode, try to set the keyboard focus back to the active display because it might have been stolen by a dock.
This commit is contained in:
@ -1720,6 +1720,30 @@ gimp_image_window_config_notify (GimpImageWindow *window,
|
|||||||
gimp_image_window_keep_canvas_pos (window);
|
gimp_image_window_keep_canvas_pos (window);
|
||||||
gtk_widget_set_visible (private->left_docks, show_docks);
|
gtk_widget_set_visible (private->left_docks, show_docks);
|
||||||
gtk_widget_set_visible (private->right_docks, show_docks);
|
gtk_widget_set_visible (private->right_docks, show_docks);
|
||||||
|
|
||||||
|
/* If docks are being shown, and we are in multi-window-mode,
|
||||||
|
* and this is the window of the active display, try to set
|
||||||
|
* the keyboard focus to this window because it might have
|
||||||
|
* been stolen by a dock. See bug #567333.
|
||||||
|
*/
|
||||||
|
if (strcmp (pspec->name, "hide-docks") == 0 &&
|
||||||
|
! config->single_window_mode &&
|
||||||
|
! config->hide_docks)
|
||||||
|
{
|
||||||
|
GimpDisplayShell *shell;
|
||||||
|
GimpContext *user_context;
|
||||||
|
|
||||||
|
shell = gimp_image_window_get_active_shell (window);
|
||||||
|
user_context = gimp_get_user_context (private->gimp);
|
||||||
|
|
||||||
|
if (gimp_context_get_display (user_context) == shell->display)
|
||||||
|
{
|
||||||
|
GdkWindow *w = gtk_widget_get_window (GTK_WIDGET (window));
|
||||||
|
|
||||||
|
if (w)
|
||||||
|
gdk_window_focus (w, gtk_get_current_event_time ());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gimp_image_window_update_tabs (window);
|
gimp_image_window_update_tabs (window);
|
||||||
|
Reference in New Issue
Block a user