zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=faf6d4f4256dd644a24aa1f24589df8f3b5f67ff

commit faf6d4f4256dd644a24aa1f24589df8f3b5f67ff
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Mar 4 13:37:30 2019 -0500

    efl.ui.win: remove keygrab set/unset from eo api
    
    Summary:
    this is fundamentally incompatible with many display servers and will
    not ever be supported outside of legacy
    
    ref T7511
    Depends on D8083
    
    Reviewers: cedric
    
    Reviewed By: cedric
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl_api
    
    Maniphest Tasks: T7511
    
    Differential Revision: https://phab.enlightenment.org/D8084
---
 src/lib/elementary/efl_ui_win.c  | 107 ++++++++++++++++-----------------------
 src/lib/elementary/efl_ui_win.eo |  50 ------------------
 2 files changed, 43 insertions(+), 114 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index f29365d485..43ecc9d864 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -6942,62 +6942,6 @@ _efl_ui_win_prop_focus_skip_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Win_Data *sd, Eina_B
    TRAP(sd, focus_skip_set, skip);
 }
 
-EOLIAN static Eina_Bool
-_efl_ui_win_keygrab_set(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, const char 
*key,
-                        Efl_Input_Modifier modifiers EINA_UNUSED,
-                        Efl_Input_Modifier not_modifiers EINA_UNUSED,
-                        int priority EINA_UNUSED, Efl_Ui_Win_Keygrab_Mode 
grab_mode)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef HAVE_ELEMENTARY_X
-   _internal_elm_win_xwindow_get(sd);
-   if (sd->x.xwin)
-     {
-        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);
-     }
-#else
-   (void)sd;
-   (void)key;
-   (void)grab_mode;
-#endif
-   return ret;
-}
-
-EOLIAN static Eina_Bool
-_efl_ui_win_keygrab_unset(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, const char 
*key,
-                          Efl_Input_Modifier modifiers EINA_UNUSED,
-                          Efl_Input_Modifier not_modifiers EINA_UNUSED)
-{
-   Eina_Bool ret = EINA_FALSE;
-#ifdef HAVE_ELEMENTARY_X
-   _internal_elm_win_xwindow_get(sd);
-   if (sd->x.xwin)
-     ret = ecore_x_window_keygrab_unset(sd->x.xwin, key, 0, 0);
-#else
-   (void)sd;
-   (void)key;
-#endif
-   return ret;
-}
-
 EOLIAN static void
 _efl_ui_win_focus_highlight_enabled_set(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data 
*sd, Eina_Bool enabled)
 {
@@ -8901,13 +8845,40 @@ EAPI Eina_Bool
 elm_win_keygrab_set(Elm_Win *obj, const char *key,
                     Evas_Modifier_Mask modifiers EINA_UNUSED,
                     Evas_Modifier_Mask not_modifiers EINA_UNUSED,
-                    int priority, Elm_Win_Keygrab_Mode grab_mode)
+                    int priority EINA_UNUSED, Elm_Win_Keygrab_Mode grab_mode)
 {
    // Note: Not converting modifiers as they are not used in the implementation
-   return efl_ui_win_keygrab_set(obj, key,
-                                 EFL_INPUT_MODIFIER_NONE,
-                                 EFL_INPUT_MODIFIER_NONE,
-                                 priority, grab_mode);
+   Eina_Bool ret = EINA_FALSE;
+#ifdef HAVE_ELEMENTARY_X
+   Efl_Ui_Win_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
+   _internal_elm_win_xwindow_get(sd);
+   if (sd->x.xwin)
+     {
+        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);
+     }
+#else
+   (void)key;
+   (void)grab_mode;
+#endif
+   return ret;
 }
 
 EAPI Eina_Bool
@@ -8916,9 +8887,17 @@ elm_win_keygrab_unset(Elm_Win *obj, const char *key,
                       Evas_Modifier_Mask not_modifiers EINA_UNUSED)
 {
    // Note: Not converting modifiers as they are not used in the implementation
-   return efl_ui_win_keygrab_unset(obj, key,
-                                   EFL_INPUT_MODIFIER_NONE,
-                                   EFL_INPUT_MODIFIER_NONE);
+   Eina_Bool ret = EINA_FALSE;
+#ifdef HAVE_ELEMENTARY_X
+   Efl_Ui_Win_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
+   _internal_elm_win_xwindow_get(sd);
+   if (sd->x.xwin)
+     ret = ecore_x_window_keygrab_unset(sd->x.xwin, key, 0, 0);
+#else
+   (void)sd;
+   (void)key;
+#endif
+   return ret;
 }
 
 EAPI Eina_Bool
diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index 301435f2d3..94b283096e 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -89,24 +89,6 @@ enum Efl.Ui.Win_Indicator_Mode
             If user flicks the upper side of window, the indicator is shown 
temporarily.]]
 }
 
-enum Efl.Ui.Win_Keygrab_Mode
-{
-   [[Define the keygrab modes of window. A window may send commands to the
-     Keyrouter according this mode, and perform different actions.]]
-
-   unknown = 0, [[Unknown keygrab mode]]
-   shared = (1 << 8), [[Get the grabbed-key together with the other client
-                        windows]]
-   topmost = (1 << 9), [[Get the grabbed-key only when window is top of the
-                         stack]]
-   exclusive = (1 << 10), [[Get the grabbed-key exclusively regardless of
-                            window's position]]
-   override_exclusive = (1 << 11) [[Get the grabbed-key exclusively
-                                    regardless of window's position. This is
-                                    overrided by grabs from the other client
-                                    window]]
-}
-
 enum Efl.Ui.Win_Modal_Mode
 {
    [[Defines the mode of a modal window]]
@@ -690,38 +672,6 @@ class @beta Efl.Ui.Win extends Efl.Ui.Widget implements 
Efl.Canvas.Scene, Efl.Ac
             @in v: bool; [[If $true, center vertically. If $false, do not 
change vertical location.]]
          }
       }
-      keygrab_set {
-         [[Set keygrab value of the window
-
-           This function grabs the $key of window using $grab_mode.
-         ]]
-
-         return: bool; [[$true on success, $false otherwise]]
-         params {
-            @in key: string; [[This string is the keyname to grab.]]
-            @in modifiers: Efl.Input.Modifier; [[A combination of modifier keys
-                 that must be present to trigger the event. Not supported 
yet.]]
-            @in not_modifiers: Efl.Input.Modifier; [[A combination of modifier
-                 keys that must not be present to trigger the event. Not 
supported yet.]]
-            @in priority: int; [[Not supported yet.]]
-            @in grab_mode: Efl.Ui.Win_Keygrab_Mode; [[Describes how the key 
should
-                 be grabbed, wrt. focus and stacking.]]
-         }
-      }
-      keygrab_unset {
-         [[Unset keygrab value of the window
-
-           This function unset keygrab value. Ungrab $key of window.
-         ]]
-         return: bool; [[$true on success, $false otherwise]]
-         params {
-            @in key: string; [[This string is the keyname to grab.]]
-            @in modifiers: Efl.Input.Modifier; [[A combination of modifier keys
-                 that must be present to trigger the event. Not supported 
yet.]]
-            @in not_modifiers: Efl.Input.Modifier; [[A combination of modifier 
keys
-                 that must not be present to trigger the event. Not supported 
yet.]]
-         }
-      }
       move_resize_start {
          [[Start moving or resizing the window.
 

-- 


Reply via email to