[Scummvm-cvs-logs] SF.net SVN: scummvm:[35660] scummvm/trunk/backends/events/default

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Fri Jan 2 02:21:38 CET 2009


Revision: 35660
          http://scummvm.svn.sourceforge.net/scummvm/?rev=35660&view=rev
Author:   fingolfin
Date:     2009-01-02 01:21:38 +0000 (Fri, 02 Jan 2009)

Log Message:
-----------
Prevent the 'Confirm exit' dialog from being invoked recursively

Modified Paths:
--------------
    scummvm/trunk/backends/events/default/default-events.cpp
    scummvm/trunk/backends/events/default/default-events.h

Modified: scummvm/trunk/backends/events/default/default-events.cpp
===================================================================
--- scummvm/trunk/backends/events/default/default-events.cpp	2009-01-02 00:52:01 UTC (rev 35659)
+++ scummvm/trunk/backends/events/default/default-events.cpp	2009-01-02 01:21:38 UTC (rev 35660)
@@ -94,7 +94,8 @@
 	_buttonState(0),
 	_modifierState(0),
 	_shouldQuit(false),
-	_shouldRTL(false) {
+	_shouldRTL(false),
+	_confirmExitDialogActive(false) {
 
 	assert(_boss);
 
@@ -482,12 +483,18 @@
 
 		case Common::EVENT_QUIT:
 			if (ConfMan.getBool("confirm_exit")) {
+				if (_confirmExitDialogActive) {
+					result = false;
+					break;
+				}
+				_confirmExitDialogActive = true;
 				if (g_engine)
 					g_engine->pauseEngine(true);
 				GUI::MessageDialog alert("Do you really want to quit?", "Quit", "Cancel");
 				result = _shouldQuit = (alert.runModal() == GUI::kMessageOK);
 				if (g_engine)
 					g_engine->pauseEngine(false);
+				_confirmExitDialogActive = false;
 			} else
 				_shouldQuit = true;
 

Modified: scummvm/trunk/backends/events/default/default-events.h
===================================================================
--- scummvm/trunk/backends/events/default/default-events.h	2009-01-02 00:52:01 UTC (rev 35659)
+++ scummvm/trunk/backends/events/default/default-events.h	2009-01-02 01:21:38 UTC (rev 35660)
@@ -52,6 +52,7 @@
 	int _modifierState;
 	bool _shouldQuit;
 	bool _shouldRTL;
+	bool _confirmExitDialogActive;
 
 	class RandomSourceRecord {
 	public:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list