diff options
author | Norwegian Rock Cat <qt-info@nokia.com> | 2009-07-08 15:21:51 (GMT) |
---|---|---|
committer | Norwegian Rock Cat <qt-info@nokia.com> | 2009-07-09 17:01:26 (GMT) |
commit | 5c11a5a38bcc68c17da8fe59e8db03d43ea55ac1 (patch) | |
tree | 3b87cc860a08393c42aaf6d0adde692d2da3ce4b /src/gui/widgets/qmainwindow.cpp | |
parent | 020ed5b7caaba5cf877cdb9ebaa575db1d15b7f0 (diff) | |
download | Qt-5c11a5a38bcc68c17da8fe59e8db03d43ea55ac1.zip Qt-5c11a5a38bcc68c17da8fe59e8db03d43ea55ac1.tar.gz Qt-5c11a5a38bcc68c17da8fe59e8db03d43ea55ac1.tar.bz2 |
Ensure that when we hide QToolBar in unified, unified follows.
Basically if you would hide a toolbar in the unified toolbar, you
would still see a little bit of area at the top instead of having
everything flush with the titlebar. This change basically unsures that
the unified toolbar makes a decision to hide itself if all the toolbars
inside it are hidden. It makes the behavior of clicking on the toolbar
button behave more or less correctly since we are going to show the
unified toolbar whether we want to or not.
This all will get the toolbar button switch event to be dispatched in
Cocoa as well.
Also add an optimization for checking if we need to change the geometry.
If we don't have any items the other toolbar areas, we can skip the set
geometry call, which wrecks havoc with things in Cocoa.
We still don't solve the case of someone who has hidden the items with
the toolbar button then goes full-screen, then goes back out. I'm not
motivated to solve it as is because we need to keep track of the
hides we do on the button press vs. other hides from the user and still
people can workaround it easy enough by handling window state change and
doing what is recommended in the docs.
Task-number: 208439
Rev-by: Denis
Diffstat (limited to 'src/gui/widgets/qmainwindow.cpp')
-rw-r--r-- | src/gui/widgets/qmainwindow.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gui/widgets/qmainwindow.cpp b/src/gui/widgets/qmainwindow.cpp index 0c841eb..c51bed9 100644 --- a/src/gui/widgets/qmainwindow.cpp +++ b/src/gui/widgets/qmainwindow.cpp @@ -1369,20 +1369,25 @@ bool QMainWindow::event(QEvent *event) #ifdef Q_WS_MAC case QEvent::Show: if (unifiedTitleAndToolBarOnMac()) - macWindowToolbarShow(this, true); + d->layout->syncUnifiedToolbarVisibility(); + d->layout->blockVisiblityCheck = false; break; -# ifdef QT_MAC_USE_COCOA case QEvent::WindowStateChange: { + if (isHidden()) { + // We are coming out of a minimize, leave things as is. + d->layout->blockVisiblityCheck = true; + } +# ifdef QT_MAC_USE_COCOA // We need to update the HIToolbar status when we go out of or into fullscreen. QWindowStateChangeEvent *wce = static_cast<QWindowStateChangeEvent *>(event); if ((windowState() & Qt::WindowFullScreen) || (wce->oldState() & Qt::WindowFullScreen)) { d->layout->updateHIToolBarStatus(); } +# endif // Cocoa } break; -# endif // Cocoa -#endif +#endif // Q_WS_MAC #if !defined(QT_NO_DOCKWIDGET) && !defined(QT_NO_CURSOR) case QEvent::CursorChange: if (d->cursorAdjusted) { |