[Scummvm-cvs-logs] SF.net SVN: scummvm: [26348] scummvm/trunk/engines/touche/ui.cpp

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Sun Apr 1 16:05:50 CEST 2007


Revision: 26348
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26348&view=rev
Author:   eriktorbjorn
Date:     2007-04-01 07:05:50 -0700 (Sun, 01 Apr 2007)

Log Message:
-----------
Call updateScreen() more often in options/save/load dialog to keep mouse
movement smoother. And since this is potentially wasteful, only redraw the
entire dialog when it seems likely that it may have changed.

Modified Paths:
--------------
    scummvm/trunk/engines/touche/ui.cpp

Modified: scummvm/trunk/engines/touche/ui.cpp
===================================================================
--- scummvm/trunk/engines/touche/ui.cpp	2007-04-01 14:04:45 UTC (rev 26347)
+++ scummvm/trunk/engines/touche/ui.cpp	2007-04-01 14:05:50 UTC (rev 26348)
@@ -360,8 +360,10 @@
 		menuData.exit = false;
 		menuData.mode = kMenuSettingsMode;
 		int curMode = -1;
+		bool doRedraw = false;
 		while (!menuData.quit) {
 			if (menuData.mode != curMode) {
+				doRedraw = true;
 				setupMenu(menuData.mode, &menuData);
 				curMode = menuData.mode;
 				if (menuData.mode == kMenuLoadStateMode || menuData.mode == kMenuSaveStateMode) {
@@ -376,7 +378,6 @@
 					}
 				}
 			}
-			redrawMenu(&menuData);
 			Common::Event event;
 			Common::EventManager *eventMan = _system->getEventManager();
 			while (eventMan->pollEvent(event)) {
@@ -391,6 +392,7 @@
 					button = menuData.findButtonUnderCursor(event.mouse.x, event.mouse.y);
 					if (button) {
 						handleMenuAction(&menuData, button->action);
+						doRedraw = true;
 					}
 					break;
 				case Common::EVENT_KEYDOWN:
@@ -400,21 +402,28 @@
 						} else {
 							menuData.addCharToDescription(_saveLoadCurrentSlot, (char)event.kbd.ascii);
 						}
+						doRedraw = true;
 					}
 					break;
 				case Common::EVENT_WHEELUP:
 					handleMenuAction(&menuData, kActionScrollUpSaves);
+					doRedraw = true;
 					break;
 				case Common::EVENT_WHEELDOWN:
 					handleMenuAction(&menuData, kActionScrollDownSaves);
+					doRedraw = true;
 					break;
 				default:
 					break;
 				}
 			}
-			updateScreenArea(90, 102, 460, 196);
+			if (doRedraw) {
+				redrawMenu(&menuData);
+				updateScreenArea(90, 102, 460, 196);
+				doRedraw = false;
+			}
 			_system->updateScreen();
-			_system->delayMillis(50);
+			_system->delayMillis(10);
 		}
 		_fullRedrawCounter = 2;
 		if (!menuData.exit && _flagsTable[611] != 0) {


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