forked from pool/parley
Accepting request 382206 from home:wolfi323:branches:KDE:Applications
- Added Fix-never-ending-event-loop-when-quitting-app.patch: fixes the application continuing to run in the background when being quit OBS-URL: https://build.opensuse.org/request/show/382206 OBS-URL: https://build.opensuse.org/package/show/KDE:Applications/parley?expand=0&rev=25
This commit is contained in:
parent
ff4c763a73
commit
d4b5d869e9
88
Fix-never-ending-event-loop-when-quitting-app.patch
Normal file
88
Fix-never-ending-event-loop-when-quitting-app.patch
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
From: Hartmut Riesenbeck <hartmut.riesenbeck@gmx.de>
|
||||||
|
Date: Fri, 25 Mar 2016 20:35:09 +0000
|
||||||
|
Subject: Fix never ending event loop when quitting app and segmentation faults
|
||||||
|
X-Git-Url: http://quickgit.kde.org/?p=parley.git&a=commitdiff&h=1ecfb75bdddc176cd8837d39935329fd02b9f910
|
||||||
|
---
|
||||||
|
Fix never ending event loop when quitting app and segmentation faults
|
||||||
|
|
||||||
|
When the app is quited app.exec() doesn't return. The process stays in
|
||||||
|
sleeping state. Removed app.setQuitOnLastWindowClosed(false) because
|
||||||
|
the quit() or exec() method of the application were not invoked
|
||||||
|
somewhere else in the application.
|
||||||
|
|
||||||
|
After this the app ends in the correct way. But after quit is invoked,
|
||||||
|
there are sporadic segmentation faults and the following message was
|
||||||
|
shown on stderr:
|
||||||
|
QCoreApplication::postEvent: Unexpected null receiver
|
||||||
|
This was fixed by removing zero pointer access in destuctor of
|
||||||
|
ParleyDocument.
|
||||||
|
|
||||||
|
Added missing this pointer on KEduVocDocument allocation.
|
||||||
|
|
||||||
|
REVIEW: 127441
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
--- a/src/main.cpp
|
||||||
|
+++ b/src/main.cpp
|
||||||
|
@@ -123,8 +123,6 @@
|
||||||
|
parser.process(app);
|
||||||
|
aboutData.processCommandLine(&parser);
|
||||||
|
|
||||||
|
- app.setQuitOnLastWindowClosed(false);
|
||||||
|
-
|
||||||
|
if (app.isSessionRestored()) {
|
||||||
|
int n = 1;
|
||||||
|
while (KMainWindow::canBeRestored(n)) {
|
||||||
|
|
||||||
|
--- a/src/parleydocument.cpp
|
||||||
|
+++ b/src/parleydocument.cpp
|
||||||
|
@@ -88,9 +88,6 @@
|
||||||
|
ParleyDocument::~ParleyDocument()
|
||||||
|
{
|
||||||
|
close();
|
||||||
|
- delete m_backupTimer;
|
||||||
|
- m_doc->deleteLater();
|
||||||
|
- emit documentChanged(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -98,7 +95,7 @@
|
||||||
|
{
|
||||||
|
// If there is no present vocabulary document, create an empty one.
|
||||||
|
if (!m_doc) {
|
||||||
|
- m_doc = new KEduVocDocument();
|
||||||
|
+ m_doc = new KEduVocDocument(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_doc;
|
||||||
|
@@ -118,7 +115,7 @@
|
||||||
|
|
||||||
|
void ParleyDocument::newDocument(bool wizard)
|
||||||
|
{
|
||||||
|
- KEduVocDocument *newDoc = new KEduVocDocument();
|
||||||
|
+ KEduVocDocument *newDoc = new KEduVocDocument(this);
|
||||||
|
|
||||||
|
initializeDefaultGrammar(newDoc);
|
||||||
|
setDefaultDocumentProperties(newDoc);
|
||||||
|
|
||||||
|
--- a/src/parleymainwindow.cpp
|
||||||
|
+++ b/src/parleymainwindow.cpp
|
||||||
|
@@ -128,11 +128,11 @@
|
||||||
|
|
||||||
|
void ParleyMainWindow::documentUpdated(KEduVocDocument *doc)
|
||||||
|
{
|
||||||
|
- if (doc != 0) {
|
||||||
|
- connect(m_document->document(), &KEduVocDocument::docModified
|
||||||
|
- , this, &ParleyMainWindow::slotUpdateWindowCaption);
|
||||||
|
- connect(m_document->document(), &QObject::destroyed
|
||||||
|
- , this, &ParleyMainWindow::slotUpdateWindowCaption);
|
||||||
|
+ if (doc != nullptr) {
|
||||||
|
+ connect(doc, &KEduVocDocument::docModified,
|
||||||
|
+ this, &ParleyMainWindow::slotUpdateWindowCaption);
|
||||||
|
+ connect(doc, &KEduVocDocument::destroyed,
|
||||||
|
+ this, &ParleyMainWindow::slotUpdateWindowCaption);
|
||||||
|
slotUpdateWindowCaption();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 30 19:51:39 UTC 2016 - wbauer@tmo.at
|
||||||
|
|
||||||
|
- Added Fix-never-ending-event-loop-when-quitting-app.patch: fixes
|
||||||
|
the application continuing to run in the background when being
|
||||||
|
quit
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Mar 13 15:57:34 UTC 2016 - tittiatcoke@gmail.com
|
Sun Mar 13 15:57:34 UTC 2016 - tittiatcoke@gmail.com
|
||||||
|
|
||||||
|
@ -24,6 +24,8 @@ License: GPL-2.0+
|
|||||||
Group: Amusements/Teaching/Language
|
Group: Amusements/Teaching/Language
|
||||||
Url: http://edu.kde.org
|
Url: http://edu.kde.org
|
||||||
Source: %{name}-%{version}.tar.xz
|
Source: %{name}-%{version}.tar.xz
|
||||||
|
# PATCH-FIX-UPSTREAM Fix-never-ending-event-loop-when-quitting-app.patch -- fixes the application continuing to run in the background when being quit
|
||||||
|
Patch: Fix-never-ending-event-loop-when-quitting-app.patch
|
||||||
BuildRequires: extra-cmake-modules
|
BuildRequires: extra-cmake-modules
|
||||||
BuildRequires: kcmutils-devel
|
BuildRequires: kcmutils-devel
|
||||||
BuildRequires: kconfig-devel
|
BuildRequires: kconfig-devel
|
||||||
@ -59,6 +61,7 @@ Parley is a vocabulary trainer for KDE.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake_kf5 -d build
|
%cmake_kf5 -d build
|
||||||
|
Loading…
Reference in New Issue
Block a user