From: caro Date: Mon, 26 Mar 2012 17:33:10 +0000 (+0000) Subject: Ecore_Win32/WinCE: also do not autorepeat the Win key X-Git-Tag: 2.0_alpha~47^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f8961985e49d06fa22506a22f27f7ce94a5a4ba7;p=framework%2Fuifw%2Fecore.git Ecore_Win32/WinCE: also do not autorepeat the Win key Patch by Shinwoo Kim git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@69638 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/ChangeLog b/ChangeLog index 6187370..9cce3c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -589,5 +589,5 @@ 2012-03-26 Shinwoo Kim - * Do not autorepeat Ctrl, Shift and Alt keys on Windows + * Do not autorepeat Ctrl, Shift, Alt and Win keys on Windows diff --git a/NEWS b/NEWS index 5d4ed62..1adf4c0 100644 --- a/NEWS +++ b/NEWS @@ -51,7 +51,7 @@ Fixes: * ecore_x: - ecore_x_randr_modes_info_get does not cut off the trailing '\0' anymore. * ecore_win32/wince: - - do not autorepeat Ctrl, Shift and Alt keys + - do not autorepeat Ctrl, Shift, Alt and Win keys Improvements: * ecore: diff --git a/src/lib/ecore_win32/ecore_win32_event.c b/src/lib/ecore_win32/ecore_win32_event.c index 348aaff..e0431a8 100644 --- a/src/lib/ecore_win32/ecore_win32_event.c +++ b/src/lib/ecore_win32/ecore_win32_event.c @@ -971,6 +971,7 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, { if (is_down) { + if (previous_key_state) return 0; kn = "Super_L"; ks = "Super_L"; kc = ""; @@ -989,6 +990,7 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, { if (is_down) { + if (previous_key_state) return 0; kn = "Super_R"; ks = "Super_R"; kc = ""; diff --git a/src/lib/ecore_wince/ecore_wince_event.c b/src/lib/ecore_wince/ecore_wince_event.c index f4c0a2a..7643047 100644 --- a/src/lib/ecore_wince/ecore_wince_event.c +++ b/src/lib/ecore_wince/ecore_wince_event.c @@ -411,6 +411,44 @@ _ecore_wince_event_keystroke_get(int key, } break; } + case VK_LWIN: + { + if (is_down) + { + if (previous_key_state) return 0; + kn = "Super_L"; + ks = "Super_L"; + kc = ""; + *modifiers |= ECORE_EVENT_MODIFIER_WIN; + } + else /* is_up */ + { + kn = "Super_L"; + ks = "Super_L"; + kc = ""; + *modifiers &= ~ECORE_EVENT_MODIFIER_WIN; + } + break; + } + case VK_RWIN: + { + if (is_down) + { + if (previous_key_state) return 0; + kn = "Super_R"; + ks = "Super_R"; + kc = ""; + *modifiers |= ECORE_EVENT_MODIFIER_WIN; + } + else /* is_up */ + { + kn = "Super_R"; + ks = "Super_R"; + kc = ""; + *modifiers &= ~ECORE_EVENT_MODIFIER_WIN; + } + break; + } default: /* other non keystroke characters */ return 0;