diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-11-09 22:54:24 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-11-09 22:54:24 +0000 |
commit | 95a59536a7c7e827587c215262c3ddd7929c259f (patch) | |
tree | 0b96c6d29bb9bb5cb03baee32d5407036a888440 | |
parent | 1082218dfadd636865c1b84fce1ca1d6c3dd23de (diff) |
make drop_paths() run in an idle handler on OS X to deal with the current DnD handling there. still need to fix drop_regions() to do the same
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4130 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor.h | 15 | ||||
-rw-r--r-- | gtk2_ardour/editor_audio_import.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 23 |
3 files changed, 37 insertions, 9 deletions
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 5dffd13b7a..05066d5d8c 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1162,6 +1162,20 @@ class Editor : public PublicEditor void bring_in_external_audio (Editing::ImportMode mode, nframes64_t& pos); + bool idle_drop_paths (const Glib::RefPtr<Gdk::DragContext>& context, + gint x, + gint y, + const Gtk::SelectionData& data, + guint info, + guint time); + + void _drop_paths (const Glib::RefPtr<Gdk::DragContext>& context, + gint x, + gint y, + const Gtk::SelectionData& data, + guint info, + guint time); + void _do_import (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&); void do_import (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&); bool idle_do_import (vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&); @@ -1883,7 +1897,6 @@ public: guint info, guint time); - void drop_paths (const Glib::RefPtr<Gdk::DragContext>& context, gint x, gint y, diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index d8be18300f..41f07692ca 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -291,11 +291,7 @@ Editor::idle_do_import (vector<ustring> paths, ImportDisposition chns, ImportMod void Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos) { -#ifdef GTKOSX - Glib::signal_idle().connect (bind (mem_fun (*this, &Editor::idle_do_import), paths, chns, mode, quality, pos)); -#else _do_import (paths, chns, mode, quality, pos); -#endif } void @@ -424,11 +420,7 @@ Editor::idle_do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode void Editor::do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode, nframes64_t& pos) { -#ifdef GTKOSX - Glib::signal_idle().connect (bind (mem_fun (*this, &Editor::idle_do_embed), paths, chns, mode, pos)); -#else _do_embed (paths, chns, mode, pos); -#endif } void diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc index fbfd4770e7..b2334ecdc7 100644 --- a/gtk2_ardour/editor_canvas.cc +++ b/gtk2_ardour/editor_canvas.cc @@ -456,12 +456,35 @@ Editor::track_canvas_drag_data_received (const RefPtr<Gdk::DragContext>& context } } +bool +Editor::idle_drop_paths (const RefPtr<Gdk::DragContext>& context, + int x, int y, + const SelectionData& data, + guint info, guint time) +{ + _drop_paths (context, x, y, data, info, time); + return false; +} + void Editor::drop_paths (const RefPtr<Gdk::DragContext>& context, int x, int y, const SelectionData& data, guint info, guint time) { +#ifdef GTKOSX + Glib::signal_idle().connect (bind (mem_fun (*this, &Editor::idle_drop_paths), context, x, y, data, info, time)); +#else + _drop_paths (context, x, y, data, info, time); +#endif +} + +void +Editor::_drop_paths (const RefPtr<Gdk::DragContext>& context, + int x, int y, + const SelectionData& data, + guint info, guint time) +{ TimeAxisView* tvp; AudioTimeAxisView* tv; double cy; |