jypark pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=b4575e7bd21d190b691b16c61193b3cbdfc5f3e5
commit b4575e7bd21d190b691b16c61193b3cbdfc5f3e5 Author: Ji-Youn Park <jy0703.p...@samsung.com> Date: Fri Jun 12 11:16:25 2015 +0900 elm_win: fix keygrab bug to use wrong keygrab mode The code set worng ecore_x_keygrab mode according keygrab mode. and changed some codes for readablity. --- src/lib/elm_win.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index b63b2b1..d81226f 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -5044,19 +5044,28 @@ _elm_win_keygrab_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, const char *key, Eva _internal_elm_win_xwindow_get(sd); if (sd->x.xwin) { - if (grab_mode == ELM_WIN_KEYGRAB_SHARED) - ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_SHARED); - else if (grab_mode == ELM_WIN_KEYGRAB_TOPMOST) - ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_TOPMOST); - else if (grab_mode == ELM_WIN_KEYGRAB_EXCLUSIVE) - ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_EXCLUSIVE); - else if (grab_mode == ELM_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE) - ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_EXCLUSIVE); + Ecore_X_Win_Keygrab_Mode x_grab_mode; + switch (grab_mode) + { + case ELM_WIN_KEYGRAB_SHARED: + x_grab_mode = ECORE_X_WIN_KEYGRAB_SHARED; + break; + case ELM_WIN_KEYGRAB_TOPMOST: + x_grab_mode = ECORE_X_WIN_KEYGRAB_TOPMOST; + break; + case ELM_WIN_KEYGRAB_EXCLUSIVE: + x_grab_mode = ECORE_X_WIN_KEYGRAB_EXCLUSIVE; + break; + case ELM_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE: + x_grab_mode = ECORE_X_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE; + break; + default: + return ret; + } + ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, x_grab_mode); } - return ret; -#else - return ret; #endif + return ret; } EOLIAN static Eina_Bool @@ -5067,10 +5076,8 @@ _elm_win_keygrab_unset(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, const char *key, E _internal_elm_win_xwindow_get(sd); if (sd->x.xwin) ret = ecore_x_window_keygrab_unset(sd->x.xwin, key, 0, 0); - return ret; -#else - return ret; #endif + return ret; } EOLIAN static Evas_Object* --