if ( KEY_PRESSED == event_type ) {
if ( kbd_mouse_is_absolute() ) {
-
- // home key or power key is used for resume.
- if ( ( HARD_KEY_HOME == keycode ) || ( HARD_KEY_POWER == keycode ) ) {
- if ( is_suspended_state() ) {
- INFO( "user requests system resume.\n" );
- resume();
- }
- }
-
ps2kbd_put_keycode( keycode & 0x7f );
-
}
} else if ( KEY_RELEASED == event_type ) {
MULTI_DEBUG_CHANNEL(qemu, skin_operation);
-#define CLOSE_POWER_KEY_INTERVAL 1.2 // seconds
+#define RESUME_KEY_SEND_INTERVAL 500 // milli-seconds
+#define CLOSE_POWER_KEY_INTERVAL 1200 // milli-seconds
void start_display( int handle_id, int lcd_size_width, int lcd_size_height, double scale_factor, short rotation_type )
{
{
TRACE( "do_hardkey_event event_type:%d, keycode:%d\n", event_type, keycode );
+ if ( KEY_PRESSED == event_type ) {
+ if ( kbd_mouse_is_absolute() ) {
+ // home key or power key is used for resume.
+ if ( ( HARD_KEY_HOME == keycode ) || ( HARD_KEY_POWER == keycode ) ) {
+ if ( is_suspended_state() ) {
+ INFO( "user requests system resume.\n" );
+ resume();
+#ifdef _WIN32
+ Sleep( RESUME_KEY_SEND_INTERVAL );
+#else
+ usleep( RESUME_KEY_SEND_INTERVAL * 1000 );
+#endif
+ }
+ }
+ }
+ }
+
SDL_Event event;
memset( &event, 0, sizeof(SDL_Event) );
do_hardkey_event( KEY_PRESSED, HARD_KEY_POWER );
#ifdef _WIN32
- Sleep( CLOSE_POWER_KEY_INTERVAL * 1000 ); // 1.6 seconds
+ Sleep( CLOSE_POWER_KEY_INTERVAL );
#else
- usleep( CLOSE_POWER_KEY_INTERVAL * 1000 * 1000 ); // 1.6 seconds
+ usleep( CLOSE_POWER_KEY_INTERVAL * 1000 );
#endif
do_hardkey_event( KEY_RELEASED, HARD_KEY_POWER );