forked from enlightenment/efl
win: Disable CSD shadow if alpha and borderless
If the content has alpha, we can't ensure that the square shadow will look good. So, hide it.
This commit is contained in:
parent
9fa608d631
commit
61c8d7f46e
|
@ -4135,14 +4135,15 @@ _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *style)
|
||||||
static void
|
static void
|
||||||
_elm_win_frame_style_update(Efl_Ui_Win_Data *sd, Eina_Bool force_emit, Eina_Bool calc)
|
_elm_win_frame_style_update(Efl_Ui_Win_Data *sd, Eina_Bool force_emit, Eina_Bool calc)
|
||||||
{
|
{
|
||||||
Eina_Bool borderless, maximized, shadow, focus, bg_solid, menu, unresizable;
|
Eina_Bool borderless, maximized, shadow, focus, bg_solid, menu, unresizable,
|
||||||
|
alpha;
|
||||||
Eina_Bool changed = EINA_FALSE;
|
Eina_Bool changed = EINA_FALSE;
|
||||||
|
|
||||||
if (!sd->frame_obj)
|
if (!sd->frame_obj)
|
||||||
{
|
{
|
||||||
if (sd->type == ELM_WIN_FAKE) return;
|
if (EINA_LIKELY(sd->type == ELM_WIN_FAKE)) return;
|
||||||
CRI("no frame object!");
|
CRI("Window has no frame object!");
|
||||||
abort(); // FIXME remove this
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_elm_win_need_frame_adjust(sd, ecore_evas_engine_name_get(sd->ee));
|
_elm_win_need_frame_adjust(sd, ecore_evas_engine_name_get(sd->ee));
|
||||||
|
@ -4155,9 +4156,11 @@ _elm_win_frame_style_update(Efl_Ui_Win_Data *sd, Eina_Bool force_emit, Eina_Bool
|
||||||
sd->csd.need_menu = EINA_FALSE;
|
sd->csd.need_menu = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
alpha = sd->application_alpha || sd->theme_alpha;
|
||||||
borderless = sd->csd.need_borderless || (!sd->csd.need) || sd->fullscreen;
|
borderless = sd->csd.need_borderless || (!sd->csd.need) || sd->fullscreen;
|
||||||
maximized = sd->maximized;
|
maximized = sd->maximized;
|
||||||
shadow = sd->csd.need_shadow && (!sd->fullscreen) && (!sd->maximized);
|
shadow = sd->csd.need_shadow && (!sd->fullscreen) && (!sd->maximized);
|
||||||
|
if (alpha && borderless) shadow = 0;
|
||||||
focus = ecore_evas_focus_get(sd->ee);
|
focus = ecore_evas_focus_get(sd->ee);
|
||||||
bg_solid = sd->csd.need_bg_solid;
|
bg_solid = sd->csd.need_bg_solid;
|
||||||
unresizable = sd->csd.need_unresizable;
|
unresizable = sd->csd.need_unresizable;
|
||||||
|
@ -5268,6 +5271,7 @@ _efl_ui_win_alpha_set(Eo *obj, Efl_Ui_Win_Data *sd, Eina_Bool enabled)
|
||||||
{
|
{
|
||||||
sd->application_alpha = enabled;
|
sd->application_alpha = enabled;
|
||||||
_elm_win_apply_alpha(obj, sd);
|
_elm_win_apply_alpha(obj, sd);
|
||||||
|
_elm_win_frame_style_update(sd, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
|
|
Loading…
Reference in New Issue