From d36567d3707afd2351f13e7e6a6889c75a5b60ef Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Wed, 13 Jul 2005 20:04:43 +0000 Subject: Win32 simulators: Fixed button repeat handling when releasing buttons. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7134 a1c6a512-1295-4272-9138-f99709370657 --- uisimulator/win32/button.c | 90 +++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 45 deletions(-) (limited to 'uisimulator') diff --git a/uisimulator/win32/button.c b/uisimulator/win32/button.c index d1a86f191a..c11033fb6b 100644 --- a/uisimulator/win32/button.c +++ b/uisimulator/win32/button.c @@ -139,7 +139,7 @@ void button_event(int key, bool pressed) #endif break; } - + if (pressed) btn |= new_btn; else @@ -154,63 +154,63 @@ void button_event(int key, bool pressed) { queue_post(&button_queue, BUTTON_REL | diff, NULL); } - - if ( btn ) + else { - /* normal keypress */ - if ( btn != lastbtn ) + if ( btn ) { - post = true; - repeat = false; - repeat_speed = REPEAT_INTERVAL_START; - - } - else /* repeat? */ - { - if ( repeat ) + /* normal keypress */ + if ( btn != lastbtn ) { - count--; - if (count == 0) - { - post = true; - /* yes we have repeat */ - repeat_speed--; - if (repeat_speed < REPEAT_INTERVAL_FINISH) - repeat_speed = REPEAT_INTERVAL_FINISH; - count = repeat_speed; + post = true; + repeat = false; + repeat_speed = REPEAT_INTERVAL_START; - repeat_count++; - } } - else + else /* repeat? */ { - if (count++ > REPEAT_START) + if ( repeat ) + { + count--; + if (count == 0) + { + post = true; + /* yes we have repeat */ + repeat_speed--; + if (repeat_speed < REPEAT_INTERVAL_FINISH) + repeat_speed = REPEAT_INTERVAL_FINISH; + count = repeat_speed; + + repeat_count++; + } + } + else { - post = true; - repeat = true; - repeat_count = 0; - /* initial repeat */ - count = REPEAT_INTERVAL_START; + if (count++ > REPEAT_START) + { + post = true; + repeat = true; + repeat_count = 0; + /* initial repeat */ + count = REPEAT_INTERVAL_START; + } } } - } - - if ( post ) - { - if(repeat) - queue_post(&button_queue, BUTTON_REPEAT | btn, NULL); - else - queue_post(&button_queue, btn, NULL); + if ( post ) + { + if(repeat) + queue_post(&button_queue, BUTTON_REPEAT | btn, NULL); + else + queue_post(&button_queue, btn, NULL); - backlight_on(); + backlight_on(); + } } + else + { + repeat = false; + count = 0; } - else - { - repeat = false; - count = 0; } - lastbtn = btn & ~(BUTTON_REL | BUTTON_REPEAT); } -- cgit