summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-05-13 10:39:05 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-05-13 10:39:05 (GMT)
commitfa976feb9408ebaa12570997471f63683bdb88a2 (patch)
tree9c2519e7e859516f5e1aae8b8a4d9ac64ce2b10a
parenta80130b07c5b8ee4b06eabbceb65eb23d4d4602e (diff)
parenta45398677309ab905b69c599177b4c2951292b04 (diff)
downloadQt-fa976feb9408ebaa12570997471f63683bdb88a2.zip
Qt-fa976feb9408ebaa12570997471f63683bdb88a2.tar.gz
Qt-fa976feb9408ebaa12570997471f63683bdb88a2.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1: X11: Keep the menubar inside the widgetbox window in toplevel mode Retain ABI and API compatibility when Qt is built with EGL.
-rw-r--r--src/opengl/qgl.h2
-rw-r--r--src/opengl/qgl_x11egl.cpp14
-rw-r--r--tools/designer/src/designer/qdesigner_workbench.cpp11
3 files changed, 26 insertions, 1 deletions
diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h
index c57995d..ab88d9c 100644
--- a/src/opengl/qgl.h
+++ b/src/opengl/qgl.h
@@ -401,7 +401,7 @@ protected:
#if defined(Q_WS_WIN)
virtual int choosePixelFormat(void* pfd, HDC pdc);
#endif
-#if defined(Q_WS_X11) && defined(QT_NO_EGL)
+#if defined(Q_WS_X11)
virtual void* tryVisual(const QGLFormat& f, int bufDepth = 1);
virtual void* chooseVisual();
#endif
diff --git a/src/opengl/qgl_x11egl.cpp b/src/opengl/qgl_x11egl.cpp
index 2ddfd35..34ca97d 100644
--- a/src/opengl/qgl_x11egl.cpp
+++ b/src/opengl/qgl_x11egl.cpp
@@ -257,6 +257,20 @@ bool QGLContext::chooseContext(const QGLContext* shareContext)
return true;
}
+void *QGLContext::chooseVisual()
+{
+ qFatal("QGLContext::chooseVisual - this method must not be called as Qt is built with EGL support");
+ return 0;
+}
+
+void *QGLContext::tryVisual(const QGLFormat& f, int bufDepth)
+{
+ Q_UNUSED(f);
+ Q_UNUSED(bufDepth);
+ qFatal("QGLContext::tryVisual - this method must not be called as Qt is built with EGL support");
+ return 0;
+}
+
void QGLWidget::resizeEvent(QResizeEvent *)
{
Q_D(QGLWidget);
diff --git a/tools/designer/src/designer/qdesigner_workbench.cpp b/tools/designer/src/designer/qdesigner_workbench.cpp
index ffc4b8c..df679eb 100644
--- a/tools/designer/src/designer/qdesigner_workbench.cpp
+++ b/tools/designer/src/designer/qdesigner_workbench.cpp
@@ -410,6 +410,9 @@ void QDesignerWorkbench::switchToDockedMode()
switchToNeutralMode();
+#ifdef Q_WS_X11
+ QApplication::setAttribute(Qt::AA_DontUseNativeMenuBar, false);
+#endif
#ifndef Q_WS_MAC
QDesignerToolWindow *widgetBoxWrapper = widgetBoxToolWindow();
widgetBoxWrapper->action()->setVisible(true);
@@ -477,6 +480,14 @@ void QDesignerWorkbench::switchToTopLevelMode()
// The widget box is special, it gets the menubar and gets to be the main widget.
m_core->setTopLevel(widgetBoxWrapper);
+#ifdef Q_WS_X11
+ // For now the appmenu protocol does not make it possible to associate a
+ // menubar with all application windows. This means in top level mode you
+ // can only reach the menubar when the widgetbox window is active. Since
+ // this is quite inconvenient, better not use the native menubar in this
+ // configuration and keep the menubar in the widgetbox window.
+ QApplication::setAttribute(Qt::AA_DontUseNativeMenuBar, true);
+#endif
#ifndef Q_WS_MAC
widgetBoxWrapper->setMenuBar(m_globalMenuBar);
widgetBoxWrapper->action()->setVisible(false);