Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 8, 2009, 9:47:28 PM (16 years ago)
Author:
rgrieder
Message:
  • Fixed force feedback output pollution problem in OIS.
  • Fixed InputManager too many times reloading problem.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core5/src/libraries/core/input/InputManager.cc

    r5869 r5910  
    8787        , oisInputManager_(0)
    8888        , devices_(2)
    89         , bExclusiveMouse_(false)
     89        , mouseMode_(MouseMode::Nonexclusive)
    9090        , emptyState_(0)
    9191        , calibratorCallbackHandler_(0)
     
    9797        this->setConfigValues();
    9898
     99        if (GraphicsManager::getInstance().isFullScreen())
     100            mouseMode_ = MouseMode::Exclusive;
    99101        this->loadDevices();
    100102
     
    153155        paramList.insert(std::make_pair("w32_keyboard", "DISCL_FOREGROUND"));
    154156        paramList.insert(std::make_pair("w32_mouse", "DISCL_FOREGROUND"));
    155         if (bExclusiveMouse_ || GraphicsManager::getInstance().isFullScreen())
     157        if (mouseMode_ == MouseMode::Exclusive || GraphicsManager::getInstance().isFullScreen())
    156158        {
    157159            // Disable Windows key plus special keys (like play, stop, next, etc.)
     
    502504
    503505        // Check whether we have to change the mouse mode
     506        MouseMode::Value requestedMode = MouseMode::Dontcare;
    504507        std::vector<InputState*>& mouseStates = devices_[InputDeviceEnumerator::Mouse]->getStateListRef();
    505         if (mouseStates.empty() && bExclusiveMouse_ ||
    506             !mouseStates.empty() && mouseStates.front()->getIsExclusiveMouse() != bExclusiveMouse_)
    507         {
    508             bExclusiveMouse_ = !bExclusiveMouse_;
     508        if (mouseStates.empty())
     509            requestedMode = MouseMode::Nonexclusive;
     510        else
     511            requestedMode = mouseStates.front()->getMouseMode();
     512        if (requestedMode != MouseMode::Dontcare && mouseMode_ != requestedMode)
     513        {
     514            mouseMode_ = requestedMode;
    509515            if (!GraphicsManager::getInstance().isFullScreen())
    510516                this->reloadInternal();
Note: See TracChangeset for help on using the changeset viewer.