[evince/gnome-3-18] Selecting text from annotation notes
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince/gnome-3-18] Selecting text from annotation notes
- Date: Wed, 2 Dec 2015 15:18:01 +0000 (UTC)
commit 6dcde191aa241b0c0551f5a4fbd0f492eb9320c8
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]