diff --git a/examples/opengl/hellogl/hellogl.pro b/examples/opengl/hellogl/hellogl.pro index 4291383..bf51650 100644 --- a/examples/opengl/hellogl/hellogl.pro +++ b/examples/opengl/hellogl/hellogl.pro @@ -9,7 +9,7 @@ SOURCES = glwidget.cpp \ window.cpp \ qtlogo.cpp QT += opengl widgets - +CONFIG+=console # install target.path = $$[QT_INSTALL_EXAMPLES]/opengl/hellogl INSTALLS += target diff --git a/examples/opengl/hellogl/window.cpp b/examples/opengl/hellogl/window.cpp index 2a85bbe..b4f95d9 100644 --- a/examples/opengl/hellogl/window.cpp +++ b/examples/opengl/hellogl/window.cpp @@ -46,11 +46,17 @@ //! [0] Window::Window() { + setObjectName("Window"); glWidget = new GLWidget; + glWidget->setObjectName("GLWidget"); xSlider = createSlider(); + xSlider->setObjectName("xSlider"); ySlider = createSlider(); + ySlider->setObjectName("ySlider"); zSlider = createSlider(); + zSlider->setObjectName("zSlider"); + connect(xSlider, SIGNAL(valueChanged(int)), glWidget, SLOT(setXRotation(int))); connect(glWidget, SIGNAL(xRotationChanged(int)), xSlider, SLOT(setValue(int))); diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 9ef1971..10541ab 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -345,11 +345,23 @@ void QWindowPrivate::updateVisibility() emit q->visibilityChanged(visibility); } +static QByteArray screenName(QScreen *s) +{ + QByteArray r = QByteArray::number(quintptr(s)); + if (s) + r += ' ' + s->name().toLatin1() ; + return r; +} + void QWindowPrivate::setScreen(QScreen *newScreen, bool recreate) { Q_Q(QWindow); + qDebug() << __FUNCTION__ << q + << screenName(q->screen()) + << screenName(newScreen) << recreate; if (newScreen != q->screen()) { const bool shouldRecreate = recreate && platformWindow != 0; + qDebug() << __FUNCTION__ << this << "shouldRecreate" << shouldRecreate; if (shouldRecreate) q->destroy(); if (screen) diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index de0a583..9d21cb1 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -779,8 +779,10 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, return false; #endif case QtWindows::DisplayChangedEvent: + qDebug() << __FUNCTION__ << "DISP" << msg.message << msg.lParam << msg.wParam; return d->m_screenManager.handleDisplayChange(wParam, lParam); case QtWindows::SettingChangedEvent: + qDebug() << __FUNCTION__ << "SETT" << msg.message << msg.lParam << msg.wParam; return d->m_screenManager.handleScreenChanges(); default: break; diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp index fc2ba45..f939fa4 100644 --- a/src/plugins/platforms/windows/qwindowsintegration.cpp +++ b/src/plugins/platforms/windows/qwindowsintegration.cpp @@ -420,7 +420,7 @@ QPlatformWindow *QWindowsIntegration::createPlatformWindow(QWindow *window) cons = QWindowsWindow::WindowData::create(window, requested, window->title()); if (QWindowsContext::verboseIntegration || QWindowsContext::verboseWindows) qDebug().nospace() - << __FUNCTION__ << '<' << window << '\n' + << __FUNCTION__ << '<' << window << "on screen" << window->screen()->name() << '\n' << " Requested: " << requested.geometry << "frame incl.: " << QWindowsGeometryHint::positionIncludesFrame(window) << " Flags=" diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp index f616972..6545171 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.cpp +++ b/src/plugins/platforms/windows/qwindowsscreen.cpp @@ -115,6 +115,7 @@ BOOL QT_WIN_CALLBACK monitorEnumCallback(HMONITOR hMonitor, HDC, LPRECT, LPARAM data.refreshRateHz = refreshRate; DeleteDC(hdc); } else { + qErrnoWarning("CreateDC"); qWarning("%s: Unable to obtain handle for monitor '%s', defaulting to %g DPI.", __FUNCTION__, qPrintable(QString::fromWCharArray(info.szDevice)), data.dpi.first); @@ -413,6 +414,10 @@ bool QWindowsScreenManager::handleScreenChanges() delete m_screens.takeAt(i); } // not found } // for existing screens + qDebug() << __FUNCTION__ << '>'; + foreach (const QWindowsScreen *s, m_screens) + qDebug() << s->name() << s->availableGeometry(); + qDebug() << __FUNCTION__ << '<'; return true; } diff --git a/src/plugins/platforms/windows/qwindowstabletsupport.cpp b/src/plugins/platforms/windows/qwindowstabletsupport.cpp index 4a5d7b5..cab80b8 100644 --- a/src/plugins/platforms/windows/qwindowstabletsupport.cpp +++ b/src/plugins/platforms/windows/qwindowstabletsupport.cpp @@ -176,6 +176,7 @@ QWindowsTabletSupport::~QWindowsTabletSupport() QWindowsTabletSupport *QWindowsTabletSupport::create() { + return 0; // Crashes too. if (!m_winTab32DLL.init()) return 0; const HWND window = QWindowsContext::instance()->createDummyWindow(QStringLiteral("TabletDummyWindow"),