[Scummvm-cvs-logs] CVS: scummvm/gui ListWidget.h,1.7,1.8 ListWidget.cpp,1.10,1.11

Max Horn fingolfin at users.sourceforge.net
Thu Jul 18 07:48:07 CEST 2002


Update of /cvsroot/scummvm/scummvm/gui
In directory usw-pr-cvs1:/tmp/cvs-serv14905/gui

Modified Files:
	ListWidget.h ListWidget.cpp 
Log Message:
painelf's key repeat patch

Index: ListWidget.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/ListWidget.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- ListWidget.h	16 Jul 2002 10:52:47 -0000	1.7
+++ ListWidget.h	18 Jul 2002 14:47:24 -0000	1.8
@@ -43,6 +43,7 @@
 	int				_entriesPerPage;
 	int				_selectedItem;
 	ScrollBarWidget	*_scrollBar;
+	int				_currentKeyDown;
 public:
 	ListWidget(Dialog *boss, int x, int y, int w, int h);
 	virtual ~ListWidget();
@@ -54,6 +55,7 @@
 	
 	virtual void handleMouseDown(int x, int y, int button);
 	virtual void handleKeyDown(char key, int modifiers);
+	virtual void handleKeyUp(char key, int modifiers);
 	virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 
 protected:

Index: ListWidget.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/ListWidget.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- ListWidget.cpp	16 Jul 2002 21:18:00 -0000	1.10
+++ ListWidget.cpp	18 Jul 2002 14:47:24 -0000	1.11
@@ -47,6 +47,7 @@
 	_selectedItem = -1;
 	_scrollBar = new ScrollBarWidget(boss, _x + _w, _y, kScrollBarWidth, _h);
 	_scrollBar->setTarget(this);
+	_currentKeyDown = 0;
 	
 	// FIXME: This flag should come from widget definition
 	_editable = true;
@@ -138,8 +139,10 @@
 		case '\n':	// enter
 		case '\r':
 			if (_selectedItem >= 0) {
-				_editMode = true;
-				dirty = true;
+				if ((_currentKeyDown != '\n' && _currentKeyDown != '\r')) {		// override continuous enter keydown
+					_editMode = true;
+					dirty = true;
+				}
 			}
 			break;
 		case 17:	// up arrow
@@ -183,6 +186,13 @@
 		_scrollBar->draw();
 	}
 
+	_currentKeyDown = key;
+}
+
+void ListWidget::handleKeyUp(char key, int modifiers)
+{
+	if (key == _currentKeyDown)
+		_currentKeyDown = 0;
 }
 
 void ListWidget::lostFocusWidget()





More information about the Scummvm-git-logs mailing list