parent
0843a2510c
commit
11973531b4
6 changed files with 23 additions and 13 deletions
|
@ -27,7 +27,6 @@
|
|||
|
||||
/*
|
||||
* TODO:
|
||||
* - Fix the random key repeating bug
|
||||
* - Allow escape to abort changes
|
||||
* - Add key repeat (for backspace, etc)
|
||||
*/
|
||||
|
|
|
@ -116,8 +116,8 @@ void NewGui::loop()
|
|||
case OSystem::EVENT_KEYDOWN:
|
||||
activeDialog->handleKeyDown(t.kbd.ascii, t.kbd.flags);
|
||||
break;
|
||||
// case OSystem::EVENT_KEYUP:
|
||||
// activeDialog->handleKeyUp(t.kbd.ascii, t.kbd.flags);
|
||||
case OSystem::EVENT_KEYUP:
|
||||
activeDialog->handleKeyUp(t.kbd.ascii, t.kbd.flags);
|
||||
break;
|
||||
case OSystem::EVENT_MOUSEMOVE:
|
||||
activeDialog->handleMouseMoved(t.mouse.x - activeDialog->_x, t.mouse.y - activeDialog->_y, 0);
|
||||
|
|
|
@ -1262,7 +1262,6 @@ void Scumm::waitForTimer(int msec_delay) {
|
|||
for(;;) {
|
||||
while (_system->poll_event(&event)) {
|
||||
|
||||
|
||||
// if newgui is running, copy event to EventList, and let the GUI handle it itself
|
||||
// we might consider this approach for ScummLoop as well, and clean up the current mess
|
||||
if (_newgui->isActive())
|
||||
|
|
21
sdl.cpp
21
sdl.cpp
|
@ -835,27 +835,27 @@ bool OSystem_SDL::poll_event(Event *event) {
|
|||
if (ev.key.keysym.mod & KMOD_CTRL) b |= KBD_CTRL;
|
||||
if (ev.key.keysym.mod & KMOD_ALT) b |= KBD_ALT;
|
||||
event->kbd.flags = b;
|
||||
|
||||
|
||||
/* internal keypress? */
|
||||
if (b == KBD_ALT && ev.key.keysym.sym==SDLK_RETURN) {
|
||||
property(PROP_TOGGLE_FULLSCREEN, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if ((b == KBD_CTRL && ev.key.keysym.sym=='z') || (b == KBD_ALT && ev.key.keysym.sym=='x')) {
|
||||
quit();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (b == (KBD_CTRL|KBD_ALT) &&
|
||||
(ev.key.keysym.sym>='1') && (ev.key.keysym.sym<='7')) {
|
||||
(ev.key.keysym.sym>='1') && (ev.key.keysym.sym<='7')) {
|
||||
Property prop;
|
||||
prop.gfx_mode = ev.key.keysym.sym - '1';
|
||||
property(PROP_SET_GFX_MODE, &prop);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
event->event_code = EVENT_KEYDOWN;
|
||||
event->kbd.keycode = ev.key.keysym.sym;
|
||||
event->kbd.ascii = mapKey(ev.key.keysym.sym, ev.key.keysym.mod);
|
||||
|
@ -879,11 +879,15 @@ bool OSystem_SDL::poll_event(Event *event) {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
case SDL_KEYUP: {
|
||||
case SDL_KEYUP: {
|
||||
event->event_code = EVENT_KEYUP;
|
||||
event->kbd.keycode = ev.key.keysym.sym;
|
||||
event->kbd.ascii = mapKey(ev.key.keysym.sym, ev.key.keysym.mod);
|
||||
|
||||
switch(ev.key.keysym.sym){
|
||||
case SDLK_LEFT:
|
||||
if (km.x_vel < 0) {
|
||||
|
@ -956,6 +960,7 @@ bool OSystem_SDL::poll_event(Event *event) {
|
|||
quit();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool OSystem_SDL::set_sound_proc(void *param, SoundProc *proc, byte format) {
|
||||
|
|
|
@ -591,6 +591,13 @@ bool OSystem_SDL::poll_event(Event *event) {
|
|||
return true;
|
||||
}
|
||||
|
||||
case SDL_KEYUP:
|
||||
event->event_code = EVENT_KEYUP;
|
||||
event->kbd.keycode = ev.key.keysym.sym;
|
||||
event->kbd.ascii = mapKey(ev.key.keysym.sym, ev.key.keysym.mod);
|
||||
|
||||
return true;
|
||||
|
||||
case SDL_MOUSEMOTION:
|
||||
event->event_code = EVENT_MOUSEMOVE;
|
||||
event->mouse.x = ev.motion.x;
|
||||
|
|
2
system.h
2
system.h
|
@ -44,7 +44,7 @@ public:
|
|||
|
||||
enum {
|
||||
EVENT_KEYDOWN = 1,
|
||||
// EVENT_KEYUP = 2,
|
||||
EVENT_KEYUP = 2,
|
||||
EVENT_MOUSEMOVE = 3,
|
||||
EVENT_LBUTTONDOWN = 4,
|
||||
EVENT_LBUTTONUP = 5,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue