From: Friedemann Kleint Date: Tue, 29 Mar 2011 13:12:42 +0000 (+0200) Subject: Debugger: Hide/Show pinneable tooltips on de/iconifying main window. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b624a9cfbb889cb0fef5b600b3a8a16194276e1c;p=qt-creator-jp%2Fqt-creator-jp.git Debugger: Hide/Show pinneable tooltips on de/iconifying main window. Reviewed-by: hjk Task-number: QTCREATORBUG-4207 --- 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(e); moveToolTipsBy(me->pos() - me->oldPos()); } + break; + case QEvent::WindowStateChange: { // Hide/Show along with parent (toplevel) + const QWindowStateChangeEvent *se = static_cast(e); + const bool wasMinimized = se->oldState() & Qt::WindowMinimized; + const bool isMinimized = static_cast(o)->windowState() & Qt::WindowMinimized; + if (wasMinimized ^ isMinimized) + foreach (const QPointer &tw, purgeClosedToolTips()) + tw->setVisible(!isMinimized); + } + break; + default: + break; + } return false; }