diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2012-07-24 18:31:43 +0200 |
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2012-07-24 18:31:43 +0200 |
| commit | b4ec30025ad9383fd6085f1cc50e1b078053ebb0 (patch) | |
| tree | e40b7acd8097ce22658c96e0dc1c10202f500712 /launcher | |
| parent | 206ab98e51910ced28ee2fbc8fc8032111afc75e (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.cpp | 8 |
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) |
