summaryrefslogtreecommitdiff
path: root/launcher
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2012-07-24 18:31:43 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2012-07-24 18:31:43 +0200
commitb4ec30025ad9383fd6085f1cc50e1b078053ebb0 (patch)
treee40b7acd8097ce22658c96e0dc1c10202f500712 /launcher
parent206ab98e51910ced28ee2fbc8fc8032111afc75e (diff)
EdgeBarrierController: be safer, always resize the barrier list on setup barriers
(bzr r2509.2.3)
Diffstat (limited to 'launcher')
-rw-r--r--launcher/EdgeBarrierController.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/launcher/EdgeBarrierController.cpp b/launcher/EdgeBarrierController.cpp
index f3c4cec1b..def374fdc 100644
--- a/launcher/EdgeBarrierController.cpp
+++ b/launcher/EdgeBarrierController.cpp
@@ -181,8 +181,10 @@ void EdgeBarrierController::Subscribe(EdgeBarrierSubscriber* subscriber, unsigne
if (pimpl->subscribers_.size() <= monitor)
pimpl->subscribers_.resize(monitor + 1);
+ auto monitors = UScreen::GetDefault()->GetMonitors();
pimpl->subscribers_[monitor] = subscriber;
- pimpl->SetupBarriers(UScreen::GetDefault()->GetMonitors());
+ pimpl->ResizeBarrierList(monitors);
+ pimpl->SetupBarriers(monitors);
}
void EdgeBarrierController::Unsubscribe(EdgeBarrierSubscriber* subscriber, unsigned int monitor)
@@ -190,8 +192,10 @@ void EdgeBarrierController::Unsubscribe(EdgeBarrierSubscriber* subscriber, unsig
if (pimpl->subscribers_.size() < monitor || pimpl->subscribers_[monitor] != subscriber)
return;
+ auto monitors = UScreen::GetDefault()->GetMonitors();
pimpl->subscribers_[monitor] = nullptr;
- pimpl->SetupBarriers(UScreen::GetDefault()->GetMonitors());
+ pimpl->ResizeBarrierList(monitors);
+ pimpl->SetupBarriers(monitors);
}
void EdgeBarrierController::ProcessBarrierEvent(PointerBarrierWrapper* owner, BarrierEvent::Ptr event)