[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