summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-04-19 16:07:10 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-04-19 16:07:10 +0000
commitee728d763d8caf983136e8e76ac44c91d10c9815 (patch)
treed0558229ec8b845104b27bdca77b9cd6284ca918 /libs
parentbaa4de40ed5e251ad3b5807ec84f18323d511679 (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.cc2
-rw-r--r--libs/pbd/pbd/signals.h30
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)));
}