discomfitor pushed a commit to branch master.

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

commit 723d4ca8c96870bac9729b47ecceaf0449c90e77
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed May 11 13:29:51 2016 -0400

    ecore-evas: call application-set focus functions if no engine functions 
exist
    
    in the case where an engine has no real concept of focus (eg. drm), no 
engine
    functions will be implemented, resulting in calls to focus_set having no 
effect.
    this leads to elm/applications being unable to receive the callbacks they 
expect
    when calls to the overall api are made, resulting in focus being broken
    
    probably this should also be done for the rest of the api functions too
    
    @fix
---
 src/lib/ecore_evas/ecore_evas.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c
index 2a54555..16facc1 100644
--- a/src/lib/ecore_evas/ecore_evas.c
+++ b/src/lib/ecore_evas/ecore_evas.c
@@ -1838,6 +1838,17 @@ ecore_evas_focus_set(Ecore_Evas *ee, Eina_Bool on)
      }
    IFC(ee, fn_focus_set) (ee, on);
    IFE;
+   if (on)
+     {
+        evas_focus_in(ee->evas);
+        if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
+     }
+   else
+     {
+        evas_focus_out(ee->evas);
+        if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
+     }
+   ee->prop.focused = !!on;
 }
 
 EAPI Eina_Bool

-- 


Reply via email to