* src/widgets/modest-recpt-view.c:
[modest] / src / widgets / modest-recpt-view.c
index 9eb89bd..93edff3 100644 (file)
@@ -36,6 +36,8 @@
 #include <modest-text-utils.h>
 #include <modest-recpt-view.h>
 
+#define RECPT_VIEW_CLICK_AREA_THRESHOLD 32
+
 static GObjectClass *parent_class = NULL;
 
 /* signals */
@@ -57,6 +59,13 @@ struct _ModestRecptViewPriv
 
 static guint signals[LAST_SIGNAL] = {0};
 
+/* static functions: GObject */
+static void modest_recpt_view_instance_init (GTypeInstance *instance, gpointer g_class);
+static void modest_recpt_view_finalize (GObject *object);
+static void modest_recpt_view_class_init (ModestRecptViewClass *klass);
+/* static functions: GtkWidget */
+static gint button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data);
+static gint button_release_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data);
 
 /**
  * modest_recpt_view_new:
@@ -116,8 +125,10 @@ button_release_event (GtkWidget *widget,
 
        if ((priv->button_pressed) &&
            (event->type == GDK_BUTTON_RELEASE) &&
-           (priv->pressed_x == event->x) &&
-           (priv->pressed_y == event->y)) {
+           ((event->x >= priv->pressed_x - RECPT_VIEW_CLICK_AREA_THRESHOLD)&&
+            (event->x <= priv->pressed_x + RECPT_VIEW_CLICK_AREA_THRESHOLD)) &&
+           ((event->y >= priv->pressed_y - RECPT_VIEW_CLICK_AREA_THRESHOLD)&&
+            (event->y <= priv->pressed_y + RECPT_VIEW_CLICK_AREA_THRESHOLD))) {
                priv->button_pressed = FALSE;
                if (event->button == 1) {
                        gint buffer_x, buffer_y;
@@ -188,7 +199,7 @@ modest_recpt_view_instance_init (GTypeInstance *instance, gpointer g_class)
        text_view = GTK_TEXT_VIEW(modest_scroll_text_get_text_view (MODEST_SCROLL_TEXT (instance)));
 
        g_signal_connect (G_OBJECT (text_view), "button-press-event", G_CALLBACK (button_press_event), instance);
-       g_signal_connect (G_OBJECT (text_view), "button-release-event", G_CALLBACK (button_release_event), instance);
+       g_signal_connect_after (G_OBJECT (text_view), "button-release-event", G_CALLBACK (button_release_event), instance);
 
        return;
 }