diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-04-19 16:07:10 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-04-19 16:07:10 +0000 |
commit | ee728d763d8caf983136e8e76ac44c91d10c9815 (patch) | |
tree | d0558229ec8b845104b27bdca77b9cd6284ca918 /libs | |
parent | baa4de40ed5e251ad3b5807ec84f18323d511679 (diff) |
allow invalidation-of-UI-request-by-object-deletion to work more often by setting the event loop record at connect time, not execution time
git-svn-id: svn://localhost/ardour2/branches/3.0@9379 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/pbd/event_loop.cc | 2 | ||||
-rw-r--r-- | libs/pbd/pbd/signals.h | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/libs/pbd/event_loop.cc b/libs/pbd/event_loop.cc index 67fa6cf49a..5a9a220075 100644 --- a/libs/pbd/event_loop.cc +++ b/libs/pbd/event_loop.cc @@ -35,7 +35,7 @@ EventLoop::invalidate_request (void* data) (*i)->invalidation = 0; } delete ir; - } + } return 0; } diff --git a/libs/pbd/pbd/signals.h b/libs/pbd/pbd/signals.h index 17059ec854..668490f97f 100644 --- a/libs/pbd/pbd/signals.h +++ b/libs/pbd/pbd/signals.h @@ -90,6 +90,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } clist.add_connection (_signal.connect (boost::bind (&EventLoop::call_slot, event_loop, ir, slot))); } @@ -97,6 +100,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } c = _signal.connect (boost::bind (&EventLoop::call_slot, event_loop, ir, slot)); } @@ -134,6 +140,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } clist.add_connection (_signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1))); } @@ -141,6 +150,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } c = _signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1)); } @@ -181,6 +193,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } clist.add_connection (_signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2))); } @@ -188,6 +203,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } c = _signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2)); } @@ -227,6 +245,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } clist.add_connection (_signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3))); } @@ -234,6 +255,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } c = _signal.connect (_signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3))); } @@ -273,6 +297,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } clist.add_connection (_signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3, _4))); } @@ -280,6 +307,9 @@ public: PBD::EventLoop::InvalidationRecord* ir, const typename SignalType::slot_function_type& slot, PBD::EventLoop* event_loop) { + if (ir) { + ir->event_loop = event_loop; + } c = _signal.connect (_signal.connect (boost::bind (&compositor, slot, event_loop, ir, _1, _2, _3, _4))); } |