ecore-evas: call application-set focus functions if no engine functions exist 59/86659/2
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 11 May 2016 17:29:51 +0000 (13:29 -0400)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Mon, 5 Sep 2016 10:12:34 +0000 (03:12 -0700)
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

Change-Id: Ie3dfa6518d9b7375a65a9ff1c963715ecaff47ab
Signed-off-by: Mykyta Biliavskyi <m.biliavskyi@samsung.com>
src/lib/ecore_evas/ecore_evas.c

index 237bc57..05b2d8f 100755 (executable)
@@ -1876,6 +1876,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