* src/widgets/modest-recpt-view.c:
[modest] / src / widgets / modest-recpt-view.c
index 88d68e8..3601c8e 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 */
@@ -123,13 +125,16 @@ 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;
                        int index;
                        GtkTextIter iter;
+                       gtk_widget_grab_focus (GTK_WIDGET (text_view));
                        gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET,
                                                               event->x, event->y, &buffer_x, &buffer_y);
                        gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW (text_view), &iter, buffer_x, buffer_y);