? a
? a.out
? core.1040
? core.13900
? core.14023
? core.14141
? core.17577
? core.19896
? core.19905
? core.21561
? core.24689
? core.30831
? core.31960
? core.4367
? core.6721
? core.6973
? e-searching-tokenizer-backup.c
? e-searching-tokenizer2.c
? folder-tree.c
? folder-tree.h
? gmon.out
? hrprof.out
? mail-callbacks.c.1
? mail-callbacks.c.save
? mail-cell-info.c
? mail-cell-info.h
? perf.1
? perf.2
? trace
? tree.c
? typescript
? zucchi.diff
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/mail/ChangeLog,v
retrieving revision 1.2327
diff -u -3 -r1.2327 ChangeLog
--- ChangeLog	7 Aug 2002 04:29:30 -0000	1.2327
+++ ChangeLog	7 Aug 2002 05:15:09 -0000
@@ -1,3 +1,12 @@
+2002-08-07  Not Zed  <NotZed@Ximian.com>
+
+	* folder-browser.c (my_folder_browser_init): Hook into drag
+	motion/begin/end.
+	(message_list_drag_begin): Note that we're a drag source.
+	(message_list_drag_end): unnote it.
+	(message_list_drag_motion): If we're dragging, we must be dragging
+	onto ourselves, so set the drag state appropriately.
+
 2002-08-06  Jeffrey Stedfast  <fejj@ximian.com>
 
 	* mail-local.c (save_metainfo): No need to save a temporary file
Index: folder-browser.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/folder-browser.c,v
retrieving revision 1.294
diff -u -3 -r1.294 folder-browser.c
--- folder-browser.c	6 Aug 2002 05:23:13 -0000	1.294
+++ folder-browser.c	7 Aug 2002 05:15:13 -0000
@@ -556,6 +556,43 @@
 }
 
 static void
+message_list_drag_begin(ETree	       *tree,
+			int                 row,
+			ETreePath           path,
+			int                 col,
+			GdkDragContext     *context,
+			FolderBrowser *fb)
+{
+	fb->drag = TRUE;
+}
+
+static void
+message_list_drag_end(ETree	       *tree,
+		      int                 row,
+		      ETreePath           path,
+		      int                 col,
+		      GdkDragContext     *context,
+		      FolderBrowser *fb)
+{
+	fb->drag = FALSE;
+}
+
+static void
+message_list_drag_motion(ETree	       *tree,
+			 int                 row,
+			 ETreePath           path,
+			 int                 col,
+			 GdkDragContext     *context,
+			 gint                x,
+			 gint                y,
+			 guint               time,
+			 FolderBrowser *fb)
+{
+	if (fb->drag)
+		gdk_drag_status(context, 0, time);
+}
+
+static void
 selection_get (GtkWidget *widget, GtkSelectionData *selection_data,
 	       guint info, guint time_stamp, FolderBrowser *fb)
 {
@@ -2480,7 +2517,11 @@
 	
 	gtk_signal_connect (GTK_OBJECT (fb->message_list->tree), "tree_drag_data_received",
 			    GTK_SIGNAL_FUNC (message_list_drag_data_received), fb);
-	
+
+	gtk_signal_connect(GTK_OBJECT(fb->message_list->tree), "tree_drag_motion", message_list_drag_motion, fb);
+	gtk_signal_connect(GTK_OBJECT(fb->message_list->tree), "tree_drag_begin", message_list_drag_begin, fb);
+	gtk_signal_connect(GTK_OBJECT(fb->message_list->tree), "tree_drag_end", message_list_drag_end, fb);
+
 	/* cut, copy & paste */
 	fb->invisible = gtk_invisible_new ();
 	
Index: folder-browser.h
===================================================================
RCS file: /cvs/gnome/evolution/mail/folder-browser.h,v
retrieving revision 1.59
diff -u -3 -r1.59 folder-browser.h
--- folder-browser.h	1 May 2002 08:52:13 -0000	1.59
+++ folder-browser.h	7 Aug 2002 05:15:13 -0000
@@ -68,10 +68,11 @@
 	EFilterBar  *search;
 	FilterRule  *search_full; /* if we have a full search active */
 	
-	gboolean     preview_shown;
-	gboolean     threaded;
-	gboolean     pref_master;
-	
+	gboolean     preview_shown:1;
+	gboolean     threaded:1;
+	gboolean     pref_master:1;
+	int	drag:1;
+
 	FolderBrowserSelectionState selection_state;
 	GSList *sensitize_changes;
 	GHashTable *sensitise_state; /* the last sent sensitise state, to avoid much bonobo overhead */
