fix line draw bug - add event pass through flag for objects
SVN revision: 3219
This commit is contained in:
parent
3a0a2fe1fa
commit
eb7ec35dbc
|
@ -152,6 +152,8 @@ struct _Evas_Object_Any
|
||||||
|
|
||||||
int delete_me;
|
int delete_me;
|
||||||
|
|
||||||
|
int pass_events;
|
||||||
|
|
||||||
void (*object_free) (Evas_Object _o);
|
void (*object_free) (Evas_Object _o);
|
||||||
void (*object_renderer_data_free) (Evas _e, Evas_Object _o);
|
void (*object_renderer_data_free) (Evas _e, Evas_Object _o);
|
||||||
|
|
||||||
|
@ -270,6 +272,7 @@ void evas_set_gradient(Evas e, Evas_Object o, Evas_Gradient grad);
|
||||||
void evas_set_angle(Evas e, Evas_Object o, double angle);
|
void evas_set_angle(Evas e, Evas_Object o, double angle);
|
||||||
void evas_set_zoom_scale(Evas e, Evas_Object o, int scale);
|
void evas_set_zoom_scale(Evas e, Evas_Object o, int scale);
|
||||||
void evas_set_line_xy(Evas e, Evas_Object o, double x1, double y1, double x2, double y2);
|
void evas_set_line_xy(Evas e, Evas_Object o, double x1, double y1, double x2, double y2);
|
||||||
|
void evas_set_pass_events(Evas e, Evas_Object o, int pass_events);
|
||||||
|
|
||||||
/* cache settings for performance */
|
/* cache settings for performance */
|
||||||
void evas_set_font_cache(Evas e, int size);
|
void evas_set_font_cache(Evas e, int size);
|
||||||
|
|
|
@ -32,7 +32,7 @@ _evas_highest_object_at_point(Evas e, int x, int y)
|
||||||
Evas_Object ob;
|
Evas_Object ob;
|
||||||
|
|
||||||
ob = ll->data;
|
ob = ll->data;
|
||||||
if (ob->current.visible)
|
if ((ob->current.visible) && (!ob->pass_events))
|
||||||
{
|
{
|
||||||
if (_evas_point_in_object(e, ob, x, y))
|
if (_evas_point_in_object(e, ob, x, y))
|
||||||
o = ob;
|
o = ob;
|
||||||
|
@ -58,7 +58,7 @@ _evas_objects_at_point(Evas e, int x, int y)
|
||||||
Evas_Object ob;
|
Evas_Object ob;
|
||||||
|
|
||||||
ob = ll->data;
|
ob = ll->data;
|
||||||
if (ob->current.visible)
|
if ((ob->current.visible) && (!ob->pass_events))
|
||||||
{
|
{
|
||||||
if (_evas_point_in_object(e, ll->data, x, y))
|
if (_evas_point_in_object(e, ll->data, x, y))
|
||||||
objs = evas_list_prepend(objs, ll->data);
|
objs = evas_list_prepend(objs, ll->data);
|
||||||
|
|
|
@ -416,6 +416,7 @@ void __evas_imlib_line_draw(Display *disp, Window win,
|
||||||
else x = x2;
|
else x = x2;
|
||||||
if (y1 < y2) y = y1;
|
if (y1 < y2) y = y1;
|
||||||
else y = y2;
|
else y = y2;
|
||||||
|
w++; h++;
|
||||||
for(l = drawable_list; l; l = l->next)
|
for(l = drawable_list; l; l = l->next)
|
||||||
{
|
{
|
||||||
Evas_Imlib_Drawable *dr;
|
Evas_Imlib_Drawable *dr;
|
||||||
|
|
|
@ -138,6 +138,12 @@ evas_set_zoom_scale(Evas e, Evas_Object o, int scale)
|
||||||
e->changed = 1;
|
e->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evas_set_pass_events(Evas e, Evas_Object o, int pass_events)
|
||||||
|
{
|
||||||
|
o->pass_events = 1;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evas_set_font_cache(Evas e, int size)
|
evas_set_font_cache(Evas e, int size)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue