Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 884106 Details for
Bug 1070764
mark messages as read set to 0 leads to occasional read mark skip
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
evo patch
evo-auto-mark-as-seen.patch (text/plain), 9.56 KB, created by
Milan Crha
on 2014-04-08 14:48:35 UTC
(
hide
)
Description:
evo patch
Filename:
MIME Type:
Creator:
Milan Crha
Created:
2014-04-08 14:48:35 UTC
Size:
9.56 KB
patch
obsolete
>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 >--- evolution-3.8.5/addressbook/gui/widgets/e-minicard.c.evo-auto-mark-as-seen 2013-07-23 14:52:21.000000000 +0200 >+++ evolution-3.8.5/addressbook/gui/widgets/e-minicard.c 2014-04-08 16:47:25.973980063 +0200 >@@ -631,8 +631,9 @@ e_minicard_event (GnomeCanvasItem *item, > break; > case GDK_MOTION_NOTIFY: > if (e_minicard->drag_button_down && event->motion.state & GDK_BUTTON1_MASK) { >- if (MAX (abs (e_minicard->button_x - event->motion.x), >- abs (e_minicard->button_y - event->motion.y)) > 3) { >+ if (gtk_drag_check_threshold (GTK_WIDGET (item->canvas), >+ e_minicard->button_x, e_minicard->button_y, >+ event->motion.x, event->motion.y)) { > gint ret_val; > > ret_val = e_minicard_drag_begin (e_minicard, event); >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 >--- evolution-3.8.5/calendar/gui/e-day-view.c.evo-auto-mark-as-seen 2013-07-23 14:52:29.000000000 +0200 >+++ evolution-3.8.5/calendar/gui/e-day-view.c 2014-04-08 16:47:25.974980056 +0200 >@@ -75,10 +75,6 @@ > /* The number of timeouts we skip before we start scrolling. */ > #define E_DAY_VIEW_AUTO_SCROLL_DELAY 5 > >-/* The number of pixels the mouse has to be moved with the button down before >- * we start a drag. */ >-#define E_DAY_VIEW_DRAG_START_OFFSET 4 >- > /* The amount we scroll the main canvas when the Page Up/Down keys are pressed, > * as a fraction of the page size. */ > #define E_DAY_VIEW_PAGE_STEP 0.5 >@@ -4239,10 +4235,7 @@ e_day_view_on_top_canvas_motion (GtkWidg > return FALSE; > > if (!e_cal_util_component_has_recurrences (event->comp_data->icalcomp) >- && (abs (canvas_x - day_view->drag_event_x) >- > E_DAY_VIEW_DRAG_START_OFFSET >- || abs (canvas_y - day_view->drag_event_y) >- > E_DAY_VIEW_DRAG_START_OFFSET)) { >+ && gtk_drag_check_threshold (widget, day_view->drag_event_x, day_view->drag_event_y, canvas_x, canvas_y)) { > day_view->drag_event_day = day_view->pressed_event_day; > day_view->drag_event_num = day_view->pressed_event_num; > day_view->pressed_event_day = -1; >@@ -4351,10 +4344,7 @@ e_day_view_on_main_canvas_motion (GtkWid > && day_view->pressed_event_day != E_DAY_VIEW_LONG_EVENT) { > GtkTargetList *target_list; > >- if ((abs (canvas_x - day_view->drag_event_x) >- > E_DAY_VIEW_DRAG_START_OFFSET >- || abs (canvas_y - day_view->drag_event_y) >- > E_DAY_VIEW_DRAG_START_OFFSET)) { >+ if (gtk_drag_check_threshold (widget, day_view->drag_event_x, day_view->drag_event_y, canvas_x, canvas_y)) { > day_view->drag_event_day = day_view->pressed_event_day; > day_view->drag_event_num = day_view->pressed_event_num; > day_view->pressed_event_day = -1; >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 >--- 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 >+++ evolution-3.8.5/e-util/e-table-field-chooser-item.c 2014-04-08 16:47:25.974980056 +0200 >@@ -548,14 +548,14 @@ etfci_maybe_start_drag (ETableFieldChoos > gint x, > gint y) > { >+ GnomeCanvasItem *item; >+ > if (!etfci->maybe_drag) > return FALSE; > >- if (MAX (abs (etfci->click_x - x), >- abs (etfci->click_y - y)) <= 3) >- return FALSE; >+ item = GNOME_CANVAS_ITEM (etfci); > >- return TRUE; >+ return gtk_drag_check_threshold (GTK_WIDGET (item->canvas), etfci->click_x, etfci->click_y, x, y); > } > > static void >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 >--- evolution-3.8.5/e-util/e-table-header-item.c.evo-auto-mark-as-seen 2013-08-10 23:38:42.000000000 +0200 >+++ evolution-3.8.5/e-util/e-table-header-item.c 2014-04-08 16:47:25.974980056 +0200 >@@ -1220,6 +1220,8 @@ static gboolean > ethi_maybe_start_drag (ETableHeaderItem *ethi, > GdkEventMotion *event) > { >+ GnomeCanvasItem *item; >+ > if (!ethi->maybe_drag) > return FALSE; > >@@ -1228,11 +1230,9 @@ ethi_maybe_start_drag (ETableHeaderItem > return FALSE; > } > >- if (MAX (abs (ethi->click_x - event->x), >- abs (ethi->click_y - event->y)) <= 3) >- return FALSE; >+ item = GNOME_CANVAS_ITEM (ethi); > >- return TRUE; >+ return gtk_drag_check_threshold (GTK_WIDGET (item->canvas), ethi->click_x, ethi->click_y, event->x, event->y); > } > > static void >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 >--- evolution-3.8.5/e-util/e-table-item.c.evo-auto-mark-as-seen 2013-08-03 15:22:52.000000000 +0200 >+++ evolution-3.8.5/e-util/e-table-item.c 2014-04-08 16:47:25.975980049 +0200 >@@ -2722,8 +2722,7 @@ eti_event (GnomeCanvasItem *item, > gnome_canvas_item_w2i (item, &event_x_item, &event_y_item); > > if (eti->maybe_in_drag) { >- if (abs (event_x_item - eti->drag_x) >= 3 || >- abs (event_y_item - eti->drag_y) >= 3) { >+ if (gtk_drag_check_threshold (GTK_WIDGET (item->canvas), eti->drag_x, eti->drag_y, event_x_item, event_y_item)) { > gboolean drag_handled; > > eti->maybe_in_drag = 0; >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 >--- evolution-3.8.5/mail/e-mail-reader.c.evo-auto-mark-as-seen 2013-07-23 14:51:57.000000000 +0200 >+++ evolution-3.8.5/mail/e-mail-reader.c 2014-04-08 16:47:25.975980049 +0200 >@@ -93,6 +93,11 @@ struct _EMailReaderPrivate { > guint avoid_next_mark_as_seen : 1; > > guint group_by_threads : 1; >+ >+ /* to be able to start the mark_seen timeout only after >+ the message is loaded into the EMailDisplay */ >+ gboolean schedule_mark_seen; >+ guint schedule_mark_seen_interval; > }; > > enum { >@@ -2723,9 +2728,62 @@ mail_reader_message_seen_cb (EMailReader > return FALSE; > } > >-static gboolean >+static void > schedule_timeout_mark_seen (EMailReader *reader) > { >+ EMailReaderPrivate *priv; >+ MessageList *message_list; >+ >+ g_return_if_fail (E_IS_MAIL_READER (reader)); >+ >+ priv = E_MAIL_READER_GET_PRIVATE (reader); >+ >+ message_list = MESSAGE_LIST (e_mail_reader_get_message_list (reader)); >+ g_return_if_fail (message_list != NULL); >+ >+ if (message_list->cursor_uid) { >+ EMailReaderClosure *timeout_closure; >+ >+ if (message_list->seen_id > 0) { >+ g_source_remove (message_list->seen_id); >+ message_list->seen_id = 0; >+ } >+ >+ timeout_closure = g_slice_new0 (EMailReaderClosure); >+ timeout_closure->reader = g_object_ref (reader); >+ timeout_closure->message_uid = g_strdup (message_list->cursor_uid); >+ >+ MESSAGE_LIST (message_list)->seen_id = >+ g_timeout_add_full ( >+ G_PRIORITY_DEFAULT, priv->schedule_mark_seen_interval, >+ (GSourceFunc) mail_reader_message_seen_cb, >+ timeout_closure, (GDestroyNotify) >+ mail_reader_closure_free); >+ } >+} >+ >+static void >+mail_reader_load_status_changed_cb (EMailReader *reader, >+ GParamSpec *pspec, >+ EMailDisplay *display) >+{ >+ EMailReaderPrivate *priv; >+ >+ if (webkit_web_view_get_load_status (WEBKIT_WEB_VIEW (display)) != WEBKIT_LOAD_FINISHED) >+ return; >+ >+ priv = E_MAIL_READER_GET_PRIVATE (reader); >+ if (priv->schedule_mark_seen && >+ E_IS_MAIL_VIEW (reader) && >+ e_mail_display_get_parts_list (display) && >+ e_mail_view_get_preview_visible (E_MAIL_VIEW (reader))) >+ schedule_timeout_mark_seen (reader); >+} >+ >+static gboolean >+maybe_schedule_timeout_mark_seen (EMailReader *reader) >+{ >+ EMailReaderPrivate *priv; > EShell *shell; > EMailBackend *backend; > EShellBackend *shell_backend; >@@ -2758,19 +2816,9 @@ schedule_timeout_mark_seen (EMailReader > message_list->seen_id = 0; > } > >- if (schedule_timeout) { >- EMailReaderClosure *timeout_closure; >- >- timeout_closure = g_slice_new0 (EMailReaderClosure); >- timeout_closure->reader = g_object_ref (reader); >- timeout_closure->message_uid = g_strdup (message_uid); >- >- MESSAGE_LIST (message_list)->seen_id = g_timeout_add_full ( >- G_PRIORITY_DEFAULT, timeout_interval, >- (GSourceFunc) mail_reader_message_seen_cb, >- timeout_closure, (GDestroyNotify) >- mail_reader_closure_free); >- } >+ priv = E_MAIL_READER_GET_PRIVATE (reader); >+ priv->schedule_mark_seen = schedule_timeout; >+ priv->schedule_mark_seen_interval = timeout_interval; > > return schedule_timeout; > } >@@ -2778,10 +2826,14 @@ schedule_timeout_mark_seen (EMailReader > static gboolean > discard_timeout_mark_seen_cb (EMailReader *reader) > { >+ EMailReaderPrivate *priv; > MessageList *message_list; > > g_return_val_if_fail (reader != NULL, FALSE); > >+ priv = E_MAIL_READER_GET_PRIVATE (reader); >+ priv->schedule_mark_seen = FALSE; >+ > message_list = MESSAGE_LIST (e_mail_reader_get_message_list (reader)); > g_return_val_if_fail (message_list != NULL, FALSE); > >@@ -3009,7 +3061,7 @@ mail_reader_message_cursor_change_cb (EM > E_IS_MAIL_VIEW (reader) && > e_mail_view_get_preview_visible (E_MAIL_VIEW (reader)) && > !priv->avoid_next_mark_as_seen) >- schedule_timeout_mark_seen (reader); >+ maybe_schedule_timeout_mark_seen (reader); > } > > static void >@@ -3249,7 +3301,7 @@ mail_reader_message_loaded (EMailReader > if (message != NULL && > !priv->restoring_message_selection && > !priv->avoid_next_mark_as_seen && >- schedule_timeout_mark_seen (reader)) { >+ maybe_schedule_timeout_mark_seen (reader)) { > g_clear_error (&error); > } else if (error != NULL) { > e_alert_submit ( >@@ -4118,6 +4170,10 @@ connect_signals: > G_CALLBACK (mail_reader_key_press_event_cb), reader); > > g_signal_connect_swapped ( >+ display, "notify::load-status", >+ G_CALLBACK (mail_reader_load_status_changed_cb), reader); >+ >+ g_signal_connect_swapped ( > message_list, "message-selected", > G_CALLBACK (mail_reader_message_selected_cb), reader); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1070764
: 884106