[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/systemsettings
From: Darío Andrés Rodríguez <andresbajotierra () gmail ! co
Date: 2009-04-11 20:54:39
Message-ID: 1239483279.139057.19300.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 952427 by darioandres:
Fix a possible crash when emitting requestClose() twice from the module
(This can happen due a bug in the widgets-on-list framework, (used by the KWin Effects page),
which duplicates the KeyEvent under certain situations)
BUG: 189381
M +1 -2 kcmultiwidget.cpp
M +1 -1 kcmultiwidget.h
M +6 -2 mainwindow.cpp
--- trunk/KDE/kdebase/workspace/systemsettings/kcmultiwidget.cpp #952426:952427
@@ -123,9 +123,8 @@
}
}
if ( event->key() == Qt::Key_Escape ) {
+ emit requestClose();
event->accept();
- if( queryClose() ) //Close modules
- emit finished();
return;
}
} else if ( event->key() == Qt::Key_F1 && event->modifiers() == Qt::ShiftModifier ) {
--- trunk/KDE/kdebase/workspace/systemsettings/kcmultiwidget.h #952426:952427
@@ -113,7 +113,7 @@
* Signal to emulate former KDialog behaviour
* Emitted when quitting manually (Esc key)
*/
- void finished();
+ void requestClose();
protected slots:
/**
--- trunk/KDE/kdebase/workspace/systemsettings/mainwindow.cpp #952426:952427
@@ -287,6 +287,11 @@
void MainWindow::showOverview()
{
+ //Some modules create duplicated keyboard event that may crash
+ //the application if the pointer was already deassigned
+ if (!groupWidget) {
+ return;
+ }
if (!groupWidget->queryClose()) {
return;
}
@@ -301,7 +306,6 @@
searchText->setEnabled(true);
search->setEnabled(true);
searchAction->setEnabled(true);
-
}
void MainWindow::selectionChanged( const QModelIndex& selected )
@@ -332,7 +336,7 @@
moduleItemToWidgetDict.insert(mItem->service,groupWidget);
// That shouldn't be needed.
- connect(groupWidget, SIGNAL(finished()), this, SLOT(showOverview()));
+ connect(groupWidget, SIGNAL(requestClose()), this, SLOT(showOverview()));
if ( ! mItem->menu ) {
groupWidget->addModule( mItem->item );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic