mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 02:42:48 +00:00
kdeui: close only QMainWindow and derived classes from the KApplication quit handler
any widget should be parented to the main window (i.e. be a child of the main window) Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
d5e9d695df
commit
8ab4b4bd40
1 changed files with 6 additions and 7 deletions
|
@ -104,19 +104,18 @@ static void quit_handler(int sig)
|
|||
if (qApp->type() == KAPPLICATION_GUI_TYPE) {
|
||||
const QWidgetList toplevelwidgets = QApplication::topLevelWidgets();
|
||||
if (!toplevelwidgets.isEmpty()) {
|
||||
kDebug(240) << "closing top-level widgets";
|
||||
kDebug(240) << "closing top-level main windows";
|
||||
foreach (QWidget* topwidget, toplevelwidgets) {
|
||||
if (!topwidget) {
|
||||
if (!topwidget || !topwidget->isWindow() || !topwidget->inherits("QMainWindow")) {
|
||||
continue;
|
||||
}
|
||||
QCloseEvent closeevent;
|
||||
QApplication::sendEvent(topwidget, &closeevent);
|
||||
if (!closeevent.isAccepted()) {
|
||||
kDebug(240) << "not quiting because a top-level widget did not close";
|
||||
kDebug(240) << "sending close event to" << topwidget;
|
||||
if (!topwidget->close()) {
|
||||
kDebug(240) << "not quiting because a top-level window did not close";
|
||||
return;
|
||||
}
|
||||
}
|
||||
kDebug(240) << "all top-level widgets closed";
|
||||
kDebug(240) << "all top-level main windows closed";
|
||||
}
|
||||
}
|
||||
KDE_signal(sig, SIG_DFL);
|
||||
|
|
Loading…
Add table
Reference in a new issue