Browse Source

fix(widget): do not block logout on Linux desktop environments

Change closeEvent() to hideEvent() for handling main window closing.
Close event is no longer ignored, which prevented logging out from
various Linux desktop environments.

Closes #1485
reviewable/pr3687/r1
Vincas Dargis 9 years ago
parent
commit
7ee883bcc7
  1. 7
      src/widget/widget.cpp
  2. 2
      src/widget/widget.h

7
src/widget/widget.cpp

@ -568,12 +568,11 @@ void Widget::moveEvent(QMoveEvent *event) @@ -568,12 +568,11 @@ void Widget::moveEvent(QMoveEvent *event)
QWidget::moveEvent(event);
}
void Widget::closeEvent(QCloseEvent *event)
void Widget::hideEvent(QHideEvent *event)
{
if (Settings::getInstance().getShowSystemTray() && Settings::getInstance().getCloseToTray())
{
event->ignore();
this->hide();
QWidget::hideEvent(event);
}
else
{
@ -584,7 +583,7 @@ void Widget::closeEvent(QCloseEvent *event) @@ -584,7 +583,7 @@ void Widget::closeEvent(QCloseEvent *event)
}
saveWindowGeometry();
saveSplitterGeometry();
QWidget::closeEvent(event);
QWidget::hideEvent(event);
qApp->quit();
}
}

2
src/widget/widget.h

@ -161,7 +161,7 @@ signals: @@ -161,7 +161,7 @@ signals:
protected:
virtual bool eventFilter(QObject *obj, QEvent *event) final override;
virtual bool event(QEvent * e) final override;
virtual void closeEvent(QCloseEvent *event) final override;
virtual void hideEvent(QHideEvent *event) final override;
virtual void changeEvent(QEvent *event) final override;
virtual void resizeEvent(QResizeEvent *event) final override;
virtual void moveEvent(QMoveEvent *event) final override;

Loading…
Cancel
Save