forked from enlightenment/efl
win: Move main menu to the border edje group
The main menu can now be contained inside the CSD border rather than inside the win edje group.
This commit is contained in:
parent
b2dbf9d9dd
commit
cb172de3da
|
@ -837,11 +837,44 @@ group { name: "elm/border/base/default";
|
|||
/* visible: 0; */
|
||||
/* } */
|
||||
}
|
||||
/* main menu */
|
||||
rect { "menu_bg";
|
||||
desc { "default";
|
||||
color: 64 64 64 255; // FIXME color_class
|
||||
align: 0.5 0.0;
|
||||
rel.to: "elm.swallow.menu";
|
||||
}
|
||||
}
|
||||
swallow { "elm.swallow.menu";
|
||||
required: 1; // since 1.19
|
||||
desc { "default";
|
||||
rel.to: "top";
|
||||
rel1.relative: 0.0 1.0;
|
||||
rel1.offset: 0 -1;
|
||||
visible: 0;
|
||||
align: 0.5 0.0;
|
||||
fixed: 1 1;
|
||||
}
|
||||
desc { "visible"; inherit: "default";
|
||||
visible: 1;
|
||||
fixed: 0 1;
|
||||
}
|
||||
}
|
||||
/* covers the entire client contents, including the main menu */
|
||||
spacer { "elm.spacer.content";
|
||||
required: 1; // since 1.19
|
||||
desc {
|
||||
rel1.to: "top";
|
||||
rel1.relative: 0.0 1.0;
|
||||
rel2.to: "bottom";
|
||||
rel2.relative: 1.0 0.0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.client"; type: SWALLOW;
|
||||
clip_to: "client_clip";
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 0.0 1.0;
|
||||
rel1.to: "top";
|
||||
rel1.to: "elm.swallow.menu";
|
||||
rel2.relative: 1.0 0.0;
|
||||
rel2.to: "bottom";
|
||||
}
|
||||
|
@ -1498,6 +1531,16 @@ group { name: "elm/border/base/default";
|
|||
target: "elm.event.resize.b";
|
||||
target: "elm.event.resize.br";
|
||||
}
|
||||
program { name: "show_menu";
|
||||
signal: "elm,action,show_menu"; source: "elm";
|
||||
action: STATE_SET "visible" 0.0;
|
||||
target: "elm.swallow.menu";
|
||||
}
|
||||
program { name: "hide_menu";
|
||||
signal: "elm,action,hide"; source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "elm.swallow.menu";
|
||||
}
|
||||
program {
|
||||
signal: "mouse,down,*"; source: "elm.event.close";
|
||||
action: STATE_SET "selected" 0.0;
|
||||
|
|
|
@ -1417,9 +1417,16 @@ _elm_win_frame_obj_update(Efl_Ui_Win_Data *sd)
|
|||
|
||||
if (!sd->frame_obj) return;
|
||||
evas_object_geometry_get(sd->frame_obj, &fx, &fy, &fw, &fh);
|
||||
evas_object_geometry_get(sd->edje, &ox, &oy, &ow, &oh);
|
||||
|
||||
evas_output_framespace_set(sd->evas, (ox - fx), (oy - fy), (fw - ow), (fh - oh));
|
||||
if (edje_object_part_exists(sd->frame_obj, "elm.spacer.content"))
|
||||
{
|
||||
edje_object_part_geometry_get(sd->frame_obj, "elm.spacer.content", &ox, &oy, &ow, &oh);
|
||||
evas_output_framespace_set(sd->evas, ox, oy, fw - ow, fh - oh);
|
||||
}
|
||||
else
|
||||
{
|
||||
evas_object_geometry_get(sd->edje, &ox, &oy, &ow, &oh);
|
||||
evas_output_framespace_set(sd->evas, (ox - fx), (oy - fy), (fw - ow), (fh - oh));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -5504,23 +5511,35 @@ _efl_ui_win_fullscreen_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
|
|||
return sd->fullscreen;
|
||||
}
|
||||
|
||||
static inline Eo *
|
||||
_main_menu_swallow_get(Efl_Ui_Win_Data *sd)
|
||||
{
|
||||
if (sd->frame_obj)
|
||||
{
|
||||
if (edje_object_part_exists(sd->frame_obj, "elm.swallow.menu"))
|
||||
return sd->frame_obj;
|
||||
}
|
||||
return sd->edje;
|
||||
}
|
||||
|
||||
static void
|
||||
_dbus_menu_set(Eina_Bool dbus_connect, void *data)
|
||||
{
|
||||
ELM_WIN_DATA_GET_OR_RETURN(data, sd);
|
||||
Eo *swallow = _main_menu_swallow_get(sd);
|
||||
|
||||
if (dbus_connect)
|
||||
{
|
||||
DBG("Setting menu to D-Bus");
|
||||
edje_object_part_unswallow(sd->edje, sd->main_menu);
|
||||
edje_object_signal_emit(sd->edje, "elm,action,hide_menu", "elm");
|
||||
edje_object_part_unswallow(swallow, sd->main_menu);
|
||||
edje_object_signal_emit(swallow, "elm,action,hide_menu", "elm");
|
||||
_elm_menu_menu_bar_hide(sd->main_menu);
|
||||
}
|
||||
else
|
||||
{
|
||||
DBG("Setting menu to local mode");
|
||||
edje_object_part_swallow(sd->edje, "elm.swallow.menu", sd->main_menu);
|
||||
edje_object_signal_emit(sd->edje, "elm,action,show_menu", "elm");
|
||||
edje_object_part_swallow(swallow, "elm.swallow.menu", sd->main_menu);
|
||||
edje_object_signal_emit(swallow, "elm,action,show_menu", "elm");
|
||||
evas_object_show(sd->main_menu);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -782,8 +782,7 @@ EAPI Evas_Object *
|
|||
elm_menu_add(Evas_Object *parent)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
|
||||
Evas_Object *obj = efl_add(MY_CLASS, parent);
|
||||
return obj;
|
||||
return efl_add(MY_CLASS, parent);
|
||||
}
|
||||
|
||||
EOLIAN static Eo *
|
||||
|
|
Loading…
Reference in New Issue