[evince/gnome-3-10] libview: fix annotation window focus change after creation
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince/gnome-3-10] libview: fix annotation window focus change after creation
- Date: Tue, 29 Oct 2013 09:56:19 +0000 (UTC)
commit c5220b520c145a936653988caa401f4e3a48098f
Author: Nelson Benitez Leon <nbenitezl gmail com>
Date: Wed Aug 14 10:37:03 2013 +0200
libview: fix annotation window focus change after creation
Be able to start entering text right after selecting
or creating an annotation, also hide text cursor
when window goes unfocused (backdrop state).
https://bugzilla.gnome.org/show_bug.cgi?id=668446
libview/ev-annotation-window.c | 20 ++++++++++++--------
1 files changed, 12 insertions(+), 8 deletions(-)
---
diff --git a/libview/ev-annotation-window.c b/libview/ev-annotation-window.c
index f53874e..f31dec6 100644
--- a/libview/ev-annotation-window.c
+++ b/libview/ev-annotation-window.c
@@ -258,14 +258,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
@@ -317,8 +317,8 @@ ev_annotation_window_init (EvAnnotationWindow *window)
swindow = gtk_scrolled_window_new (NULL, NULL);
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),
+ 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);
@@ -492,6 +492,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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]