to match ecore_x API.
* Add ecore_wince_window_focus(), ecore_wince_window_focus_get()
and ecore_win32_window_focus_get().
+
+2012-03-26 Shinwoo Kim
+
+ * Do not autorepeat Ctrl, Shift and Alt keys on Windows
+
- prevent double free that could cause crash when an Ecore_Thread stop.
* 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
Improvements:
* ecore:
char *kc = NULL;
int key;
int is_extended;
+ int previous_key_state;
key = msg->window_param;
is_extended = msg->data_param & 0x01000000;
+ previous_key_state = msg->data_param & 0x40000000;
*keyname = NULL;
*keysymbol = NULL;
if (is_down)
{
+ if (previous_key_state) return 0;
res = GetKeyState(VK_LSHIFT);
if (res & 0x8000)
{
if (is_down)
{
+ if (previous_key_state) return 0;
res = GetKeyState(VK_LCONTROL);
if (res & 0x8000)
{
if (is_down)
{
+ if (previous_key_state) return 0;
res = GetKeyState(VK_LMENU);
if (res & 0x8000)
{
char *kn;
char *ks;
char *kc;
+ int previous_key_state;
+
+ previous_key_state = msg->data_param & 0x40000000;
*keyname = NULL;
*keysymbol = NULL;
if (is_down)
{
+ if (previous_key_state) return 0;
res = GetKeyState(VK_LSHIFT);
if (res & 0x8000)
{
if (is_down)
{
+ if (previous_key_state) return 0;
res = GetKeyState(VK_LCONTROL);
if (res & 0x8000)
{
if (is_down)
{
+ if (previous_key_state) return 0;
res = GetKeyState(VK_LMENU);
if (res & 0x8000)
{