From e4c8d346f59d81c029679148f0a0e2f4556401f0 Mon Sep 17 00:00:00 2001 From: Vladimir Nadvornik Date: Sun, 12 Aug 2012 18:43:57 +0200 Subject: [PATCH] fixed keyboard controll of image widget --- src/layout_util.c | 6 ++++-- src/pan-view.c | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/layout_util.c b/src/layout_util.c index f88bdd26..1d135419 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -85,6 +85,7 @@ static gboolean layout_key_match(guint keyval) gboolean layout_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) { LayoutWindow *lw = data; + GtkWidget *focused; gboolean stop_signal = FALSE; gint x = 0; gint y = 0; @@ -130,11 +131,12 @@ gboolean layout_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer dat return TRUE; */ + focused = gtk_container_get_focus_child(GTK_CONTAINER(lw->image->widget)); if (lw->image && #if GTK_CHECK_VERSION(2,20,0) - (gtk_widget_has_focus(lw->image->widget) || (lw->tools && widget == lw->window) || lw->full_screen) ) + (focused && gtk_widget_has_focus(focused) || (lw->tools && widget == lw->window) || lw->full_screen) ) #else - (GTK_WIDGET_HAS_FOCUS(lw->image->widget) || (lw->tools && widget == lw->window) || lw->full_screen) ) + (focused && GTK_WIDGET_HAS_FOCUS(focused) || (lw->tools && widget == lw->window) || lw->full_screen) ) #endif { stop_signal = TRUE; diff --git a/src/pan-view.c b/src/pan-view.c index 84a013bf..aab0dc2a 100644 --- a/src/pan-view.c +++ b/src/pan-view.c @@ -1204,6 +1204,7 @@ static gboolean pan_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, g FileData *fd; gboolean stop_signal = FALSE; GtkWidget *menu; + GtkWidget *imd_widget; gint x = 0; gint y = 0; gint focused; @@ -1211,13 +1212,14 @@ static gboolean pan_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, g pr = PIXBUF_RENDERER(pw->imd->pr); fd = pan_menu_click_fd(pw); - + + imd_widget = gtk_container_get_focus_child(GTK_CONTAINER(pw->imd->widget)); #if GTK_CHECK_VERSION(2,20,0) - focused = (pw->fs || gtk_widget_has_focus(GTK_WIDGET(pw->imd->widget))); + focused = (pw->fs || imd_widget && gtk_widget_has_focus(imd_widget)); on_entry = (gtk_widget_has_focus(pw->path_entry) || gtk_widget_has_focus(pw->search_entry)); #else - focused = (pw->fs || GTK_WIDGET_HAS_FOCUS(GTK_WIDGET(pw->imd->widget))); + focused = (pw->fs || imd_widget && GTK_WIDGET_HAS_FOCUS(imd_widget)); on_entry = (GTK_WIDGET_HAS_FOCUS(pw->path_entry) || GTK_WIDGET_HAS_FOCUS(pw->search_entry)); #endif -- 2.20.1