forked from enlightenment/enlightenment
fix evas error debug where passing in null objects is bad.
SVN revision: 41788
This commit is contained in:
parent
70c0a52394
commit
072f4b664f
|
@ -1680,7 +1680,7 @@ _e_menu_items_layout_update(E_Menu *m)
|
|||
static void
|
||||
_e_menu_item_unrealize(E_Menu_Item *mi)
|
||||
{
|
||||
e_box_freeze(mi->container_object);
|
||||
if (mi->container_object) e_box_freeze(mi->container_object);
|
||||
if (mi->separator_object) evas_object_del(mi->separator_object);
|
||||
mi->separator_object = NULL;
|
||||
if (mi->bg_object) evas_object_del(mi->bg_object);
|
||||
|
|
|
@ -150,6 +150,7 @@ _e_smart_child_resize_hook(void *data, Evas *e, Evas_Object *obj, void *event_in
|
|||
Evas_Coord w, h;
|
||||
|
||||
sd = data;
|
||||
if (!sd->child_obj) return;
|
||||
evas_object_geometry_get(sd->child_obj, NULL, NULL, &w, &h);
|
||||
if ((w != sd->child_w) || (h != sd->child_h))
|
||||
{
|
||||
|
@ -163,7 +164,8 @@ _e_smart_child_resize_hook(void *data, Evas *e, Evas_Object *obj, void *event_in
|
|||
static void
|
||||
_e_smart_reconfigure(E_Smart_Data *sd)
|
||||
{
|
||||
evas_object_move(sd->child_obj, sd->x - sd->px, sd->y - sd->py);
|
||||
if (sd->child_obj)
|
||||
evas_object_move(sd->child_obj, sd->x - sd->px, sd->y - sd->py);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -212,35 +214,40 @@ static void
|
|||
_e_smart_show(Evas_Object *obj)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_show(sd->child_obj);
|
||||
if (sd->child_obj)
|
||||
evas_object_show(sd->child_obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_hide(Evas_Object *obj)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_hide(sd->child_obj);
|
||||
if (sd->child_obj)
|
||||
evas_object_hide(sd->child_obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_color_set(sd->child_obj, r, g, b, a);
|
||||
if (sd->child_obj)
|
||||
evas_object_color_set(sd->child_obj, r, g, b, a);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_clip_set(sd->child_obj, clip);
|
||||
if (sd->child_obj)
|
||||
evas_object_clip_set(sd->child_obj, clip);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_clip_unset(Evas_Object *obj)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_clip_unset(sd->child_obj);
|
||||
if (sd->child_obj)
|
||||
evas_object_clip_unset(sd->child_obj);
|
||||
}
|
||||
|
||||
/* never need to touch this */
|
||||
|
|
|
@ -114,9 +114,12 @@ e_scrollframe_child_set(Evas_Object *obj, Evas_Object *child)
|
|||
API_ENTRY return;
|
||||
if (sd->child_obj)
|
||||
{
|
||||
e_pan_child_set(sd->pan_obj, NULL);
|
||||
evas_object_event_callback_del(sd->child_obj, EVAS_CALLBACK_FREE,
|
||||
_e_smart_child_del_hook);
|
||||
if (sd->pan_obj)
|
||||
{
|
||||
e_pan_child_set(sd->pan_obj, NULL);
|
||||
evas_object_event_callback_del(sd->child_obj, EVAS_CALLBACK_FREE,
|
||||
_e_smart_child_del_hook);
|
||||
}
|
||||
}
|
||||
|
||||
sd->child_obj = child;
|
||||
|
@ -229,6 +232,7 @@ e_scrollframe_child_pos_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
|||
double vx, vy;
|
||||
|
||||
API_ENTRY return;
|
||||
if (!sd->pan_obj) return;
|
||||
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
|
||||
if (mx > 0) vx = (double)x / (double)mx;
|
||||
else vx = 0.0;
|
||||
|
@ -247,7 +251,13 @@ EAPI void
|
|||
e_scrollframe_child_pos_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y)
|
||||
{
|
||||
API_ENTRY return;
|
||||
sd->pan_func.get(sd->pan_obj, x, y);
|
||||
if (sd->pan_obj)
|
||||
sd->pan_func.get(sd->pan_obj, x, y);
|
||||
else
|
||||
{
|
||||
*x = 0;
|
||||
*y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -256,6 +266,7 @@ e_scrollframe_child_region_show(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Ev
|
|||
Evas_Coord mx = 0, my = 0, cw = 0, ch = 0, px = 0, py = 0, nx, ny;
|
||||
|
||||
API_ENTRY return;
|
||||
if (!sd->pan_obj) return;
|
||||
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
|
||||
sd->pan_func.child_size_get(sd->pan_obj, &cw, &ch);
|
||||
sd->pan_func.get(sd->pan_obj, &px, &py);
|
||||
|
@ -406,6 +417,7 @@ _e_smart_pan_changed_hook(void *data, Evas_Object *obj __UNUSED__, void *event_i
|
|||
E_Smart_Data *sd;
|
||||
|
||||
sd = data;
|
||||
if (!sd->pan_obj) return;
|
||||
sd->pan_func.child_size_get(sd->pan_obj, &w, &h);
|
||||
if ((w != sd->child.w) || (h != sd->child.h))
|
||||
{
|
||||
|
@ -422,6 +434,7 @@ _e_smart_pan_pan_changed_hook(void *data, Evas_Object *obj __UNUSED__, void *eve
|
|||
E_Smart_Data *sd;
|
||||
|
||||
sd = data;
|
||||
if (!sd->pan_obj) return;
|
||||
sd->pan_func.get(sd->pan_obj, &x, &y);
|
||||
e_scrollframe_child_pos_set(sd->smart_obj, x, y);
|
||||
}
|
||||
|
@ -655,6 +668,7 @@ _e_smart_event_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSE
|
|||
sd = data;
|
||||
ev = event_info;
|
||||
e_scrollframe_child_pos_get(sd->smart_obj, &x, &y);
|
||||
if (!sd->pan_obj) return;
|
||||
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
|
||||
edje_object_part_geometry_get(sd->edje_obj, "e.swallow.content", NULL, NULL, &vw, &vh);
|
||||
if (!strcmp(ev->keyname, "Left"))
|
||||
|
@ -694,10 +708,12 @@ _e_smart_scrollbar_read(E_Smart_Data *sd)
|
|||
|
||||
edje_object_part_drag_value_get(sd->edje_obj, "e.dragable.vbar", NULL, &vy);
|
||||
edje_object_part_drag_value_get(sd->edje_obj, "e.dragable.hbar", &vx, NULL);
|
||||
if (!sd->pan_obj) return;
|
||||
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
|
||||
x = vx * (double)mx;
|
||||
y = vy * (double)my;
|
||||
sd->pan_func.set(sd->pan_obj, x, y);
|
||||
if (sd->pan_obj)
|
||||
sd->pan_func.set(sd->pan_obj, x, y);
|
||||
if (((e_config->thumbscroll_enable) || (sd->thumbscroll.forced))
|
||||
&& (sd->down.now) && (!sd->down.dragged))
|
||||
sd->down.now = 0;
|
||||
|
@ -713,7 +729,8 @@ _e_smart_scrollbar_reset(E_Smart_Data *sd)
|
|||
edje_object_part_drag_size_set(sd->edje_obj, "e.dragable.vbar", 1.0, 1.0);
|
||||
edje_object_part_drag_size_set(sd->edje_obj, "e.dragable.hbar", 1.0, 1.0);
|
||||
}
|
||||
sd->pan_func.set(sd->pan_obj, 0, 0);
|
||||
if (sd->pan_obj)
|
||||
sd->pan_func.set(sd->pan_obj, 0, 0);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -904,9 +921,12 @@ _e_smart_scrollbar_size_adjust(E_Smart_Data *sd)
|
|||
&vx, NULL);
|
||||
edje_object_part_drag_value_get(sd->edje_obj, "e.dragable.vbar",
|
||||
NULL, &vy);
|
||||
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
|
||||
x = vx * mx;
|
||||
y = vy * my;
|
||||
if (sd->pan_obj)
|
||||
{
|
||||
sd->pan_func.max_get(sd->pan_obj, &mx, &my);
|
||||
x = vx * mx;
|
||||
y = vy * my;
|
||||
}
|
||||
|
||||
edje_object_part_drag_step_set(sd->edje_obj, "e.dragable.hbar",
|
||||
(double)sd->step.x / (double)w, 0.0);
|
||||
|
@ -925,7 +945,8 @@ _e_smart_scrollbar_size_adjust(E_Smart_Data *sd)
|
|||
edje_object_part_drag_page_set(sd->edje_obj, "e.dragable.vbar",
|
||||
0.0, -((double)sd->page.y * ((double)vh / (double)h)) / 100.0);
|
||||
|
||||
sd->pan_func.set(sd->pan_obj, x, y);
|
||||
if (sd->pan_obj)
|
||||
sd->pan_func.set(sd->pan_obj, x, y);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -933,7 +954,8 @@ _e_smart_scrollbar_size_adjust(E_Smart_Data *sd)
|
|||
1.0, 1.0);
|
||||
edje_object_part_drag_size_set(sd->edje_obj, "e.dragable.hbar",
|
||||
1.0, 1.0);
|
||||
sd->pan_func.set(sd->pan_obj, 0, 0);
|
||||
if (sd->pan_obj)
|
||||
sd->pan_func.set(sd->pan_obj, 0, 0);
|
||||
}
|
||||
_e_smart_scrollbar_bar_visibility_adjust(sd);
|
||||
}
|
||||
|
@ -1013,7 +1035,10 @@ _e_smart_del(Evas_Object *obj)
|
|||
{
|
||||
INTERNAL_ENTRY;
|
||||
e_scrollframe_child_set(obj, NULL);
|
||||
if (!sd->extern_pan) evas_object_del(sd->pan_obj);
|
||||
if (sd->pan_obj)
|
||||
{
|
||||
if (!sd->extern_pan) evas_object_del(sd->pan_obj);
|
||||
}
|
||||
evas_object_del(sd->edje_obj);
|
||||
evas_object_del(sd->event_obj);
|
||||
if (sd->down.momentum_animator)
|
||||
|
|
|
@ -416,6 +416,7 @@ EAPI void
|
|||
e_widget_change(Evas_Object *obj)
|
||||
{
|
||||
API_ENTRY return;
|
||||
if (!e_widget_parent_get(obj)) return;
|
||||
e_widget_change(e_widget_parent_get(obj));
|
||||
if (sd->on_change_func) sd->on_change_func(sd->on_change_data, obj);
|
||||
}
|
||||
|
@ -532,35 +533,40 @@ static void
|
|||
_e_smart_show(Evas_Object *obj)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_show(sd->resize_obj);
|
||||
if (sd->resize_obj)
|
||||
evas_object_show(sd->resize_obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_hide(Evas_Object *obj)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_hide(sd->resize_obj);
|
||||
if (sd->resize_obj)
|
||||
evas_object_hide(sd->resize_obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_color_set(sd->resize_obj, r, g, b, a);
|
||||
if (sd->resize_obj)
|
||||
evas_object_color_set(sd->resize_obj, r, g, b, a);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_clip_set(sd->resize_obj, clip);
|
||||
if (sd->resize_obj)
|
||||
evas_object_clip_set(sd->resize_obj, clip);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_smart_clip_unset(Evas_Object *obj)
|
||||
{
|
||||
INTERNAL_ENTRY;
|
||||
evas_object_clip_unset(sd->resize_obj);
|
||||
if (sd->resize_obj)
|
||||
evas_object_clip_unset(sd->resize_obj);
|
||||
}
|
||||
|
||||
/* never need to touch this */
|
||||
|
|
Loading…
Reference in New Issue