diff options
| author | 2012-01-04 15:27:54 +0000 | |
|---|---|---|
| committer | 2012-01-04 15:27:54 +0000 | |
| commit | 4f42723091cd266dd08dabebc1e085a445588d96 (patch) | |
| tree | 3083a5c14e330650ec85b02d7c81400d2c5a6632 /src | |
| parent | reverted part of r6016, it was too aggressive (diff) | |
| download | KVIrc-4f42723091cd266dd08dabebc1e085a445588d96.tar.gz KVIrc-4f42723091cd266dd08dabebc1e085a445588d96.tar.bz2 KVIrc-4f42723091cd266dd08dabebc1e085a445588d96.zip | |
a batch of window-management related fixes, they should alleviate (read: fix) the following problems:
- mainwindow titlebar displays the name of more than one chanel/subwindow at a time;
- when a subwindow gets "maximized->minimized->maximized->restored" it loses its geometry
- (consequence of the previous fix) some windows geometry is incoherent in thew config file and results in splitter resizing
- at shutdown, the currently maximized subwindow reports an incorrect geometry
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@6018 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/kernel/KviApplication.cpp | 2 | ||||
| -rw-r--r-- | src/kvirc/ui/KviMainWindow.cpp | 103 | ||||
| -rw-r--r-- | src/kvirc/ui/KviMdiChild.cpp | 11 | ||||
| -rw-r--r-- | src/kvirc/ui/KviMdiChild.h | 1 | ||||
| -rw-r--r-- | src/kvirc/ui/KviMdiManager.cpp | 183 | ||||
| -rw-r--r-- | src/kvirc/ui/KviMdiManager.h | 23 | ||||
| -rw-r--r-- | src/kvirc/ui/KviTreeWindowList.cpp | 2 | ||||
| -rw-r--r-- | src/kvirc/ui/KviWindow.cpp | 6 | ||||
| -rw-r--r-- | src/kvirc/ui/KviWindowListBase.cpp | 2 |
9 files changed, 160 insertions, 173 deletions
diff --git a/src/kvirc/kernel/KviApplication.cpp b/src/kvirc/kernel/KviApplication.cpp index dc77f7e77..383d5086d 100644 --- a/src/kvirc/kernel/KviApplication.cpp +++ b/src/kvirc/kernel/KviApplication.cpp @@ -198,7 +198,7 @@ KviApplication::KviApplication(int &argc,char ** argv) setOrganizationName("KVIrc"); #ifdef COMPILE_ON_MAC - // Disable the native menubar on MacOSX as in Qt 4.6 it's quite buggy and + // Disable the native menubar on MacOSX as until Qt 4.7 it's quite buggy and // *very* often crashes in QMenuBar::macUpdateMenuBar()->QAction::isVisible(). // FIXME: Check it with later Qt versions KviEnvironment::setVariable("QT_MAC_NO_NATIVE_MENUBAR","1"); diff --git a/src/kvirc/ui/KviMainWindow.cpp b/src/kvirc/ui/KviMainWindow.cpp index d8223c173..beb4ec473 100644 --- a/src/kvirc/ui/KviMainWindow.cpp +++ b/src/kvirc/ui/KviMainWindow.cpp @@ -408,7 +408,8 @@ void KviMainWindow::saveWindowProperties(KviWindow * wnd,const QString &szSectio g_pWinPropertiesConfig->writeEntry("IsMaximized",wnd->isMaximized()); } - g_pWinPropertiesConfig->writeEntry("WinRect",wnd->normalGeometry()); + if(wnd->normalGeometry().isValid()) + g_pWinPropertiesConfig->writeEntry("WinRect",wnd->normalGeometry()); wnd->saveProperties(g_pWinPropertiesConfig); } @@ -441,7 +442,7 @@ void KviMainWindow::closeWindow(KviWindow *wnd) // hide it if(wnd->mdiParent()) - m_pMdi->hideChild(wnd->mdiParent()); + wnd->mdiParent()->hide(); else wnd->hide(); @@ -497,6 +498,7 @@ void KviMainWindow::addWindow(KviWindow *wnd,bool bShow) wnd->getConfigGroupName(group); bool bGroupSettings = false; + bool bDefaultDocking=false; if(g_pWinPropertiesConfig->hasGroup(group)) { @@ -514,70 +516,68 @@ void KviMainWindow::addWindow(KviWindow *wnd,bool bShow) } else { g_pWinPropertiesConfig->setGroup("no_settings_group"); wnd->loadProperties(g_pWinPropertiesConfig); // load it anyway (will set defaults if windows don't remember properties) - goto default_docking; // no settings stored + bDefaultDocking=true; // no settings stored } } + wnd->loadProperties(g_pWinPropertiesConfig); // load it anyway (will set defaults if windows don't remember properties) + + if(KVI_OPTION_BOOL(KviOption_boolWindowsRememberProperties) && !bDefaultDocking) { - wnd->loadProperties(g_pWinPropertiesConfig); // load it anyway (will set defaults if windows don't remember properties) + bool bDocked = g_pWinPropertiesConfig->readBoolEntry("IsDocked",true); + QRect rect = g_pWinPropertiesConfig->readRectEntry("WinRect",QRect(10,10,500,380)); + if(!rect.isValid()) + rect = QRect(10,10,500,380); - if(KVI_OPTION_BOOL(KviOption_boolWindowsRememberProperties)) + if(bDocked) { - bool bDocked = g_pWinPropertiesConfig->readBoolEntry("IsDocked",true); - QRect rect = g_pWinPropertiesConfig->readRectEntry("WinRect",QRect(10,10,500,380)); + // when group settings are used, we always cascade the windows + // this means that windows that have no specialized config group name + // are always cascaded : this is true for consoles, queries (and other windows) but not channels (and some other windows) + // FIXME: Since the introduction of QMdiArea cascading (and positioning of windows in general) no longer works + KviMdiChild * lpC = dockWindow(wnd); + lpC->setGeometry(rect); + wnd->triggerCreationEvents(); + if(bShow) + { + m_pMdi->showAndActivate(lpC); + // Handle the special case of this top level widget not being the active one. + // In this situation the child will not get the focusInEvent + // and thus will not call out childWindowActivated() method + if(!isActiveWindow()) + childWindowActivated(wnd); + } + } else { + bool bMaximized = g_pWinPropertiesConfig->readBoolEntry("IsMaximized",false); + + wnd->setGeometry(rect); + wnd->triggerCreationEvents(); - if(bDocked) + if(bShow) { - // when group settings are used, we always cascade the windows - // this means that windows that have no specialized config group name - // are always cascaded : this is true for consoles, queries (and other windows) but not channels (and some other windows) - // FIXME: Since the introduction of QMdiArea cascading (and positioning of windows in general) no longer works - KviMdiChild * lpC = dockWindow(wnd); - lpC->setGeometry(rect); - wnd->triggerCreationEvents(); - if(bShow) - { - m_pMdi->showAndActivate(lpC); - // Handle the special case of this top level widget not being the active one. - // In this situation the child will not get the focusInEvent - // and thus will not call out childWindowActivated() method - if(!isActiveWindow()) - childWindowActivated(wnd); - } + if(bMaximized) + wnd->maximize(); } else { - bool bMaximized = g_pWinPropertiesConfig->readBoolEntry("IsMaximized",false); - - wnd->setGeometry(rect); - wnd->triggerCreationEvents(); - - if(bShow) - { - if(bMaximized) - wnd->maximize(); - } else { - wnd->setWindowState(wnd->windowState() | Qt::WindowMinimized); - if(bMaximized) - wnd->setWindowState(wnd->windowState() | Qt::WindowMaximized); - } - wnd->show(); - wnd->youAreUndocked(); - if(bShow) - { - wnd->raise(); - wnd->setFocus(); - } + wnd->setWindowState(wnd->windowState() | Qt::WindowMinimized); + if(bMaximized) + wnd->setWindowState(wnd->windowState() | Qt::WindowMaximized); + } + wnd->show(); + wnd->youAreUndocked(); + if(bShow) + { + wnd->raise(); + wnd->setFocus(); } - goto docking_done; } - } -default_docking: - { + } else { + KviMdiChild * lpC = dockWindow(wnd); // FIXME: Since the introduction of QMdiArea cascading (and positioning of windows in general) no longer works // Emulate cascading in some way.... int offset = (m_pWinList->count() * 10) % 100; - lpC->setGeometry(QRect(offset,offset,500,400)); + lpC->setGeometry(offset, offset, 500, 400); wnd->triggerCreationEvents(); if(bShow) { @@ -589,7 +589,8 @@ default_docking: childWindowActivated(wnd); } } -docking_done: + + // we like to have an active window.. but don't trigger the events until it is really shown if(!g_pActiveWindow) { diff --git a/src/kvirc/ui/KviMdiChild.cpp b/src/kvirc/ui/KviMdiChild.cpp index 1622a96bc..7c36c3637 100644 --- a/src/kvirc/ui/KviMdiChild.cpp +++ b/src/kvirc/ui/KviMdiChild.cpp @@ -37,6 +37,7 @@ #include "KviOptions.h" #include "kvi_settings.h" #include "KviIconManager.h" +#include "KviMainWindow.h" #include "KviWindow.h" #include "KviTalPopupMenu.h" #include "KviIrcConnection.h" @@ -59,8 +60,6 @@ KviMdiChild::KviMdiChild(KviMdiManager * par, const char * name) m_pManager = par; m_pClient = 0; - setGeometry(QRect(10,10,500,380)); - connect(systemMenu(), SIGNAL(aboutToShow()), this, SLOT(updateSystemPopup())); connect(this, SIGNAL(windowStateChanged(Qt::WindowStates, Qt::WindowStates)), this, SLOT(windowStateChangedEvent(Qt::WindowStates, Qt::WindowStates))); @@ -176,9 +175,11 @@ void KviMdiChild::restore() void KviMdiChild::maximize() { if(isVisible()) + { showMaximized(); - else - setWindowState(windowState() & Qt::WindowMaximized); + } else { + setWindowState(windowState() & Qt::WindowMaximized & ~Qt::WindowMaximized); + } } void KviMdiChild::minimize() @@ -186,7 +187,7 @@ void KviMdiChild::minimize() if(isVisible()) showMinimized(); else - setWindowState(windowState() & Qt::WindowMinimized); + setWindowState((windowState() & Qt::WindowMinimized) & ~Qt::WindowMaximized); } void KviMdiChild::updateCaption() diff --git a/src/kvirc/ui/KviMdiChild.h b/src/kvirc/ui/KviMdiChild.h index 0a3f7da61..3c2833784 100644 --- a/src/kvirc/ui/KviMdiChild.h +++ b/src/kvirc/ui/KviMdiChild.h @@ -90,7 +90,6 @@ private: void updateCaption(); public: - /** * \brief Sets the client widget which is shown in the subwindow * \param w The new client widget which is docked into our KviMdiChild diff --git a/src/kvirc/ui/KviMdiManager.cpp b/src/kvirc/ui/KviMdiManager.cpp index 2af6c400f..3010f55f8 100644 --- a/src/kvirc/ui/KviMdiManager.cpp +++ b/src/kvirc/ui/KviMdiManager.cpp @@ -71,6 +71,8 @@ KviMdiManager::KviMdiManager(QWidget * parent,const char *pcName) { setObjectName(pcName); setFrameShape(NoFrame); + setOption(QMdiArea::DontMaximizeSubWindowOnActivation, true); + m_bInSDIMode = KVI_OPTION_BOOL(KviOption_boolMdiManagerInSdiMode); m_pWindowPopup = new KviTalPopupMenu(this); @@ -125,15 +127,15 @@ void KviMdiManager::manageChild(KviMdiChild * lpC) { addSubWindow((QMdiSubWindow*)lpC); - if(!m_bInSDIMode) - if(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) - tile(); + if(!m_bInSDIMode && KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) + tile(); } void KviMdiManager::showAndActivate(KviMdiChild * lpC) { if(m_bInSDIMode) { + ensureNoMaximized(lpC); lpC->showMaximized(); } else { //qDebug("Showing window %x->%x",lpC,lpC->client()); @@ -142,48 +144,39 @@ void KviMdiManager::showAndActivate(KviMdiChild * lpC) if(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) tile(); } - setActiveSubWindow(lpC); + lpC->setFocus(); //qDebug("show and activate window %x->%x: geometry is %d,%d,%d,%d, visible is %d",lpC,lpC->client(),lpC->geometry().x(),lpC->geometry().y(),lpC->geometry().width(),lpC->geometry().height(),lpC->isVisible()); } -KviMdiChild * KviMdiManager::topChild() -{ - return (KviMdiChild*)activeSubWindow(); -} - -void KviMdiManager::hideChild(KviMdiChild *lpC) -{ - focusPreviousTopChild(lpC); - lpC->hide(); -} - void KviMdiManager::destroyChild(KviMdiChild *lpC) { removeSubWindow(lpC); delete lpC; - if(!m_bInSDIMode) - { - if(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) - tile(); - } + if(!m_bInSDIMode && KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) + tile(); } void KviMdiManager::setIsInSDIMode(bool bMode) { // qDebug("Sdi Mode %d", bMode); m_bInSDIMode = bMode; + if(!m_bInSDIMode) - if(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows))tile(); + { + ensureNoMaximized(); + + if(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) + tile(); + } }; void KviMdiManager::focusPreviousTopChild(KviMdiChild * pExcludeThis) { KviMdiChild * lpC = NULL; - //QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::ActivationHistoryOrder); QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::StackingOrder); QListIterator<QMdiSubWindow*> wl(tmp); wl.toBack(); @@ -211,8 +204,10 @@ void KviMdiManager::focusPreviousTopChild(KviMdiChild * pExcludeThis) return; if(isInSDIMode()) + { + ensureNoMaximized(lpC); lpC->maximize(); - else { + } else { if(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) tile(); } @@ -348,19 +343,19 @@ void KviMdiManager::menuActivated(int id) setActiveSubWindow(lpC); } -void KviMdiManager::ensureNoMaximized() +void KviMdiManager::ensureNoMaximized(KviMdiChild * lpExclude) { - QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::StackingOrder); - + QList<QMdiSubWindow*> tmp = subWindowList(QMdiArea::StackingOrder); + QListIterator<QMdiSubWindow*> it(tmp); KviMdiChild * lpC; - for(int i = 0; i < tmp.count(); i++) + while (it.hasNext()) { - if (tmp.at(i)->inherits("KviMdiChild")) - { - lpC = (KviMdiChild *) tmp.at(i); - if(lpC->state() == KviMdiChild::Maximized)lpC->restore(); - } + lpC = (KviMdiChild *) it.next(); + if(lpExclude == lpC) + continue; + if(lpC->windowState() & Qt::WindowMaximized) + lpC->setWindowState(lpC->windowState() & ~Qt::WindowMaximized); } } @@ -387,111 +382,115 @@ void KviMdiManager::cascadeWindows() void KviMdiManager::cascadeMaximized() { cascadeSubWindows(); - QList<QMdiSubWindow *> tmp = subWindowList(); + + QList<QMdiSubWindow*> tmp = subWindowList(QMdiArea::StackingOrder); + QListIterator<QMdiSubWindow*> it(tmp); KviMdiChild * lpC; - for(int i = 0; i < tmp.count(); i++) + while (it.hasNext()) { - if (tmp.at(i)->inherits("KviMdiChild")) - { - lpC = (KviMdiChild *) tmp.at(i); - if(lpC->state() != KviMdiChild::Minimized) - { - QPoint pnt(lpC->pos()); - QSize curSize(viewport()->width() - pnt.x(),viewport()->height() - pnt.y()); - if((lpC->minimumSize().width() > curSize.width()) || - (lpC->minimumSize().height() > curSize.height()))lpC->resize(lpC->minimumSize()); - else lpC->resize(curSize); - } - } + lpC = (KviMdiChild *) it.next(); + if(lpC->windowState() & Qt::WindowMinimized) + continue; + + QPoint pnt(lpC->pos()); + QSize curSize(viewport()->width() - pnt.x(),viewport()->height() - pnt.y()); + if((lpC->minimumSize().width() > curSize.width()) || + (lpC->minimumSize().height() > curSize.height()))lpC->resize(lpC->minimumSize()); + else lpC->resize(curSize); } } void KviMdiManager::expandVertical() { ensureNoMaximized(); - QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::StackingOrder); + + QList<QMdiSubWindow*> tmp = subWindowList(QMdiArea::StackingOrder); + QListIterator<QMdiSubWindow*> it(tmp); KviMdiChild * lpC; - for(int i = 0; i < tmp.count(); i++) + while (it.hasNext()) { - if (tmp.at(i)->inherits("KviMdiChild")) - { - lpC = (KviMdiChild *) tmp.at(i); - if(lpC->state() != KviMdiChild::Minimized) - { - lpC->move(lpC->x(),0); - lpC->resize(lpC->width(),viewport()->height()); - } - } + lpC = (KviMdiChild *) it.next(); + if(lpC->windowState() & Qt::WindowMinimized) + continue; + + lpC->move(lpC->x(),0); + lpC->resize(lpC->width(),viewport()->height()); } } void KviMdiManager::expandHorizontal() { ensureNoMaximized(); - QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::StackingOrder); + + QList<QMdiSubWindow*> tmp = subWindowList(QMdiArea::StackingOrder); + QListIterator<QMdiSubWindow*> it(tmp); KviMdiChild * lpC; - for(int i = 0; i < tmp.count(); i++) + while (it.hasNext()) { - if (tmp.at(i)->inherits("KviMdiChild")) - { - lpC = (KviMdiChild *) tmp.at(i); - if(lpC->state() != KviMdiChild::Minimized) - { - lpC->move(0,lpC->y()); - lpC->resize(viewport()->width(),lpC->height()); - } - } + lpC = (KviMdiChild *) it.next(); + if(lpC->windowState() & Qt::WindowMinimized) + continue; + + lpC->move(0,lpC->y()); + lpC->resize(viewport()->width(),lpC->height()); } } void KviMdiManager::minimizeAll() { - QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::StackingOrder); - + QList<QMdiSubWindow*> tmp = subWindowList(QMdiArea::StackingOrder); + QListIterator<QMdiSubWindow*> it(tmp); KviMdiChild * lpC; - for(int i = 0; i < tmp.count(); i++) + while (it.hasNext()) { - if (tmp.at(i)->inherits("KviMdiChild")) - { - lpC = (KviMdiChild *) tmp.at(i); - if(lpC->state() != KviMdiChild::Minimized) lpC->minimize(); - } + lpC = (KviMdiChild *) it.next(); + if(lpC->windowState() & Qt::WindowMinimized) + continue; + + lpC->minimize(); } } void KviMdiManager::restoreAll() { - QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::StackingOrder); - + QList<QMdiSubWindow*> tmp = subWindowList(QMdiArea::StackingOrder); + QListIterator<QMdiSubWindow*> it(tmp); KviMdiChild * lpC; - for(int i = 0; i < tmp.count(); i++) + while (it.hasNext()) { - if (tmp.at(i)->inherits("KviMdiChild")) - { - lpC = (KviMdiChild *) tmp.at(i); - if(lpC->state() == KviMdiChild::Minimized) lpC->restore(); - } + lpC = (KviMdiChild *) it.next(); + if(!(lpC->windowState() & Qt::WindowMinimized)) + continue; + + lpC->restore(); } - if(!m_bInSDIMode) - if(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows))tile(); + + if(!m_bInSDIMode && KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)) + tile(); } int KviMdiManager::getVisibleChildCount() { - QList<QMdiSubWindow *> l = subWindowList(); - + QList<QMdiSubWindow*> tmp = subWindowList(QMdiArea::StackingOrder); + QListIterator<QMdiSubWindow*> it(tmp); + KviMdiChild * lpC; int cnt = 0; - int i = 0; - for(i = 0; i < l.count(); i++) + + while (it.hasNext()) { - if(!l.at(i)->isMinimized()) cnt++; + lpC = (KviMdiChild *) it.next(); + if(lpC->windowState() & Qt::WindowMinimized) + continue; + + cnt++; } + return cnt; } @@ -542,7 +541,7 @@ void KviMdiManager::tileAllInternal(int maxWnds, bool bHorizontal) //int maxWnds ensureNoMaximized(); if (g_pApp->kviClosingDown()) return; - KviMdiChild * lpTop = topChild(); + KviMdiChild * lpTop = (KviMdiChild*)activeSubWindow(); if (!lpTop) return; int numVisible = getVisibleChildCount(); diff --git a/src/kvirc/ui/KviMdiManager.h b/src/kvirc/ui/KviMdiManager.h index 552917a4a..cebcb7dc8 100644 --- a/src/kvirc/ui/KviMdiManager.h +++ b/src/kvirc/ui/KviMdiManager.h @@ -81,12 +81,7 @@ protected: /// Holds the tiling popup KviTalPopupMenu * m_pTileMethodPopup; public: - /** - * \brief Get the currently active window - * \return KviMdiChild * - */ - KviMdiChild * topChild(); - + /** * \brief Add an KviMdiChild to the area * \param lpC The KviMdiChild @@ -106,7 +101,7 @@ public: * \return KviTalPopupMenu * */ inline KviTalPopupMenu * windowPopup() { return m_pWindowPopup; }; - + /** * \brief Move the focus the the previous active window * \return void @@ -121,13 +116,6 @@ public: void destroyChild(KviMdiChild * lpC); /** - * \brief Hides the specified child and focuses some other child - * \param lpC The KviMdiChild which will be hidden. - * \return void - */ - void hideChild(KviMdiChild * lpC); - - /** * \brief Get all visible subwindows * \return int */ @@ -157,12 +145,11 @@ protected: private: /** - * \brief Make sure that no KviMdiChild is maximized + * \brief Ensure that no KviMdiChild is maximized + * \param lpExclude a window to be excluded from the checks * \return void - * - * Goes trough all KviMdiChild objects and checks for maximized mode and restores that windows */ - void ensureNoMaximized(); + void ensureNoMaximized(KviMdiChild * lpExclude=0); /** * \brief The internal member which provides the tiling methods diff --git a/src/kvirc/ui/KviTreeWindowList.cpp b/src/kvirc/ui/KviTreeWindowList.cpp index 80a14471d..f46cbff58 100644 --- a/src/kvirc/ui/KviTreeWindowList.cpp +++ b/src/kvirc/ui/KviTreeWindowList.cpp @@ -249,7 +249,7 @@ void KviTreeWindowListTreeWidget::mousePressEvent(QMouseEvent *e) } else { //left click activate/deactivate window if((g_pActiveWindow != wnd) || (wnd->isMinimized())) - wnd->restore(); + g_pMainWindow->setActiveWindow(wnd); else wnd->minimize(); diff --git a/src/kvirc/ui/KviWindow.cpp b/src/kvirc/ui/KviWindow.cpp index 5f0f31559..f1c0286f9 100644 --- a/src/kvirc/ui/KviWindow.cpp +++ b/src/kvirc/ui/KviWindow.cpp @@ -1125,7 +1125,7 @@ void KviWindow::moveEvent(QMoveEvent * pEvent) void KviWindow::minimize() { if(mdiParent()) - mdiParent()->showMinimized(); + mdiParent()->minimize(); else showMinimized(); } @@ -1133,7 +1133,7 @@ void KviWindow::minimize() void KviWindow::maximize() { if(mdiParent()) - mdiParent()->showMaximized(); + mdiParent()->maximize(); else showMaximized(); autoRaise(); @@ -1158,7 +1158,7 @@ bool KviWindow::isMaximized() void KviWindow::restore() { if(mdiParent()) - mdiParent()->showNormal(); + mdiParent()->restore(); else showNormal(); autoRaise(); diff --git a/src/kvirc/ui/KviWindowListBase.cpp b/src/kvirc/ui/KviWindowListBase.cpp index 57ccf6867..81535d371 100644 --- a/src/kvirc/ui/KviWindowListBase.cpp +++ b/src/kvirc/ui/KviWindowListBase.cpp @@ -287,7 +287,7 @@ void KviWindowListButton::mousePressEvent(QMouseEvent *e) m_pWindow->delayedClose(); } else { if((g_pActiveWindow != m_pWindow) || (m_pWindow->isMinimized())) - m_pWindow->restore(); + g_pMainWindow->setActiveWindow(m_pWindow); else m_pWindow->minimize(); } |
