InputMethodRequest = InputMethodEventFlag + 6,
ThemeChanged = ThemingEventFlag + 1,
DisplayChangedEvent = 437,
+ SettingChangedEvent = DisplayChangedEvent + 1,
UnknownEvent = 542
};
return QtWindows::FocusInEvent;
case WM_KILLFOCUS:
return QtWindows::FocusOutEvent;
+ // Among other things, WM_SETTINGCHANGE happens when the taskbar is moved
+ // and therefore the "working area" changes.
+ // http://msdn.microsoft.com/en-us/library/ms695534(v=vs.85).aspx
+ case WM_SETTINGCHANGE:
+ return QtWindows::SettingChangedEvent;
case WM_DISPLAYCHANGE:
return QtWindows::DisplayChangedEvent;
case WM_THEMECHANGED:
#endif
case QtWindows::DisplayChangedEvent:
return d->m_screenManager.handleDisplayChange(wParam, lParam);
+ case QtWindows::SettingChangedEvent:
+ return d->m_screenManager.handleScreenChanges();
default:
break;
}
ones and propagates resolution changes to QWindowSystemInterface.
*/
-void QWindowsScreenManager::handleScreenChanges()
+bool QWindowsScreenManager::handleScreenChanges()
{
// Look for changed monitors, add new ones
const WindowsScreenDataList newDataList = monitorData();
delete m_screens.takeAt(i);
} // not found
} // for existing screens
+ return true;
}
QT_END_NAMESPACE
delete m_screens.takeLast();
}
- void handleScreenChanges();
+ bool handleScreenChanges();
bool handleDisplayChange(WPARAM wParam, LPARAM lParam);
const WindowsScreenList &screens() const { return m_screens; }