diff options
-rw-r--r-- | mail/ChangeLog | 7 | ||||
-rw-r--r-- | mail/em-folder-browser.c | 12 | ||||
-rw-r--r-- | mail/message-list.c | 3 |
3 files changed, 22 insertions, 0 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index c0ae2eb673..016b417ba3 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,10 @@ +2006-01-13 Srinivasa Ragavan <sragavan@novell.com> + + * em-folder-browser.c: (emfb_etree_unfreeze), (emfb_list_built): + * message-list.c: (message_list_setup_etree): + + Fixes the scroll issue with the message list. + 2006-01-12 Srinivasa Ragavan <sragavan@novell.com> * GNOME_Evolution_Mail.server.in.in: diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c index 4eac993fe0..efe3544c34 100644 --- a/mail/em-folder-browser.c +++ b/mail/em-folder-browser.c @@ -982,6 +982,16 @@ emfb_folder_changed(CamelFolder *folder, CamelFolderChangeInfo *changes, EMFolde mail_async_event_emit(emfb->view.async, MAIL_ASYNC_GUI, (MailAsyncFunc)emfb_gui_folder_changed, folder, NULL, emfb); } +static void +emfb_etree_unfreeze (GtkWidget *widget, GdkEvent *event, EMFolderView *emfv) +{ + + ETableItem *item = e_tree_get_item (emfv->list->tree); + + g_object_set_data (((GnomeCanvasItem *) item)->canvas, "freeze-cursor", 0); +} + + /* TODO: This should probably be handled by message-list, by storing/queueing up the select operation if its busy rebuilding the message-list */ static void @@ -1023,6 +1033,8 @@ emfb_list_built (MessageList *ml, EMFolderBrowser *emfb) * e_canvas_item_region_show_relay() uses a timeout, we have to use a timeout of the * same interval but a lower priority. */ emfb->priv->idle_scroll_id = g_timeout_add_full (G_PRIORITY_LOW, 250, (GSourceFunc) scroll_idle_cb, emfb, NULL); + /* FIXME: This is another ugly hack done to hide a bug that above hack leaves. */ + g_signal_connect (((GtkScrolledWindow *) ml)->vscrollbar, "button-press-event", G_CALLBACK (emfb_etree_unfreeze), emfb); } static void diff --git a/mail/message-list.c b/mail/message-list.c index 8741c85c5b..f95624ee04 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1508,6 +1508,7 @@ message_list_setup_etree (MessageList *message_list, gboolean outgoing) char *path; char *name; struct stat st; + ETableItem *item = e_tree_get_item (message_list->tree); g_object_set (message_list->tree, "uniform_row_height", TRUE, @@ -1517,6 +1518,8 @@ message_list_setup_etree (MessageList *message_list, gboolean outgoing) d(printf ("folder name is '%s'\n", name)); path = mail_config_folder_to_cachename (message_list->folder, "et-expanded-"); + g_object_set_data (((GnomeCanvasItem *) item)->canvas, "freeze-cursor", 1); + if (path && g_stat (path, &st) == 0 && st.st_size > 0 && S_ISREG (st.st_mode)) { /* build based on saved file */ e_tree_load_expanded_state (message_list->tree, path); |