scroll folderview during dnd
authorColin Leroy <colin@colino.net>
Mon, 2 Dec 2002 17:06:27 +0000 (17:06 +0000)
committerColin Leroy <colin@colino.net>
Mon, 2 Dec 2002 17:06:27 +0000 (17:06 +0000)
ChangeLog.claws
configure.in
src/folderview.c

index fc81f43ac49096e2becbab258f711cc99ccdee60..674f4c742cb2ff3de0ccc6ffa0bcdcef399fba7f 100644 (file)
@@ -1,4 +1,9 @@
-2002-11-30 [colin]     0.8.6claws46
+2002-11-30 [colin]     0.8.6claws48
+
+       * src/folderview.c
+               Scroll folderview if necessary during dnd
+
+2002-11-30 [colin]     0.8.6claws47
 
        * src/folder.[ch]
                Add check to verify a move is within a single mailbox
index b59f184088b8fd42f505a98753f2d771df3448c8..a7dfe69db184dc558ade7a1cc504a8e4c63ed3ca 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws47
+EXTRA_VERSION=claws48
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 65bdd2f14cc5c66390fda755b91651ab718b6f7c..46c00717f61fb56eb9da453e36df2a199bd6a457 100644 (file)
@@ -2628,9 +2628,20 @@ static gboolean folderview_drag_motion_cb(GtkWidget      *widget,
        FolderItem *item, *src_item;
        GtkCTreeNode *node = NULL;
        gboolean acceptable = FALSE;
-
+       gint height = folderview->ctree->allocation.height;
+       gint total_height = folderview->ctree->requisition.height;
+       GtkAdjustment *pos = gtk_scrolled_window_get_vadjustment(
+                               GTK_SCROLLED_WINDOW(folderview->scrolledwin));
+       gfloat vpos = pos->value;
+       
        if (gtk_clist_get_selection_info
                (GTK_CLIST(widget), x - 24, y - 24, &row, &column)) {
+               if (y > height - 24 && height + vpos < total_height) {
+                       gtk_adjustment_set_value(pos, (vpos+5 > height ? height : vpos+5));
+               }
+               if (y < 24 && y > 0)
+                       gtk_adjustment_set_value(pos, (vpos-5 < 0 ? 0 : vpos-5));
+
                node = gtk_ctree_node_nth(GTK_CTREE(widget), row);
                item = gtk_ctree_node_get_row_data(GTK_CTREE(widget), node);
                src_item = folderview->summaryview->folder_item;