I have a handler that looks like this in my TreeView:

[GLib.ConnectBefore]
void HandleDragMotion (object o, DragMotionArgs args)
{
        TreePath path;
        TreeViewDropPosition pos;
        if (!GetDestRowAtPos (args.X, args.Y, out path, out pos))
                return;
        
        if (pos == TreeViewDropPosition.Before)
                SetDragDestRow (path, TreeViewDropPosition.IntoOrBefore);
        else if (pos == TreeViewDropPosition.After)
                SetDragDestRow (path, TreeViewDropPosition.IntoOrAfter);
        
        Gdk.Drag.Status (args.Context, args.Context.SuggestedAction, args.Time);
        
        args.RetVal = true;
}

...

DragMotion += HandleDragMotion;


Basically all it does is make sure you can only drop ON rows, not
BETWEEN them. My problem is that this disables expand-on-hover for
drag and drop. If I get rid of the last line (args.RetVal = true;),
expand-on-hover is enabled again, but so is dropping between rows.

Is there any way to achieve both of these things? Theoretically, I
should be able to just implement the expand-on-hover myself, but I
can't find any code for what it's supposed to look like. I tried using
the ExpandHover property (turing it on on DragBegin, and off on
DragEnd), but it only expands the first row that you hover over, then
stops working.

Any ideas?
_______________________________________________
Gtk-sharp-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

Reply via email to