diff options
Diffstat (limited to 'libview')
-rw-r--r-- | libview/ev-annotation-window.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/libview/ev-annotation-window.c b/libview/ev-annotation-window.c index 91b0a7b0..643341fa 100644 --- a/libview/ev-annotation-window.c +++ b/libview/ev-annotation-window.c @@ -411,7 +411,7 @@ ev_annotation_window_init (EvAnnotationWindow *window) gtk_container_set_border_width (GTK_CONTAINER (window), 2); - gtk_window_set_accept_focus (GTK_WINDOW (window), TRUE); + gtk_window_set_accept_focus (GTK_WINDOW (window), FALSE); gtk_window_set_decorated (GTK_WINDOW (window), FALSE); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE); gtk_window_set_skip_pager_hint (GTK_WINDOW (window), TRUE); @@ -544,6 +544,24 @@ ev_annotation_window_focus_out_event (GtkWidget *widget, return FALSE; } +static gboolean +ev_annotation_window_enter_notify_event (GtkWidget *widget, + GdkEventCrossing *event) +{ + gtk_window_set_accept_focus (GTK_WINDOW (widget), TRUE); + + return FALSE; +} + +static gboolean +ev_annotation_window_leave_notify_event (GtkWidget *widget, + GdkEventCrossing *event) +{ + gtk_window_set_accept_focus (GTK_WINDOW (widget), FALSE); + + return FALSE; +} + static void ev_annotation_window_class_init (EvAnnotationWindowClass *klass) { @@ -558,6 +576,8 @@ ev_annotation_window_class_init (EvAnnotationWindowClass *klass) gtk_widget_class->configure_event = ev_annotation_window_configure_event; gtk_widget_class->focus_in_event = ev_annotation_window_focus_in_event; gtk_widget_class->focus_out_event = ev_annotation_window_focus_out_event; + gtk_widget_class->enter_notify_event = ev_annotation_window_enter_notify_event; + gtk_widget_class->leave_notify_event = ev_annotation_window_leave_notify_event; g_object_class_install_property (g_object_class, PROP_ANNOTATION, |