FWIW, in fix of Bug #894143 "Unable to select multiple bookmarks for moving/deleting" I developed own DND functions.
For the DND issue, I did not implement the fix in the DND functions but in the midori_bookmarks_row_expanded_cb...
In fact, I replaced it by a midori_bookmarks_test_expand_row_cb where I cleanup the folders child's list, where GtkTreeView basic implementation of DND move can add childs, before doing the populate from database.
I choose this design to let it be compatible with the GtkTreeStore I actually derived from to implement multiple selection DND.
For the bookmarkbar reflexion of DND manipulations I implemented an "update-item" signal in the KatzeArray object.
A first step of this design is available in the patch I proposed for Bug #1179200 "Bookmark folder tree collapsed on bookmarks update"
I faced the two issues your mention in my trials.
FWIW, in fix of Bug #894143 "Unable to select multiple bookmarks for moving/deleting" I developed own DND functions.
For the DND issue, I did not implement the fix in the DND functions but in the midori_ bookmarks_ row_expanded_ cb... bookmarks_ test_expand_ row_cb where I cleanup the folders child's list, where GtkTreeView basic implementation of DND move can add childs, before doing the populate from database.
In fact, I replaced it by a midori_
I choose this design to let it be compatible with the GtkTreeStore I actually derived from to implement multiple selection DND.
For the bookmarkbar reflexion of DND manipulations I implemented an "update-item" signal in the KatzeArray object.
A first step of this design is available in the patch I proposed for Bug #1179200 "Bookmark folder tree collapsed on bookmarks update"