Revert "opt: remove wasMaximized logic of mainwindow" (#1664)

* Revert "opt: remove wasMaximized logic of mainwindow"

This reverts commit 99c221c854.

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
xiaoyifang 2024-07-10 16:28:28 +08:00 committed by GitHub
parent 93ca284bad
commit 0c4483ae02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 0 deletions

View file

@ -165,6 +165,7 @@ MainWindow::MainWindow( Config::Class & cfg_ ):
audioPlayerFactory( cfg.preferences ),
wordFinder( this ),
wordListSelChanged( false ),
wasMaximized( false ),
headwordsDlg( nullptr ),
ftsIndexing( dictionaries ),
ftsDlg( nullptr ),
@ -871,6 +872,8 @@ MainWindow::MainWindow( Config::Class & cfg_ ):
mainStatusBar->showMessage( tr( "Accessibility API is not enabled" ), 10000, QPixmap( ":/icons/error.svg" ) );
#endif
wasMaximized = isMaximized();
history.setSaveInterval( cfg.preferences.historyStoreInterval );
#ifndef Q_OS_MACOS
ui.centralWidget->grabGesture( Gestures::GDPinchGestureType );
@ -2494,6 +2497,11 @@ bool MainWindow::eventFilter( QObject * obj, QEvent * ev )
}
}
if ( obj == this && ev->type() == QEvent::WindowStateChange ) {
auto stev = dynamic_cast< QWindowStateChangeEvent * >( ev );
wasMaximized = ( stev->oldState() == Qt::WindowMaximized && isMinimized() );
}
if ( ev->type() == QEvent::MouseButtonPress ) {
auto event = dynamic_cast< QMouseEvent * >( ev );
@ -2751,6 +2759,15 @@ void MainWindow::toggleMainWindow( bool onlyShow )
raise();
shown = true;
}
else if ( isMinimized() ) {
if ( wasMaximized )
showMaximized();
else
showNormal();
activateWindow();
raise();
shown = true;
}
else if ( !isActiveWindow() ) {
activateWindow();
if ( cfg.preferences.raiseWindowOnSearch ) {

View file

@ -158,6 +158,8 @@ private:
bool wordListSelChanged;
bool wasMaximized; // Window state before minimization
QPrinter & getPrinter(); // Creates a printer if it's not there and returns it
DictHeadwords * headwordsDlg;