Exemplo n.º 1
0
bool XdndManagerImp::CheckMousePosition()
{
    auto uscreen = UScreen::GetDefault();
    auto monitor = uscreen->GetMonitorWithMouse();

    if (!dnd_data_.empty() && monitor != last_monitor_)
    {
        int old_monitor = last_monitor_;
        last_monitor_ = monitor;
        monitor_changed.emit(dnd_data_, old_monitor, last_monitor_);
    }

    return true;
}
Exemplo n.º 2
0
void XdndManagerImp::OnDndDataCollected(std::vector<std::string> const& mimes)
{
    if (!IsAValidDnd(mimes))
        return;

    dnd_data_ = xdnd_collection_window_->GetData(URI_TYPE);

    if (dnd_data_.empty())
        return;

    auto uscreen = UScreen::GetDefault();
    last_monitor_ = uscreen->GetMonitorWithMouse();

    mouse_poller_timeout_.reset(new glib::Timeout(20, sigc::mem_fun(this, &XdndManagerImp::CheckMousePosition)));

    dnd_started.emit(dnd_data_, last_monitor_);
}
  void CacheFormFactor()
  {
    int raw_from_factor = g_settings_get_enum(usettings_, FORM_FACTOR.c_str());
    FormFactor new_form_factor;

    if (raw_from_factor == 0) //Automatic
    {
      auto uscreen = UScreen::GetDefault();
      int primary_monitor = uscreen->GetMonitorWithMouse();
      auto const& geo = uscreen->GetMonitorGeometry(primary_monitor);

      new_form_factor = geo.height > 799 ? FormFactor::DESKTOP : FormFactor::NETBOOK;
    }
    else
    {
      new_form_factor = static_cast<FormFactor>(raw_from_factor);
    }

    if (new_form_factor != cached_form_factor_)
    {
      cached_form_factor_ = new_form_factor;
      parent_->form_factor.changed.emit(cached_form_factor_);
    }
  }