diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index 43740ed..a8b5193 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -295,7 +295,8 @@ public: MacWindowToolBarButtonHint = 0x10000000, BypassGraphicsProxyWidget = 0x20000000, WindowOkButtonHint = 0x00080000, - WindowCancelButtonHint = 0x00100000 + WindowCancelButtonHint = 0x00100000, + WindowSoftKeyHint = 0x40000000 #ifdef QT3_SUPPORT , --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -669,8 +669,10 @@ void QSymbianControl::FocusChanged(TDrawNow aDrawNow) bool isFullscreen = qwidget->windowState() & Qt::WindowFullScreen; if (statusPane && (statusPane->IsVisible() == isFullscreen)) statusPane->MakeVisible(!isFullscreen); - if (buttonGroup && (buttonGroup->IsVisible() == isFullscreen)) - buttonGroup->MakeVisible(!isFullscreen); + if (buttonGroup && (buttonGroup->IsVisible() == isFullscreen)){ + bool cbaEnabled = qwidget->windowFlags() & Qt::WindowSoftKeyHint; + buttonGroup->MakeVisible(!isFullscreen || cbaEnabled); + } } else { QApplication::setActiveWindow(0); } diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index fb97c9c..9ba1b74 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -923,11 +923,19 @@ void QWidget::setWindowState(Qt::WindowStates newstate) if (newstate & Qt::WindowFullScreen) { const QRect normalGeometry = geometry(); const QRect r = top->normalGeometry; - setGeometry(qApp->desktop()->screenGeometry(this)); if (statusPane) statusPane->MakeVisible(false); + Qt::WindowFlags flags = windowFlags(); + + if (flags & Qt::WindowSoftKeyHint ){ + if (buttonGroup) + buttonGroup->MakeVisible(true); + setGeometry(qApp->desktop()->availableGeometry(this)); + } else { if (buttonGroup) - buttonGroup->MakeVisible(false); + buttonGroup->MakeVisible(false); + setGeometry(qApp->desktop()->screenGeometry(this)); + } top->normalGeometry = r; if (top->normalGeometry.width() < 0) top->normalGeometry = normalGeometry;