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
