[evince] Selecting text from annotation notes
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince] Selecting text from annotation notes
- Date: Wed, 2 Dec 2015 15:17:31 +0000 (UTC)
commit 91ac78bc587eb2ac931136c9da9609b142410209
Author: Giselle Reis <gisellemnr src gnome org>
Date: Wed Jul 29 22:19:36 2015 +0200
Selecting text from annotation notes
Clicking and dragging the mouse inside an
annotation note should select the text. Clicking
and dragging the mouse on the title bar should
move the window.
This commit fixes
https://bugzilla.gnome.org/show_bug.cgi?id=749727
libview/ev-annotation-window.c | 55 +++++++++++++++++++++++----------------
1 files changed, 32 insertions(+), 23 deletions(-)
---
diff --git a/libview/ev-annotation-window.c b/libview/ev-annotation-window.c
index ee002ce..9d66ec9 100644
--- a/libview/ev-annotation-window.c
+++ b/libview/ev-annotation-window.c
@@ -275,12 +275,34 @@ ev_annotation_window_close (EvAnnotationWindow *window)
g_signal_emit (window, signals[CLOSED], 0);
}
+static gboolean
+ev_annotation_window_button_press_event (GtkWidget *widget,
+ GdkEventButton *event)
+{
+ EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (widget);
+
+ if (event->type == GDK_BUTTON_PRESS && event->button == 1) {
+ window->in_move = TRUE;
+ window->x = event->x_root - event->x;
+ window->y = event->y_root - event->y;
+ gtk_window_begin_move_drag (GTK_WINDOW (widget),
+ event->button,
+ event->x_root,
+ event->y_root,
+ event->time);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
ev_annotation_window_init (EvAnnotationWindow *window)
{
GtkWidget *vbox, *hbox;
GtkWidget *icon;
GtkWidget *swindow;
+ GtkWidget *header;
GtkIconTheme *icon_theme;
GdkPixbuf *pixbuf;
@@ -297,10 +319,19 @@ ev_annotation_window_init (EvAnnotationWindow *window)
gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0);
gtk_widget_show (icon);
+ header = gtk_event_box_new ();
+ gtk_widget_add_events (header, GDK_BUTTON_PRESS_MASK);
+ g_signal_connect_swapped (header, "button-press-event",
+ G_CALLBACK (ev_annotation_window_button_press_event),
+ window);
+
window->title = gtk_label_new (NULL);
- gtk_box_pack_start (GTK_BOX (hbox), window->title, TRUE, TRUE, 0);
+ gtk_container_add (GTK_CONTAINER (header), window->title);
gtk_widget_show (window->title);
+ gtk_box_pack_start (GTK_BOX (hbox), header, TRUE, TRUE, 0);
+ gtk_widget_show (header);
+
window->close_button = gtk_button_new ();
gtk_button_set_relief (GTK_BUTTON (window->close_button), GTK_RELIEF_NONE);
gtk_container_set_border_width (GTK_CONTAINER (window->close_button), 0);
@@ -461,27 +492,6 @@ ev_annotation_window_constructor (GType type,
}
static gboolean
-ev_annotation_window_button_press_event (GtkWidget *widget,
- GdkEventButton *event)
-{
- EvAnnotationWindow *window = EV_ANNOTATION_WINDOW (widget);
-
- if (event->type == GDK_BUTTON_PRESS && event->button == 1) {
- window->in_move = TRUE;
- window->x = event->x_root - event->x;
- window->y = event->y_root - event->y;
- gtk_window_begin_move_drag (GTK_WINDOW (widget),
- event->button,
- event->x_root,
- event->y_root,
- event->time);
- return TRUE;
- }
-
- return FALSE;
-}
-
-static gboolean
ev_annotation_window_configure_event (GtkWidget *widget,
GdkEventConfigure *event)
{
@@ -539,7 +549,6 @@ ev_annotation_window_class_init (EvAnnotationWindowClass *klass)
g_object_class->set_property = ev_annotation_window_set_property;
g_object_class->dispose = ev_annotation_window_dispose;
- gtk_widget_class->button_press_event = ev_annotation_window_button_press_event;
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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]