but that would make sense!

On Mon, Sep 2, 2013 at 2:49 PM, Gustavo Sverzut Barbieri <[email protected]
> wrote:

> isn't better to just check the focus object afterwards? This
> focus_set() signature became strange :-/
>
> On Mon, Sep 2, 2013 at 8:29 AM, Cedric Bail - Enlightenment Git
> <[email protected]> wrote:
> > cedric pushed a commit to branch master.
> >
> > commit a007a3af1398e66ba90eae005ccbf31dfb81788a
> > Author: Cedric Bail <[email protected]>
> > Date:   Mon Sep 2 20:28:23 2013 +0900
> >
> >     evas: focus_set can fail... internally handle that case properly now.
> > ---
> >  src/lib/evas/Evas_Eo.h           |  2 +-
> >  src/lib/evas/canvas/evas_focus.c | 21 ++++++++++++++++-----
> >  2 files changed, 17 insertions(+), 6 deletions(-)
> >
> > diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
> > index e4b83e8..fc61c0a 100644
> > --- a/src/lib/evas/Evas_Eo.h
> > +++ b/src/lib/evas/Evas_Eo.h
> > @@ -5232,7 +5232,7 @@ enum
> >   *
> >   * @see evas_object_focus_set
> >   */
> > -#define evas_obj_focus_set(focus)
> EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus)
> > +#define evas_obj_focus_set(focus, succeed)
> EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus),
> EO_TYPECHECK(Eina_Bool *, succeed)
> >
> >  /**
> >   * @def evas_obj_focus_get
> > diff --git a/src/lib/evas/canvas/evas_focus.c
> b/src/lib/evas/canvas/evas_focus.c
> > index 757f585..5294ee6 100644
> > --- a/src/lib/evas/canvas/evas_focus.c
> > +++ b/src/lib/evas/canvas/evas_focus.c
> > @@ -10,29 +10,36 @@
> >  EAPI void
> >  evas_object_focus_set(Evas_Object *eo_obj, Eina_Bool focus)
> >  {
> > -   eo_do(eo_obj, evas_obj_focus_set(focus));
> > +   eo_do(eo_obj, evas_obj_focus_set(focus, NULL));
> >  }
> >
> >  void
> >  _focus_set(Eo *eo_obj, void *_pd, va_list *list)
> >  {
> >     Eina_Bool focus = va_arg(*list, int);
> > +   Eina_Bool *r = va_arg(*list, Eina_Bool *);
> >
> >     int event_id = 0;
> >     MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
> >     return;
> >     MAGIC_CHECK_END();
> > -   Evas_Object_Protected_Data *obj = _pd;
> > +   Evas_Object_Protected_Data *obj = _pd;
> > +
> > +   if (r) *r = EINA_FALSE;
> >
> >     _evas_object_event_new();
> >
> >     event_id = _evas_event_counter;
> > -   if (obj->focused == focus) goto end;
> > +   if (obj->focused == focus) goto success_end;
> >     if (evas_object_intercept_call_focus_set(eo_obj, obj, focus)) goto
> end;
> >     if (focus)
> >       {
> > +        Eina_Bool success = EINA_TRUE;
> > +
> >          if (obj->layer->evas->focused)
> > -          evas_object_focus_set(obj->layer->evas->focused, 0);
> > +          eo_do(obj->layer->evas->focused,
> > +                evas_obj_focus_set(0, &success));
> > +        if (!success) goto end;
> >          obj->focused = 1;
> >          obj->layer->evas->focused = eo_obj;
> >          evas_object_event_callback_call(eo_obj, obj,
> EVAS_CALLBACK_FOCUS_IN, NULL, event_id);
> > @@ -47,7 +54,11 @@ _focus_set(Eo *eo_obj, void *_pd, va_list *list)
> >          evas_event_callback_call(obj->layer->evas->evas,
> >                                   EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT,
> eo_obj);
> >       }
> > -   end:
> > +
> > + success_end:
> > +   if (r) *r = EINA_TRUE;
> > +
> > + end:
> >     _evas_post_event_callback_call(obj->layer->evas->evas,
> obj->layer->evas);
> >  }
> >
> >
> > --
> >
> >
> ------------------------------------------------------------------------------
> > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> > Discover the easy way to master current and previous Microsoft
> technologies
> > and advance your career. Get an incredible 1,500+ hours of step-by-step
> > tutorial videos with LearnDevNow. Subscribe today and save!
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
>
>
>
> --
> Gustavo Sverzut Barbieri
> --------------------------------------
> Mobile: +55 (19) 9225-2202
> Contact: http://www.gustavobarbieri.com.br/contact
>
>
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to