Merge "elm_win: bug fix - add keygrab unset code when wayland backend" into tizen accepted/tizen/mobile/20150724.090518 accepted/tizen/tv/20150724.090656 accepted/tizen/wearable/20150724.090831 submit/tizen/20150724.043958
authorJi-Youn Park <jy0703.park@samsung.com>
Wed, 22 Jul 2015 07:52:12 +0000 (00:52 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Wed, 22 Jul 2015 07:52:12 +0000 (00:52 -0700)
1  2 
src/lib/elm_win.c

diff --combined src/lib/elm_win.c
@@@ -4647,18 -4647,6 +4647,18 @@@ _elm_win_indicator_mode_set(Eo *obj EIN
              (sd->x.xwin, ECORE_X_ILLUME_INDICATOR_STATE_OFF);
       }
  #endif
 +#if HAVE_ELEMENTARY_WAYLAND
 +   _elm_win_wlwindow_get(sd);
 +   if (sd->wl.win)
 +     {
 +        if (sd->indmode == ELM_WIN_INDICATOR_SHOW)
 +          ecore_wl_window_indicator_state_set
 +            (sd->wl.win, ECORE_WL_INDICATOR_STATE_ON);
 +        else if (sd->indmode == ELM_WIN_INDICATOR_HIDE)
 +          ecore_wl_window_indicator_state_set
 +            (sd->wl.win, ECORE_WL_INDICATOR_STATE_OFF);
 +     }
 +#endif
     evas_object_smart_callback_call(obj, SIG_INDICATOR_PROP_CHANGED, NULL);
  }
  
@@@ -4688,21 -4676,6 +4688,21 @@@ _elm_win_indicator_opacity_set(Eo *obj 
              (sd->x.xwin, ECORE_X_ILLUME_INDICATOR_TRANSPARENT);
       }
  #endif
 +#if HAVE_ELEMENTARY_WAYLAND
 +   _elm_win_wlwindow_get(sd);
 +   if (sd->wl.win)
 +     {
 +        if (sd->ind_o_mode == ELM_WIN_INDICATOR_OPAQUE)
 +          ecore_wl_window_indicator_opacity_set
 +            (sd->wl.win, ECORE_WL_INDICATOR_OPAQUE);
 +        else if (sd->ind_o_mode == ELM_WIN_INDICATOR_TRANSLUCENT)
 +          ecore_wl_window_indicator_opacity_set
 +            (sd->wl.win, ECORE_WL_INDICATOR_TRANSLUCENT);
 +        else if (sd->ind_o_mode == ELM_WIN_INDICATOR_TRANSPARENT)
 +          ecore_wl_window_indicator_opacity_set
 +            (sd->wl.win, ECORE_WL_INDICATOR_TRANSPARENT);
 +     }
 +#endif
     evas_object_smart_callback_call(obj, SIG_INDICATOR_PROP_CHANGED, NULL);
  }
  
@@@ -4939,48 -4912,56 +4939,56 @@@ _elm_win_keygrab_set(Eo *obj EINA_UNUSE
     Eina_Bool ret = EINA_FALSE;
  #ifdef HAVE_ELEMENTARY_X
     _internal_elm_win_xwindow_get(sd);
-    if (!sd->x.xwin) return EINA_FALSE;
-    switch (grab_mode)
+    if (sd->x.xwin)
       {
-       case ELM_WIN_KEYGRAB_SHARED:
-         ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_SHARED);
-         break;
-       case ELM_WIN_KEYGRAB_TOPMOST:
-         ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_TOPMOST);
-         break;
-       case ELM_WIN_KEYGRAB_EXCLUSIVE:
-         ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_EXCLUSIVE);
-         break;
-       case ELM_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE:
-         ret = ecore_x_window_keygrab_set(sd->x.xwin, key, 0, 0, 0, ECORE_X_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE);
-         break;
-       default:
-         break;
+         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);
       }
  #endif
+ // TIZEN_ONLY(20150722): Add ecore_wl_window_keygrab_* APIs
  #ifdef HAVE_ELEMENTARY_WAYLAND
     _elm_win_wlwindow_get(sd);
-    if (!sd->wl.win) return EINA_FALSE;
-    switch (grab_mode)
+    if (sd->wl.win)
       {
-       case ELM_WIN_KEYGRAB_SHARED:
-         ret = ecore_wl_window_keygrab_set(sd->wl.win, key, 0, 0, 0, ECORE_WL_WINDOW_KEYGRAB_SHARED);
-         break;
-       case ELM_WIN_KEYGRAB_TOPMOST:
-         ret = ecore_wl_window_keygrab_set(sd->wl.win, key, 0, 0, 0, ECORE_WL_WINDOW_KEYGRAB_TOPMOST);
-         break;
-       case ELM_WIN_KEYGRAB_EXCLUSIVE:
-         ret = ecore_wl_window_keygrab_set(sd->wl.win, key, 0, 0, 0, ECORE_WL_WINDOW_KEYGRAB_EXCLUSIVE);
-         break;
-       case ELM_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE:
-         ret = ecore_wl_window_keygrab_set(sd->wl.win, key, 0, 0, 0, ECORE_WL_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE);
-         break;
-       default:
-         break;
+         Ecore_Wl_Window_Keygrab_Mode wl_grab_mode;
+         switch (grab_mode)
+           {
+            case ELM_WIN_KEYGRAB_SHARED:
+              wl_grab_mode = ECORE_WL_WINDOW_KEYGRAB_SHARED;
+              break;
+            case ELM_WIN_KEYGRAB_TOPMOST:
+              wl_grab_mode = ECORE_WL_WINDOW_KEYGRAB_TOPMOST;
+              break;
+            case ELM_WIN_KEYGRAB_EXCLUSIVE:
+              wl_grab_mode = ECORE_WL_WINDOW_KEYGRAB_EXCLUSIVE;
+              break;
+            case ELM_WIN_KEYGRAB_OVERRIDE_EXCLUSIVE:
+              wl_grab_mode = ECORE_WL_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE;
+              break;
+            default:
+              break;
+           }
+         ret = ecore_wl_window_keygrab_set(sd->wl.win, key, 0, 0, 0, wl_grab_mode);
       }
  #endif
+ //
     return ret;
  }
  
@@@ -4992,10 -4973,15 +5000,15 @@@ _elm_win_keygrab_unset(Eo *obj EINA_UNU
     _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
+ // TIZEN_ONLY(20150722): Add ecore_wl_window_keygrab_* APIs
+ #ifdef HAVE_ELEMENTARY_WAYLAND
+    _elm_win_wlwindow_get(sd);
+    if (sd->wl.win)
+      ret = ecore_wl_window_keygrab_unset(sd->wl.win, key, 0, 0);
+ #endif
+ //
+    return ret;
  }
  
  EOLIAN static Evas_Object*