diff options
| -rw-r--r-- | hud/HudController.cpp | 2 | ||||
| -rw-r--r-- | launcher/CairoBaseWindow.cpp | 11 | ||||
| -rw-r--r-- | launcher/EdgeBarrierController.cpp | 51 | ||||
| -rw-r--r-- | launcher/EdgeBarrierControllerPrivate.h | 5 | ||||
| -rw-r--r-- | plugins/unityshell/src/unityshell.cpp | 8 | 
5 files changed, 32 insertions, 45 deletions
| diff --git a/hud/HudController.cpp b/hud/HudController.cpp index f88e8120f..ab941e88a 100644 --- a/hud/HudController.cpp +++ b/hud/HudController.cpp @@ -83,7 +83,7 @@ Controller::Controller(Controller::ViewCreator const& create_view,  }  SetupWindow(); - UScreen::GetDefault()->changed.connect([this] (int, std::vector<nux::Geometry> const&) { Relayout(true); }); + UScreen::GetDefault()->changed.connect(sigc::track_obj([this] (int, std::vector<nux::Geometry> const&) { Relayout(true); }, *this));  ubus.RegisterInterest(UBUS_HUD_CLOSE_REQUEST, sigc::mem_fun(this, &Controller::OnExternalHideHud)); diff --git a/launcher/CairoBaseWindow.cpp b/launcher/CairoBaseWindow.cpp index 83472e202..5de652fb2 100644 --- a/launcher/CairoBaseWindow.cpp +++ b/launcher/CairoBaseWindow.cpp @@ -110,8 +110,14 @@ void CairoBaseWindow::Draw(nux::GraphicsEngine& gfxContext, bool forceDraw)  nux::ObjectPtr <nux::IOpenGLBaseTexture> bkg_texture = gfxContext.CreateTextureFromBackBuffer(base.x, base.y, base.width, base.height); - nux::TexCoordXForm texxform_bkg; - bg_blur_texture_ = gfxContext.QRP_GetBlurTexture(0, 0, base.width, base.height, bkg_texture, texxform_bkg, nux::color::White, 1.0f, 3); + if (bkg_texture.IsValid()) + { + nux::TexCoordXForm texxform_bkg; + bg_blur_texture_ = gfxContext.QRP_GetBlurTexture(0, 0, base.width, base.height, bkg_texture, texxform_bkg, nux::color::White, 1.0f, 3); + + if (bg_blur_texture_) + compute_blur_bkg_ = false; + }  if (current_fbo.IsValid())  { @@ -124,7 +130,6 @@ void CairoBaseWindow::Draw(nux::GraphicsEngine& gfxContext, bool forceDraw)  gfxContext.Push2DWindow(gfxContext.GetWindowWidth(), gfxContext.GetWindowHeight());  gfxContext.ApplyClippingRectangle();  } - compute_blur_bkg_ = false;  }  // the elements position inside the window are referenced to top-left window diff --git a/launcher/EdgeBarrierController.cpp b/launcher/EdgeBarrierController.cpp index 42d509eb3..4e15b5015 100644 --- a/launcher/EdgeBarrierController.cpp +++ b/launcher/EdgeBarrierController.cpp @@ -48,16 +48,17 @@ EdgeBarrierController::Impl::Impl(EdgeBarrierController *parent)  auto monitors = uscreen->GetMonitors();  ResizeBarrierList(monitors); - /* FIXME: Back to c++11 lambda once we get sigc::track_obj. - uscreen->changed.connect(sigc::track_obj(([this](int primary, std::vector<nux::Geometry> const& layout) { - ResizeBarrierList(layout); - SetupBarriers(layout); - }));*/ + uscreen->changed.connect(sigc::track_obj([this] (int primary, std::vector<nux::Geometry> const& layout) { + ResetBarriers(); + }, *this)); - uscreen->changed.connect(sigc::mem_fun(this, &EdgeBarrierController::Impl::OnUScreenChanged)); - Settings::Instance().launcher_position.changed.connect(sigc::hide(sigc::mem_fun(this, &EdgeBarrierController::Impl::OnOptionsChanged))); + parent_->force_disable.changed.connect(sigc::track_obj([this] (bool) { + ResetBarriers(); + }, *this)); - parent_->force_disable.changed.connect(sigc::mem_fun(this, &EdgeBarrierController::Impl::OnForceDisableChanged)); + Settings::Instance().launcher_position.changed.connect(sigc::track_obj([this] (LauncherPosition) { + ResetBarriers(); + }, *this));  parent_->sticky_edges.SetGetterFunction([this] {  return parent_->options() ? parent_->options()->edge_resist() : false; @@ -73,12 +74,11 @@ EdgeBarrierController::Impl::Impl(EdgeBarrierController *parent)  });  parent_->options.changed.connect([this](launcher::Options::Ptr options) { - /* FIXME: Back to c++11 lambda once we get sigc::track_obj. - options->option_changed.connect([this]() { - SetupBarriers(UScreen::GetDefault()->GetMonitors()); - });*/ - options->option_changed.connect(sigc::mem_fun(this, &EdgeBarrierController::Impl::OnOptionsChanged)); - SetupBarriers(UScreen::GetDefault()->GetMonitors()); + options->option_changed.connect(sigc::track_obj([this] { + ResetBarriers(); + }, *this)); + + ResetBarriers();  });  } @@ -87,33 +87,20 @@ EdgeBarrierController::Impl::~Impl()  nux::GetGraphicsDisplay()->RemoveEventFilter(this);  } -void EdgeBarrierController::Impl::OnUScreenChanged(int primary, std::vector<nux::Geometry> const& layout) -{ - ResizeBarrierList(layout); - SetupBarriers(layout); -} - -void EdgeBarrierController::Impl::OnForceDisableChanged(bool value) +void EdgeBarrierController::Impl::ResetBarriers()  { - auto monitors = UScreen::GetDefault()->GetMonitors(); + auto const& monitors = UScreen::GetDefault()->GetMonitors();  ResizeBarrierList(monitors);  SetupBarriers(monitors);  } -void EdgeBarrierController::Impl::OnOptionsChanged() -{ - SetupBarriers(UScreen::GetDefault()->GetMonitors()); -} -  void EdgeBarrierController::Impl::AddSubscriber(EdgeBarrierSubscriber* subscriber, unsigned int monitor, std::vector<EdgeBarrierSubscriber*>& subscribers)  {  if (monitor >= subscribers.size())  subscribers.resize(monitor + 1); - auto const& monitors = UScreen::GetDefault()->GetMonitors();  subscribers[monitor] = subscriber; - ResizeBarrierList(monitors); - SetupBarriers(monitors); + ResetBarriers();  }  void EdgeBarrierController::Impl::RemoveSubscriber(EdgeBarrierSubscriber* subscriber, unsigned int monitor, std::vector<EdgeBarrierSubscriber*>& subscribers) @@ -121,10 +108,8 @@ void EdgeBarrierController::Impl::RemoveSubscriber(EdgeBarrierSubscriber* subscr  if (monitor >= subscribers.size() || subscribers[monitor] != subscriber)  return; - auto const& monitors = UScreen::GetDefault()->GetMonitors();  subscribers[monitor] = nullptr; - ResizeBarrierList(monitors); - SetupBarriers(monitors); + ResetBarriers();  }  void EdgeBarrierController::Impl::ResizeBarrierList(std::vector<nux::Geometry> const& layout) diff --git a/launcher/EdgeBarrierControllerPrivate.h b/launcher/EdgeBarrierControllerPrivate.h index 1de19822c..a7bc76de2 100644 --- a/launcher/EdgeBarrierControllerPrivate.h +++ b/launcher/EdgeBarrierControllerPrivate.h @@ -40,10 +40,7 @@ struct EdgeBarrierController::Impl : public sigc::trackable  void ResizeBarrierList(std::vector<nux::Geometry> const& layout);  void SetupBarriers(std::vector<nux::Geometry> const& layout); - - void OnUScreenChanged(int primary, std::vector<nux::Geometry> const& layout); - void OnForceDisableChanged(bool value); - void OnOptionsChanged(); + void ResetBarriers();  void OnPointerBarrierEvent(PointerBarrierWrapper::Ptr const& owner, BarrierEvent::Ptr const& event);  void BarrierPush(PointerBarrierWrapper::Ptr const& owner, BarrierEvent::Ptr const& event); diff --git a/plugins/unityshell/src/unityshell.cpp b/plugins/unityshell/src/unityshell.cpp index 1c49cdd03..ff739f6d6 100644 --- a/plugins/unityshell/src/unityshell.cpp +++ b/plugins/unityshell/src/unityshell.cpp @@ -4194,13 +4194,13 @@ void UnityScreen::InitUnityComponents()  }  }; - UScreen::GetDefault()->changed.connect([this, check_launchers_size] (int, std::vector<nux::Geometry> const&) { + UScreen::GetDefault()->changed.connect(sigc::track_obj([this, check_launchers_size] (int, std::vector<nux::Geometry> const&) {  check_launchers_size(); - }); + }, *this)); - Settings::Instance().launcher_position.changed.connect([this, check_launchers_size] (LauncherPosition const&) { + Settings::Instance().launcher_position.changed.connect(sigc::track_obj([this, check_launchers_size] (LauncherPosition const&) {  check_launchers_size(); - }); + }, *this));  check_launchers_size(); | 
