aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog7
-rw-r--r--mail/em-folder-browser.c12
-rw-r--r--mail/message-list.c3
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);