|
|
b1a0e4 |
diff -up evolution-3.8.5/addressbook/gui/widgets/e-minicard.c.evo-auto-mark-as-seen evolution-3.8.5/addressbook/gui/widgets/e-minicard.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/addressbook/gui/widgets/e-minicard.c.evo-auto-mark-as-seen 2013-07-23 14:52:21.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/addressbook/gui/widgets/e-minicard.c 2014-05-13 14:50:29.824893563 +0200
|
|
|
b1a0e4 |
@@ -631,8 +631,9 @@ e_minicard_event (GnomeCanvasItem *item,
|
|
|
b1a0e4 |
break;
|
|
|
b1a0e4 |
case GDK_MOTION_NOTIFY:
|
|
|
b1a0e4 |
if (e_minicard->drag_button_down && event->motion.state & GDK_BUTTON1_MASK) {
|
|
|
b1a0e4 |
- if (MAX (abs (e_minicard->button_x - event->motion.x),
|
|
|
b1a0e4 |
- abs (e_minicard->button_y - event->motion.y)) > 3) {
|
|
|
b1a0e4 |
+ if (gtk_drag_check_threshold (GTK_WIDGET (item->canvas),
|
|
|
b1a0e4 |
+ e_minicard->button_x, e_minicard->button_y,
|
|
|
b1a0e4 |
+ event->motion.x, event->motion.y)) {
|
|
|
b1a0e4 |
gint ret_val;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
ret_val = e_minicard_drag_begin (e_minicard, event);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/e-day-view.c.evo-auto-mark-as-seen evolution-3.8.5/calendar/gui/e-day-view.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/e-day-view.c.evo-auto-mark-as-seen 2013-07-23 14:52:29.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/e-day-view.c 2014-05-13 14:50:29.825893563 +0200
|
|
|
b1a0e4 |
@@ -75,10 +75,6 @@
|
|
|
b1a0e4 |
/* The number of timeouts we skip before we start scrolling. */
|
|
|
b1a0e4 |
#define E_DAY_VIEW_AUTO_SCROLL_DELAY 5
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
-/* The number of pixels the mouse has to be moved with the button down before
|
|
|
b1a0e4 |
- * we start a drag. */
|
|
|
b1a0e4 |
-#define E_DAY_VIEW_DRAG_START_OFFSET 4
|
|
|
b1a0e4 |
-
|
|
|
b1a0e4 |
/* The amount we scroll the main canvas when the Page Up/Down keys are pressed,
|
|
|
b1a0e4 |
* as a fraction of the page size. */
|
|
|
b1a0e4 |
#define E_DAY_VIEW_PAGE_STEP 0.5
|
|
|
b1a0e4 |
@@ -4239,10 +4235,7 @@ e_day_view_on_top_canvas_motion (GtkWidg
|
|
|
b1a0e4 |
return FALSE;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (!e_cal_util_component_has_recurrences (event->comp_data->icalcomp)
|
|
|
b1a0e4 |
- && (abs (canvas_x - day_view->drag_event_x)
|
|
|
b1a0e4 |
- > E_DAY_VIEW_DRAG_START_OFFSET
|
|
|
b1a0e4 |
- || abs (canvas_y - day_view->drag_event_y)
|
|
|
b1a0e4 |
- > E_DAY_VIEW_DRAG_START_OFFSET)) {
|
|
|
b1a0e4 |
+ && gtk_drag_check_threshold (widget, day_view->drag_event_x, day_view->drag_event_y, canvas_x, canvas_y)) {
|
|
|
b1a0e4 |
day_view->drag_event_day = day_view->pressed_event_day;
|
|
|
b1a0e4 |
day_view->drag_event_num = day_view->pressed_event_num;
|
|
|
b1a0e4 |
day_view->pressed_event_day = -1;
|
|
|
b1a0e4 |
@@ -4351,10 +4344,7 @@ e_day_view_on_main_canvas_motion (GtkWid
|
|
|
b1a0e4 |
&& day_view->pressed_event_day != E_DAY_VIEW_LONG_EVENT) {
|
|
|
b1a0e4 |
GtkTargetList *target_list;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- if ((abs (canvas_x - day_view->drag_event_x)
|
|
|
b1a0e4 |
- > E_DAY_VIEW_DRAG_START_OFFSET
|
|
|
b1a0e4 |
- || abs (canvas_y - day_view->drag_event_y)
|
|
|
b1a0e4 |
- > E_DAY_VIEW_DRAG_START_OFFSET)) {
|
|
|
b1a0e4 |
+ if (gtk_drag_check_threshold (widget, day_view->drag_event_x, day_view->drag_event_y, canvas_x, canvas_y)) {
|
|
|
b1a0e4 |
day_view->drag_event_day = day_view->pressed_event_day;
|
|
|
b1a0e4 |
day_view->drag_event_num = day_view->pressed_event_num;
|
|
|
b1a0e4 |
day_view->pressed_event_day = -1;
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-table-field-chooser-item.c.evo-auto-mark-as-seen evolution-3.8.5/e-util/e-table-field-chooser-item.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-table-field-chooser-item.c.evo-auto-mark-as-seen 2013-07-23 14:52:11.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-table-field-chooser-item.c 2014-05-13 14:50:29.825893563 +0200
|
|
|
b1a0e4 |
@@ -548,14 +548,14 @@ etfci_maybe_start_drag (ETableFieldChoos
|
|
|
b1a0e4 |
gint x,
|
|
|
b1a0e4 |
gint y)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
+ GnomeCanvasItem *item;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (!etfci->maybe_drag)
|
|
|
b1a0e4 |
return FALSE;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- if (MAX (abs (etfci->click_x - x),
|
|
|
b1a0e4 |
- abs (etfci->click_y - y)) <= 3)
|
|
|
b1a0e4 |
- return FALSE;
|
|
|
b1a0e4 |
+ item = GNOME_CANVAS_ITEM (etfci);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- return TRUE;
|
|
|
b1a0e4 |
+ return gtk_drag_check_threshold (GTK_WIDGET (item->canvas), etfci->click_x, etfci->click_y, x, y);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-table-header-item.c.evo-auto-mark-as-seen evolution-3.8.5/e-util/e-table-header-item.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-table-header-item.c.evo-auto-mark-as-seen 2013-08-10 23:38:42.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-table-header-item.c 2014-05-13 14:50:29.825893563 +0200
|
|
|
b1a0e4 |
@@ -1220,6 +1220,8 @@ static gboolean
|
|
|
b1a0e4 |
ethi_maybe_start_drag (ETableHeaderItem *ethi,
|
|
|
b1a0e4 |
GdkEventMotion *event)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
+ GnomeCanvasItem *item;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (!ethi->maybe_drag)
|
|
|
b1a0e4 |
return FALSE;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -1228,11 +1230,9 @@ ethi_maybe_start_drag (ETableHeaderItem
|
|
|
b1a0e4 |
return FALSE;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- if (MAX (abs (ethi->click_x - event->x),
|
|
|
b1a0e4 |
- abs (ethi->click_y - event->y)) <= 3)
|
|
|
b1a0e4 |
- return FALSE;
|
|
|
b1a0e4 |
+ item = GNOME_CANVAS_ITEM (ethi);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- return TRUE;
|
|
|
b1a0e4 |
+ return gtk_drag_check_threshold (GTK_WIDGET (item->canvas), ethi->click_x, ethi->click_y, event->x, event->y);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-table-item.c.evo-auto-mark-as-seen evolution-3.8.5/e-util/e-table-item.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-table-item.c.evo-auto-mark-as-seen 2013-08-03 15:22:52.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-table-item.c 2014-05-13 14:50:29.826893563 +0200
|
|
|
b1a0e4 |
@@ -2722,8 +2722,7 @@ eti_event (GnomeCanvasItem *item,
|
|
|
b1a0e4 |
gnome_canvas_item_w2i (item, &event_x_item, &event_y_item);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (eti->maybe_in_drag) {
|
|
|
b1a0e4 |
- if (abs (event_x_item - eti->drag_x) >= 3 ||
|
|
|
b1a0e4 |
- abs (event_y_item - eti->drag_y) >= 3) {
|
|
|
b1a0e4 |
+ if (gtk_drag_check_threshold (GTK_WIDGET (item->canvas), eti->drag_x, eti->drag_y, event_x_item, event_y_item)) {
|
|
|
b1a0e4 |
gboolean drag_handled;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
eti->maybe_in_drag = 0;
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/mail/e-mail-reader.c.evo-auto-mark-as-seen evolution-3.8.5/mail/e-mail-reader.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/mail/e-mail-reader.c.evo-auto-mark-as-seen 2013-07-23 14:51:57.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/mail/e-mail-reader.c 2014-05-13 14:50:29.826893563 +0200
|
|
|
b1a0e4 |
@@ -93,6 +93,11 @@ struct _EMailReaderPrivate {
|
|
|
b1a0e4 |
guint avoid_next_mark_as_seen : 1;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
guint group_by_threads : 1;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ /* to be able to start the mark_seen timeout only after
|
|
|
b1a0e4 |
+ the message is loaded into the EMailDisplay */
|
|
|
b1a0e4 |
+ gboolean schedule_mark_seen;
|
|
|
b1a0e4 |
+ guint schedule_mark_seen_interval;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
enum {
|
|
|
b1a0e4 |
@@ -2723,9 +2728,62 @@ mail_reader_message_seen_cb (EMailReader
|
|
|
b1a0e4 |
return FALSE;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
-static gboolean
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
schedule_timeout_mark_seen (EMailReader *reader)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
+ EMailReaderPrivate *priv;
|
|
|
b1a0e4 |
+ MessageList *message_list;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_return_if_fail (E_IS_MAIL_READER (reader));
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ priv = E_MAIL_READER_GET_PRIVATE (reader);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ message_list = MESSAGE_LIST (e_mail_reader_get_message_list (reader));
|
|
|
b1a0e4 |
+ g_return_if_fail (message_list != NULL);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (message_list->cursor_uid) {
|
|
|
b1a0e4 |
+ EMailReaderClosure *timeout_closure;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (message_list->seen_id > 0) {
|
|
|
b1a0e4 |
+ g_source_remove (message_list->seen_id);
|
|
|
b1a0e4 |
+ message_list->seen_id = 0;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ timeout_closure = g_slice_new0 (EMailReaderClosure);
|
|
|
b1a0e4 |
+ timeout_closure->reader = g_object_ref (reader);
|
|
|
b1a0e4 |
+ timeout_closure->message_uid = g_strdup (message_list->cursor_uid);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ MESSAGE_LIST (message_list)->seen_id =
|
|
|
b1a0e4 |
+ g_timeout_add_full (
|
|
|
b1a0e4 |
+ G_PRIORITY_DEFAULT, priv->schedule_mark_seen_interval,
|
|
|
b1a0e4 |
+ (GSourceFunc) mail_reader_message_seen_cb,
|
|
|
b1a0e4 |
+ timeout_closure, (GDestroyNotify)
|
|
|
b1a0e4 |
+ mail_reader_closure_free);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
+mail_reader_load_status_changed_cb (EMailReader *reader,
|
|
|
b1a0e4 |
+ GParamSpec *pspec,
|
|
|
b1a0e4 |
+ EMailDisplay *display)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EMailReaderPrivate *priv;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (webkit_web_view_get_load_status (WEBKIT_WEB_VIEW (display)) != WEBKIT_LOAD_FINISHED)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ priv = E_MAIL_READER_GET_PRIVATE (reader);
|
|
|
b1a0e4 |
+ if (priv->schedule_mark_seen &&
|
|
|
b1a0e4 |
+ E_IS_MAIL_VIEW (reader) &&
|
|
|
b1a0e4 |
+ e_mail_display_get_parts_list (display) &&
|
|
|
b1a0e4 |
+ e_mail_view_get_preview_visible (E_MAIL_VIEW (reader)))
|
|
|
b1a0e4 |
+ schedule_timeout_mark_seen (reader);
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static gboolean
|
|
|
b1a0e4 |
+maybe_schedule_timeout_mark_seen (EMailReader *reader)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EMailReaderPrivate *priv;
|
|
|
b1a0e4 |
EShell *shell;
|
|
|
b1a0e4 |
EMailBackend *backend;
|
|
|
b1a0e4 |
EShellBackend *shell_backend;
|
|
|
b1a0e4 |
@@ -2758,19 +2816,9 @@ schedule_timeout_mark_seen (EMailReader
|
|
|
b1a0e4 |
message_list->seen_id = 0;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- if (schedule_timeout) {
|
|
|
b1a0e4 |
- EMailReaderClosure *timeout_closure;
|
|
|
b1a0e4 |
-
|
|
|
b1a0e4 |
- timeout_closure = g_slice_new0 (EMailReaderClosure);
|
|
|
b1a0e4 |
- timeout_closure->reader = g_object_ref (reader);
|
|
|
b1a0e4 |
- timeout_closure->message_uid = g_strdup (message_uid);
|
|
|
b1a0e4 |
-
|
|
|
b1a0e4 |
- MESSAGE_LIST (message_list)->seen_id = g_timeout_add_full (
|
|
|
b1a0e4 |
- G_PRIORITY_DEFAULT, timeout_interval,
|
|
|
b1a0e4 |
- (GSourceFunc) mail_reader_message_seen_cb,
|
|
|
b1a0e4 |
- timeout_closure, (GDestroyNotify)
|
|
|
b1a0e4 |
- mail_reader_closure_free);
|
|
|
b1a0e4 |
- }
|
|
|
b1a0e4 |
+ priv = E_MAIL_READER_GET_PRIVATE (reader);
|
|
|
b1a0e4 |
+ priv->schedule_mark_seen = schedule_timeout;
|
|
|
b1a0e4 |
+ priv->schedule_mark_seen_interval = timeout_interval;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
return schedule_timeout;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
@@ -2778,10 +2826,14 @@ schedule_timeout_mark_seen (EMailReader
|
|
|
b1a0e4 |
static gboolean
|
|
|
b1a0e4 |
discard_timeout_mark_seen_cb (EMailReader *reader)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
+ EMailReaderPrivate *priv;
|
|
|
b1a0e4 |
MessageList *message_list;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_val_if_fail (reader != NULL, FALSE);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ priv = E_MAIL_READER_GET_PRIVATE (reader);
|
|
|
b1a0e4 |
+ priv->schedule_mark_seen = FALSE;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
message_list = MESSAGE_LIST (e_mail_reader_get_message_list (reader));
|
|
|
b1a0e4 |
g_return_val_if_fail (message_list != NULL, FALSE);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -3009,7 +3061,7 @@ mail_reader_message_cursor_change_cb (EM
|
|
|
b1a0e4 |
E_IS_MAIL_VIEW (reader) &&
|
|
|
b1a0e4 |
e_mail_view_get_preview_visible (E_MAIL_VIEW (reader)) &&
|
|
|
b1a0e4 |
!priv->avoid_next_mark_as_seen)
|
|
|
b1a0e4 |
- schedule_timeout_mark_seen (reader);
|
|
|
b1a0e4 |
+ maybe_schedule_timeout_mark_seen (reader);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
@@ -3249,7 +3301,7 @@ mail_reader_message_loaded (EMailReader
|
|
|
b1a0e4 |
if (message != NULL &&
|
|
|
b1a0e4 |
!priv->restoring_message_selection &&
|
|
|
b1a0e4 |
!priv->avoid_next_mark_as_seen &&
|
|
|
b1a0e4 |
- schedule_timeout_mark_seen (reader)) {
|
|
|
b1a0e4 |
+ maybe_schedule_timeout_mark_seen (reader)) {
|
|
|
b1a0e4 |
g_clear_error (&error);
|
|
|
b1a0e4 |
} else if (error != NULL) {
|
|
|
b1a0e4 |
e_alert_submit (
|
|
|
b1a0e4 |
@@ -4118,6 +4170,10 @@ connect_signals:
|
|
|
b1a0e4 |
G_CALLBACK (mail_reader_key_press_event_cb), reader);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ display, "notify::load-status",
|
|
|
b1a0e4 |
+ G_CALLBACK (mail_reader_load_status_changed_cb), reader);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_signal_connect_swapped (
|
|
|
b1a0e4 |
message_list, "message-selected",
|
|
|
b1a0e4 |
G_CALLBACK (mail_reader_message_selected_cb), reader);
|
|
|
b1a0e4 |
|