diff options
-rw-r--r-- | libview/ev-annotation-window.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/libview/ev-annotation-window.c b/libview/ev-annotation-window.c index 6e0ee9ed..776187f2 100644 --- a/libview/ev-annotation-window.c +++ b/libview/ev-annotation-window.c @@ -247,14 +247,14 @@ ev_annotation_window_set_resize_cursor (GtkWidget *widget, } } -static gboolean -text_view_button_press (GtkWidget *widget, - GdkEventButton *event, - EvAnnotationWindow *window) +static void +text_view_state_flags_changed (GtkWidget *widget, + GtkStateFlags previous_flags) { - ev_annotation_window_grab_focus (window); + GtkStateFlags current_flags = gtk_widget_get_state_flags (widget); - return FALSE; + if (current_flags & GTK_STATE_FLAG_BACKDROP) + gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (widget), FALSE); } static void @@ -315,9 +315,9 @@ ev_annotation_window_init (EvAnnotationWindow *window) GTK_POLICY_AUTOMATIC); window->text_view = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (window->text_view), GTK_WRAP_WORD); - g_signal_connect (window->text_view, "button_press_event", - G_CALLBACK (text_view_button_press), - window); + g_signal_connect (window->text_view, "state-flags-changed", + G_CALLBACK (text_view_state_flags_changed), + window); gtk_container_add (GTK_CONTAINER (swindow), window->text_view); gtk_widget_show (window->text_view); @@ -493,6 +493,10 @@ ev_annotation_window_focus_in_event (GtkWidget *widget, window->in_move = FALSE; } + gtk_widget_grab_focus (window->text_view); + send_focus_change (window->text_view, TRUE); + gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (window->text_view), TRUE); + return FALSE; } |