cedric pushed a commit to branch master.

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

commit 4baeb17dbab8e438465b402dc6d11bf46613f506
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Tue May 9 15:54:45 2017 -0700

    evas: adjust pointer mode set to work in headless scenario.
    
    With the wayland backend, it is posible to have no seat connected
    until later. This would lead to calling evas_object_pointer_mode_set
    and fail without returning a boolean it was impossible to detect it
    did fail. This patch correct it.
---
 src/lib/evas/canvas/efl_canvas_object.eo |  6 ++++++
 src/lib/evas/canvas/evas_events.c        | 11 ++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/lib/evas/canvas/efl_canvas_object.eo 
b/src/lib/evas/canvas/efl_canvas_object.eo
index 458c1ae..b2569ce 100644
--- a/src/lib/evas/canvas/efl_canvas_object.eo
+++ b/src/lib/evas/canvas/efl_canvas_object.eo
@@ -33,6 +33,7 @@ abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, 
Efl.Gfx.Stack, Efl.Animator,
              pointer_mode: Efl.Input.Object_Pointer_Mode; [[The pointer mode]]
          }
          set {
+           return: bool;
             legacy: null;
          }
          get {
@@ -58,6 +59,11 @@ abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, 
Efl.Gfx.Stack, Efl.Animator,
            See also: @.pointer_mode_by_device.get and 
@.pointer_mode_by_device.set
            Note: This function will only set/get the mode for the default 
pointer.
          ]]
+        get {
+        }
+        set {
+           return: bool;
+        }
          values {
             pointer_mode: Efl.Input.Object_Pointer_Mode; [[Input pointer mode]]
          }
diff --git a/src/lib/evas/canvas/evas_events.c 
b/src/lib/evas/canvas/evas_events.c
index dcb318d..afab40f 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -3647,7 +3647,7 @@ _efl_canvas_object_propagate_events_get(Eo *eo_obj 
EINA_UNUSED, Evas_Object_Prot
    return !(obj->no_propagate);
 }
 
-EOLIAN void
+EOLIAN Eina_Bool
 _efl_canvas_object_pointer_mode_by_device_set(Eo *eo_obj, 
Evas_Object_Protected_Data *obj, Efl_Input_Device *dev, 
Evas_Object_Pointer_Mode setting)
 {
    int addgrab;
@@ -3657,13 +3657,13 @@ _efl_canvas_object_pointer_mode_by_device_set(Eo 
*eo_obj, Evas_Object_Protected_
    Evas_Object_Pointer_Data *obj_pdata;
 
    pdata = _evas_pointer_data_by_device_get(obj->layer->evas, dev);
-   if (!pdata) return;
+   if (!pdata) return EINA_FALSE;
 
    obj_pdata = _evas_object_pointer_data_get(pdata, obj);
-   EINA_SAFETY_ON_NULL_RETURN(obj_pdata);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(obj_pdata, EINA_FALSE);
 
    /* ignore no-ops */
-   if (obj_pdata->pointer_mode == setting) return;
+   if (obj_pdata->pointer_mode == setting) return EINA_FALSE;
 
    /* adjust by number of pointer down events */
    addgrab = pdata->downs;
@@ -3725,6 +3725,7 @@ _efl_canvas_object_pointer_mode_by_device_set(Eo *eo_obj, 
Evas_Object_Protected_
         pdata->mouse_grabbed += addgrab;
      }
    obj_pdata->pointer_mode = setting;
+   return EINA_TRUE;
 }
 
 EOLIAN Evas_Object_Pointer_Mode
@@ -3744,7 +3745,7 @@ _efl_canvas_object_pointer_mode_by_device_get(Eo *eo_obj 
EINA_UNUSED,
    return obj_pdata->pointer_mode;
 }
 
-EOLIAN void
+EOLIAN Eina_Bool
 _efl_canvas_object_pointer_mode_set(Eo *eo_obj, Evas_Object_Protected_Data 
*obj,
                                     Evas_Object_Pointer_Mode setting)
 {

-- 


Reply via email to