X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fwidgets%2Fmodest-recpt-view.c;h=3601c8e7fc32190aa7b334cd380d21d615ad8614;hb=27523b2f2982bfae1a25fd79555c2fb67c548332;hp=de48e5b2a7c5fbc8eeebba661d94c4ea8f73da71;hpb=9c0bcdf0943f38153f13821aa6d7c51cfc5d9634;p=modest diff --git a/src/widgets/modest-recpt-view.c b/src/widgets/modest-recpt-view.c index de48e5b..3601c8e 100644 --- a/src/widgets/modest-recpt-view.c +++ b/src/widgets/modest-recpt-view.c @@ -36,6 +36,8 @@ #include #include +#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,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); @@ -185,10 +197,10 @@ modest_recpt_view_instance_init (GTypeInstance *instance, gpointer g_class) { const GtkTextView *text_view = NULL; - text_view = modest_scroll_text_get_text_view (MODEST_SCROLL_TEXT (instance)); + 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; }