forked from enlightenment/efl
Formatting.
Reduce potential register usage. No need to always set edje frametime when creating a window (NB: This was getting done for every window) No need to always set edje scale when creating a window (NB: This was getting done for every window) Don't need to get the Widget_Data in changed_size_hints as it's not used. Use EVAS_HINT_EXPAND/FILL SVN revision: 43694
This commit is contained in:
parent
93e8a448ce
commit
f2bc714d81
|
@ -7,8 +7,7 @@ struct _Elm_Win
|
|||
{
|
||||
Ecore_Evas *ee;
|
||||
Evas *evas;
|
||||
Evas_Object *parent;
|
||||
Evas_Object *win_obj;
|
||||
Evas_Object *parent, *win_obj;
|
||||
Eina_List *subobjs;
|
||||
Ecore_X_Window xwin;
|
||||
Ecore_Job *deferred_resize_job;
|
||||
|
@ -17,8 +16,7 @@ struct _Elm_Win
|
|||
Elm_Win_Type type;
|
||||
Elm_Win_Keyboard_Mode kbdmode;
|
||||
Eina_Bool autodel : 1;
|
||||
int *autodel_clear;
|
||||
int rot;
|
||||
int *autodel_clear, rot;
|
||||
};
|
||||
|
||||
static void _elm_win_obj_callback_del(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
|
@ -39,8 +37,8 @@ static void
|
|||
_elm_win_resize(Ecore_Evas *ee)
|
||||
{
|
||||
Evas_Object *obj = ecore_evas_object_associate_get(ee);
|
||||
Elm_Win *win;
|
||||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
Elm_Win *win;
|
||||
win = elm_widget_data_get(obj);
|
||||
if (!win) return;
|
||||
if (win->deferred_resize_job) ecore_job_del(win->deferred_resize_job);
|
||||
|
@ -51,10 +49,11 @@ static void
|
|||
_elm_win_focus_in(Ecore_Evas *ee)
|
||||
{
|
||||
Evas_Object *obj = ecore_evas_object_associate_get(ee);
|
||||
Elm_Win *win;
|
||||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
Elm_Win *win;
|
||||
win = elm_widget_data_get(obj);
|
||||
if (!win) return;
|
||||
/*NB: Why two different "focus signals" here ??? */
|
||||
evas_object_smart_callback_call(win->win_obj, "focus-in", NULL); // FIXME: remove me
|
||||
evas_object_smart_callback_call(win->win_obj, "focus,in", NULL);
|
||||
}
|
||||
|
@ -63,8 +62,8 @@ static void
|
|||
_elm_win_focus_out(Ecore_Evas *ee)
|
||||
{
|
||||
Evas_Object *obj = ecore_evas_object_associate_get(ee);
|
||||
Elm_Win *win;
|
||||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
Elm_Win *win;
|
||||
win = elm_widget_data_get(obj);
|
||||
if (!win) return;
|
||||
evas_object_smart_callback_call(win->win_obj, "focus-out", NULL); // FIXME: remove me
|
||||
|
@ -102,6 +101,7 @@ _elm_win_obj_callback_del(void *data, Evas *e, Evas_Object *obj, void *event_inf
|
|||
}
|
||||
evas_image_cache_flush(win->evas);
|
||||
evas_font_cache_flush(win->evas);
|
||||
// FIXME: Why are we flushing edje on every window destroy ??
|
||||
edje_file_cache_flush();
|
||||
edje_collection_cache_flush();
|
||||
// FIXME: we are in the del handler for the object and delete the canvas
|
||||
|
@ -125,8 +125,8 @@ static void
|
|||
_elm_win_delete_request(Ecore_Evas *ee)
|
||||
{
|
||||
Evas_Object *obj = ecore_evas_object_associate_get(ee);
|
||||
Elm_Win *win;
|
||||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
Elm_Win *win;
|
||||
win = elm_widget_data_get(obj);
|
||||
if (!win) return;
|
||||
int autodel = win->autodel;
|
||||
|
@ -299,7 +299,8 @@ _elm_win_subobj_callback_changed_size_hints(void *data, Evas *e, Evas_Object *ob
|
|||
void
|
||||
_elm_win_shutdown(void)
|
||||
{
|
||||
while (_elm_win_list) evas_object_del(_elm_win_list->data);
|
||||
while (_elm_win_list)
|
||||
evas_object_del(_elm_win_list->data);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -307,6 +308,7 @@ _elm_win_rescale(void)
|
|||
{
|
||||
const Eina_List *l;
|
||||
Evas_Object *obj;
|
||||
|
||||
EINA_LIST_FOREACH(_elm_win_list, l, obj)
|
||||
elm_widget_theme(obj);
|
||||
}
|
||||
|
@ -352,7 +354,7 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
|||
return NULL;
|
||||
}
|
||||
_elm_win_xwindow_get(win);
|
||||
if (_elm_config->bgpixmap && !_elm_config->compositing)
|
||||
if ((_elm_config->bgpixmap) && (!_elm_config->compositing))
|
||||
ecore_evas_avoid_damage_set(win->ee, ECORE_EVAS_AVOID_DAMAGE_EXPOSE);
|
||||
// bg pixmap done by x - has other issues like can be redrawn by x before it
|
||||
// is filled/ready by app
|
||||
|
@ -385,8 +387,8 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
|||
ecore_evas_callback_resize_set(win->ee, _elm_win_resize);
|
||||
ecore_evas_callback_focus_in_set(win->ee, _elm_win_focus_in);
|
||||
ecore_evas_callback_focus_out_set(win->ee, _elm_win_focus_out);
|
||||
evas_image_cache_set(win->evas, _elm_config->image_cache * 1024);
|
||||
evas_font_cache_set(win->evas, _elm_config->font_cache * 1024);
|
||||
evas_image_cache_set(win->evas, (_elm_config->image_cache * 1024));
|
||||
evas_font_cache_set(win->evas, (_elm_config->font_cache * 1024));
|
||||
EINA_LIST_FOREACH(_elm_config->font_dirs, l, fontpath)
|
||||
evas_font_path_append(win->evas, fontpath);
|
||||
if (_elm_config->font_hinting == 0)
|
||||
|
@ -395,8 +397,6 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
|||
evas_font_hinting_set(win->evas, EVAS_FONT_HINTING_AUTO);
|
||||
else if (_elm_config->font_hinting == 2)
|
||||
evas_font_hinting_set(win->evas, EVAS_FONT_HINTING_BYTECODE);
|
||||
edje_frametime_set(1.0 / 60.0);
|
||||
edje_scale_set(_elm_config->scale);
|
||||
|
||||
_elm_win_xwin_update(win);
|
||||
|
||||
|
@ -429,8 +429,11 @@ elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj)
|
|||
if (!win) return;
|
||||
win->subobjs = eina_list_append(win->subobjs, subobj);
|
||||
elm_widget_sub_object_add(obj, subobj);
|
||||
evas_object_event_callback_add(subobj, EVAS_CALLBACK_DEL, _elm_win_subobj_callback_del, obj);
|
||||
evas_object_event_callback_add(subobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _elm_win_subobj_callback_changed_size_hints, obj);
|
||||
evas_object_event_callback_add(subobj, EVAS_CALLBACK_DEL,
|
||||
_elm_win_subobj_callback_del, obj);
|
||||
evas_object_event_callback_add(subobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_elm_win_subobj_callback_changed_size_hints,
|
||||
obj);
|
||||
ecore_evas_geometry_get(win->ee, NULL, NULL, &w, &h);
|
||||
evas_object_move(subobj, 0, 0);
|
||||
evas_object_resize(subobj, w, h);
|
||||
|
@ -444,8 +447,12 @@ elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj)
|
|||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
win = elm_widget_data_get(obj);
|
||||
if (!win) return;
|
||||
evas_object_event_callback_del_full(subobj, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _elm_win_subobj_callback_changed_size_hints, obj);
|
||||
evas_object_event_callback_del_full(subobj, EVAS_CALLBACK_DEL, _elm_win_subobj_callback_del, obj);
|
||||
evas_object_event_callback_del_full(subobj,
|
||||
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_elm_win_subobj_callback_changed_size_hints,
|
||||
obj);
|
||||
evas_object_event_callback_del_full(subobj, EVAS_CALLBACK_DEL,
|
||||
_elm_win_subobj_callback_del, obj);
|
||||
win->subobjs = eina_list_remove(win->subobjs, subobj);
|
||||
elm_widget_sub_object_del(obj, subobj);
|
||||
_elm_win_eval_subobjs(obj);
|
||||
|
@ -816,18 +823,17 @@ static void
|
|||
_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
|
||||
Evas_Coord minw = -1, minh = -1;
|
||||
|
||||
evas_object_size_hint_min_get(wd->content, &minw, &minh);
|
||||
edje_object_size_min_calc(wd->frm, &minw, &minh);
|
||||
evas_object_size_hint_min_set(obj, minw, minh);
|
||||
evas_object_size_hint_max_set(obj, maxw, maxh);
|
||||
evas_object_size_hint_max_set(obj, -1, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
_changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
_sizing_eval(data);
|
||||
}
|
||||
|
||||
|
@ -848,18 +854,20 @@ _sub_del(void *data, Evas_Object *obj, void *event_info)
|
|||
EAPI Evas_Object *
|
||||
elm_win_inwin_add(Evas_Object *obj)
|
||||
{
|
||||
Elm_Win *win;
|
||||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
|
||||
Evas_Object *obj2;
|
||||
Widget_Data *wd;
|
||||
if (strcmp(elm_widget_type_get(obj), "win")) return;
|
||||
Elm_Win *win;
|
||||
|
||||
win = elm_widget_data_get(obj);
|
||||
if (!win) return NULL;
|
||||
wd = ELM_NEW(Widget_Data);
|
||||
obj2 = elm_widget_add(win->evas);
|
||||
elm_widget_type_set(obj2, "inwin");
|
||||
elm_widget_sub_object_add(obj, obj2);
|
||||
evas_object_size_hint_weight_set(obj2, 1.0, 1.0);
|
||||
evas_object_size_hint_align_set(obj2, -1.0, -1.0);
|
||||
evas_object_size_hint_weight_set(obj2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(obj2, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_win_resize_object_add(obj, obj2);
|
||||
|
||||
elm_widget_data_set(obj2, wd);
|
||||
|
@ -897,7 +905,7 @@ EAPI void
|
|||
elm_win_inwin_content_set(Evas_Object *obj, Evas_Object *content)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if ((wd->content != content) && (wd->content))
|
||||
if ((wd->content) && (wd->content != content))
|
||||
elm_widget_sub_object_del(obj, wd->content);
|
||||
wd->content = content;
|
||||
if (content)
|
||||
|
@ -919,6 +927,5 @@ elm_win_xwindow_get(const Evas_Object *obj)
|
|||
|
||||
ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
|
||||
if (ee) xwin = (Ecore_X_Window)ecore_evas_window_get(ee);
|
||||
|
||||
return xwin;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue