diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-03-29 15:12:42 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-03-29 15:12:42 +0200 |
commit | b624a9cfbb889cb0fef5b600b3a8a16194276e1c (patch) | |
tree | 3bf3503c3e42633c9da44ee80997801ea39941cf /src/plugins/debugger/debuggertooltipmanager.cpp | |
parent | 289e22164c0a46f35c6e774e51bcd8a6bfad2d42 (diff) | |
download | qt-creator-b624a9cfbb889cb0fef5b600b3a8a16194276e1c.tar.gz |
Debugger: Hide/Show pinneable tooltips on de/iconifying main window.
Reviewed-by: hjk
Task-number: QTCREATORBUG-4207
Diffstat (limited to 'src/plugins/debugger/debuggertooltipmanager.cpp')
-rw-r--r-- | src/plugins/debugger/debuggertooltipmanager.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/plugins/debugger/debuggertooltipmanager.cpp b/src/plugins/debugger/debuggertooltipmanager.cpp index 6631926bf4..7f81195c37 100644 --- a/src/plugins/debugger/debuggertooltipmanager.cpp +++ b/src/plugins/debugger/debuggertooltipmanager.cpp @@ -1210,13 +1210,28 @@ void DebuggerToolTipManager::moveToolTipsBy(const QPoint &distance) tw->move (tw->pos() + distance); } -bool DebuggerToolTipManager::eventFilter(QObject *, QEvent *e) +bool DebuggerToolTipManager::eventFilter(QObject *o, QEvent *e) { - // Move along with parent (toplevel) - if (e->type() == QEvent::Move && hasToolTips()) { + if (!hasToolTips()) + return false; + switch (e->type()) { + case QEvent::Move: { // Move along with parent (toplevel) const QMoveEvent *me = static_cast<const QMoveEvent *>(e); moveToolTipsBy(me->pos() - me->oldPos()); } + break; + case QEvent::WindowStateChange: { // Hide/Show along with parent (toplevel) + const QWindowStateChangeEvent *se = static_cast<const QWindowStateChangeEvent *>(e); + const bool wasMinimized = se->oldState() & Qt::WindowMinimized; + const bool isMinimized = static_cast<const QWidget *>(o)->windowState() & Qt::WindowMinimized; + if (wasMinimized ^ isMinimized) + foreach (const QPointer<AbstractDebuggerToolTipWidget> &tw, purgeClosedToolTips()) + tw->setVisible(!isMinimized); + } + break; + default: + break; + } return false; } |