[Xfce4-commits] <postler:master> Use tree paths instead of iters for drag and drop
Christian Dywan
noreply at xfce.org
Fri Feb 25 02:30:01 CET 2011
Updating branch refs/heads/master
to 59f8505924e2b00393c39b2c94e364383ea11a35 (commit)
from 03876d5c64dcae169c7dbecb6557d46f59f0cfe8 (commit)
commit 59f8505924e2b00393c39b2c94e364383ea11a35
Author: Christian Dywan <christian at twotoasts.de>
Date: Fri Feb 25 01:52:54 2011 +0100
Use tree paths instead of iters for drag and drop
postler/postler-folders.vala | 27 +++++++++++++++------------
1 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala
index d870587..e0b609b 100644
--- a/postler/postler-folders.vala
+++ b/postler/postler-folders.vala
@@ -13,8 +13,8 @@ public class Postler.Folders : Gtk.TreeView {
Accounts accounts;
AccountInfo local_info;
Gtk.TreeStore store;
- Gtk.TreeIter? selected_folder = null;
- Gtk.TreeIter? drop_folder = null;
+ Gtk.TreePath? selected_folder = null;
+ Gtk.TreePath? drop_folder = null;
int blink_counter = -1;
public Postler.Messages messages { get; set; }
@@ -77,8 +77,10 @@ public class Postler.Folders : Gtk.TreeView {
bool on_drag_motion (Gdk.DragContext context, int x, int y, uint time_) {
if (selected_folder == null) {
- var model = get_model ();
- get_selection ().get_selected (out model, out selected_folder);
+ Gtk.TreeModel model;
+ Gtk.TreeIter iter;
+ get_selection ().get_selected (out model, out iter);
+ selected_folder = model.get_path (iter);
}
Gtk.TreePath path;
Gtk.TreeViewDropPosition pos;
@@ -90,23 +92,24 @@ public class Postler.Folders : Gtk.TreeView {
}
void on_drag_leave (Gdk.DragContext context, uint time_) {
- get_selection ().select_iter (selected_folder);
+ get_selection ().select_path (selected_folder);
selected_folder = null;
}
bool on_drag_drop (Gdk.DragContext context, int x, int y, uint time_) {
if (selected_folder == null) {
- var model = get_model ();
- get_selection ().get_selected (out model, out selected_folder);
+ Gtk.TreeModel model;
+ Gtk.TreeIter iter;
+ get_selection ().get_selected (out model, out iter);
+ selected_folder = model.get_path (iter);
}
Gtk.TreePath path;
Gtk.TreeViewDropPosition pos;
if (get_dest_row_at_pos (x, y, out path, out pos)) {
var selection = get_selection ();
selection.select_path (path);
- var model = get_model ();
- model.get_iter_from_string (out drop_folder, path.to_string ());
- if (selected_folder != drop_folder)
+ drop_folder = path;
+ if (selected_folder.compare (drop_folder) != 0)
GLib.Timeout.add (350, blink);
}
return true;
@@ -117,7 +120,7 @@ public class Postler.Folders : Gtk.TreeView {
if (blink_counter > 5) {
drop_folder = null;
blink_counter = -1;
- get_selection ().select_iter (selected_folder);
+ get_selection ().select_path (selected_folder);
selected_folder = null;
return false;
}
@@ -125,7 +128,7 @@ public class Postler.Folders : Gtk.TreeView {
get_selection ().unselect_all ();
return true;
} else {
- get_selection ().select_iter (drop_folder);
+ get_selection ().select_path (drop_folder);
return true;
}
}
More information about the Xfce4-commits
mailing list