On Mon, Dec 15, 2014 at 3:55 PM, Cedric BAIL <[email protected]> wrote:
>
> On Fri, Dec 12, 2014 at 2:02 PM, Daniel Juyung Seo <[email protected]>
> wrote:
> > Hi Thanks for the patch.
> >
> > Once we agreed to push this feature, we need to make it better.
> >
> > 1. Do we support this feature only on windows creation time? So no
> support
> > for runtime theme change?
>
>
Hi


> I didn't find a place where we did support the change of the window
> layout. If there is any, point it to me and I will fix it.
>

Just think about a runtime theme change.


>
> > On Thu, Dec 11, 2014 at 2:46 PM, Cedric BAIL <[email protected]>
> wrote:
> >>
> >> cedric pushed a commit to branch master.
> >>
> >>
> >>
> http://git.enlightenment.org/core/elementary.git/commit/?id=e07061c5d5a9b1ec79278da82208ad486937b873
> >>
> >> commit e07061c5d5a9b1ec79278da82208ad486937b873
> >> Author: Cedric BAIL <[email protected]>
> >> Date:   Thu Dec 11 06:43:53 2014 +0100
> >>
> >>     elm_win: make it possible to specify alpha window in the theme
> >> directly.
> >> ---
> >>  src/lib/elm_win.c | 78
> >> ++++++++++++++++++++++++++++++++++++-------------------
> >>  1 file changed, 52 insertions(+), 26 deletions(-)
> >>
> >> diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
> >> index 6d19710..9f70de5 100644
> >> --- a/src/lib/elm_win.c
> >> +++ b/src/lib/elm_win.c
> >> @@ -209,6 +209,8 @@ struct _Elm_Win_Data
> >>     Eina_Bool    skip_focus : 1;
> >>     Eina_Bool    floating : 1;
> >>     Eina_Bool    noblank : 1;
> >> +   Eina_Bool    theme_alpha : 1;
> >> +   Eina_Bool    application_alpha : 1;
> >>  };
> >>
> >>  static const char SIG_DELETE_REQUEST[] = "delete,request";
> >> @@ -345,6 +347,38 @@ elm_process_state_get(void)
> >>     return _elm_process_state;
> >>  }
> >>
> >> +static void
> >> +_elm_win_apply_alpha(Eo *obj, Elm_Win_Data *sd)
> >> +{
> >> +   Eina_Bool enabled;
> >> +
> >> +   enabled = sd->theme_alpha | sd->application_alpha;
> >> +   if (sd->img_obj)
> >> +     {
> >> +        evas_object_image_alpha_set(sd->img_obj, enabled);
> >> +        ecore_evas_alpha_set(sd->ee, enabled);
> >> +     }
> >> +   else
> >> +     {
> >> +#ifdef HAVE_ELEMENTARY_X
> >> +        if (sd->x.xwin)
> >> +          {
> >> +             if (enabled)
> >> +               {
> >> +                  if (!ecore_x_screen_is_composited(0))
> >> +                    elm_win_shaped_set(obj, enabled);
> >> +                  else
> >> +                    TRAP(sd, alpha_set, enabled);
> >> +               }
> >> +             else
> >> +               TRAP(sd, alpha_set, enabled);
> >> +             _elm_win_xwin_update(sd);
> >> +          }
> >> +        else
> >> +#endif
> >> +          TRAP(sd, alpha_set, enabled);
> >> +     }
> >> +}
> >>
> >>  static void
> >>  _elm_win_state_eval(void *data EINA_UNUSED)
> >> @@ -591,7 +625,8 @@ _shot_do(Elm_Win_Data *sd)
> >>     flags = _shot_flags_get(sd);
> >>     ee = ecore_evas_buffer_new(1, 1);
> >>     o = evas_object_image_add(ecore_evas_get(ee));
> >> -   evas_object_image_alpha_set(o, ecore_evas_alpha_get(sd->ee));
> >> +   evas_object_image_alpha_set(o,
> >> +                               sd->theme_alpha |
> sd->application_alpha);
> >>     evas_object_image_size_set(o, w, h);
> >>     evas_object_image_data_set(o, pixels);
> >>     if (!evas_object_image_save(o, file, key, flags))
> >> @@ -3516,6 +3551,20 @@ _elm_win_constructor(Eo *obj, Elm_Win_Data *sd,
> >> const char *name, Elm_Win_Type t
> >>          eo_do(obj,
> >> eo_event_callback_call(ELM_INTERFACE_ATSPI_WINDOW_EVENT_WINDOW_CREATED,
> >> NULL));
> >>       }
> >>
> >>
> > Here,
> >
> >
> >> +   if (edje_object_data_get(sd->layout, "alpha"))
> >> +     {
> >> +        const char *s = edje_object_data_get(sd->layout, "alpha");
> >> +        if (s)
> >> +          {
> >>
> >
> > 2. This duplicated calls look intended.
> > Does this really help?
>
>
Hmm


> It simplify the code logic and reduce the need to use a long live
> variable. The performance impact being nul due to the use of a hash on
> edje side.
>

OK, I was just curious because this code looks like alien comparing with
other edje_object_data_get() usage.

Thanks for the clear explanation.

Daniel Juyung Seo (SeoZ)


>
> >> +             if (!strcmp(s, "1") ||
> >> +                 !strcmp(s, "true"))
> >> +               {
> >> +                  sd->application_alpha = 1;
> >> +                  _elm_win_apply_alpha(obj, sd);
> >> +               }
> >> +          }
> >> +     }
> >> +
> >>     evas_object_show(sd->layout);
> >>  }
> >>
> >> @@ -3773,31 +3822,8 @@ _elm_win_shaped_get(Eo *obj EINA_UNUSED,
> >> Elm_Win_Data *sd)
> >>  EOLIAN static void
> >>  _elm_win_alpha_set(Eo *obj, Elm_Win_Data *sd, Eina_Bool enabled)
> >>  {
> >> -   if (sd->img_obj)
> >> -     {
> >> -        evas_object_image_alpha_set(sd->img_obj, enabled);
> >> -        ecore_evas_alpha_set(sd->ee, enabled);
> >> -     }
> >> -   else
> >> -     {
> >> -#ifdef HAVE_ELEMENTARY_X
> >> -        if (sd->x.xwin)
> >> -          {
> >> -             if (enabled)
> >> -               {
> >> -                  if (!ecore_x_screen_is_composited(0))
> >> -                    elm_win_shaped_set(obj, enabled);
> >> -                  else
> >> -                    TRAP(sd, alpha_set, enabled);
> >> -               }
> >> -             else
> >> -               TRAP(sd, alpha_set, enabled);
> >> -             _elm_win_xwin_update(sd);
> >> -          }
> >> -        else
> >> -#endif
> >> -          TRAP(sd, alpha_set, enabled);
> >> -     }
> >> +   sd->application_alpha = enabled;
> >> +   _elm_win_apply_alpha(obj, sd);
> >>  }
> >>
> >>  EOLIAN static Eina_Bool
> >>
> >> --
> >>
> >>
> > Thanks.
> >
> > Daniel Juyung Seo (SeoZ)
> >
> ------------------------------------------------------------------------------
> > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> > from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> > with Interactivity, Sharing, Native Excel Exports, App Integration & more
> > Get technology previously reserved for billion-dollar corporations, FREE
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> > _______________________________________________
> > enlightenment-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
>
>
>
> --
> Cedric BAIL
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to