forked from enlightenment/efl
test program handles color alpha blended mouse pointer a little better now :)
SVN revision: 3590
This commit is contained in:
parent
b6c640a556
commit
741da1d72e
|
@ -48,6 +48,7 @@ evas_new_all(Display *display, Window parent_window,
|
||||||
evas_set_output_viewport(e, 0, 0, w, h);
|
evas_set_output_viewport(e, 0, 0, w, h);
|
||||||
evas_set_font_cache(e, font_cache);
|
evas_set_font_cache(e, font_cache);
|
||||||
evas_set_image_cache(e, image_cache);
|
evas_set_image_cache(e, image_cache);
|
||||||
|
evas_event_leave(e);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,8 @@ setup(void)
|
||||||
win_control = evas_get_window(evas_control);
|
win_control = evas_get_window(evas_control);
|
||||||
|
|
||||||
XSelectInput(display, win_control, ButtonPressMask |
|
XSelectInput(display, win_control, ButtonPressMask |
|
||||||
ButtonReleaseMask | PointerMotionMask | ExposureMask);
|
ButtonReleaseMask | PointerMotionMask | ExposureMask |
|
||||||
|
EnterWindowMask | LeaveWindowMask);
|
||||||
|
|
||||||
XMapWindow(display, win_control);
|
XMapWindow(display, win_control);
|
||||||
XMapWindow(display, win_base);
|
XMapWindow(display, win_base);
|
||||||
|
@ -202,7 +203,6 @@ setup_controls(void)
|
||||||
evas_set_pass_events(e, o, 1);
|
evas_set_pass_events(e, o, 1);
|
||||||
evas_set_layer(e, o, 1000);
|
evas_set_layer(e, o, 1000);
|
||||||
evas_object_set_name(e, o, "pointer");
|
evas_object_set_name(e, o, "pointer");
|
||||||
evas_show(e, o);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -217,15 +217,14 @@ setup_view(Evas_Render_Method method)
|
||||||
e = evas_new_all(display, win_base, 128, 0, 1024 - 128, 768,
|
e = evas_new_all(display, win_base, 128, 0, 1024 - 128, 768,
|
||||||
method, 216, 1 * 1024 * 1024, 8 * 1024 * 1024,
|
method, 216, 1 * 1024 * 1024, 8 * 1024 * 1024,
|
||||||
FNTDIR);
|
FNTDIR);
|
||||||
/*
|
|
||||||
if (method == RENDER_METHOD_BASIC_HARDWARE)
|
if (method == RENDER_METHOD_BASIC_HARDWARE)
|
||||||
evas_set_scale_smoothness(e, 0);
|
evas_set_scale_smoothness(e, 0);
|
||||||
else
|
else
|
||||||
*/
|
|
||||||
evas_set_scale_smoothness(e, 1);
|
evas_set_scale_smoothness(e, 1);
|
||||||
win_view = evas_get_window(e);
|
win_view = evas_get_window(e);
|
||||||
XSelectInput(display, win_view, ButtonPressMask |
|
XSelectInput(display, win_view, ButtonPressMask |
|
||||||
ButtonReleaseMask | PointerMotionMask | ExposureMask);
|
ButtonReleaseMask | PointerMotionMask | ExposureMask |
|
||||||
|
EnterWindowMask | LeaveWindowMask);
|
||||||
XMapWindow(display, win_view);
|
XMapWindow(display, win_view);
|
||||||
if (evas_view) evas_free(evas_view);
|
if (evas_view) evas_free(evas_view);
|
||||||
evas_view = e;
|
evas_view = e;
|
||||||
|
@ -299,7 +298,6 @@ setup_view(Evas_Render_Method method)
|
||||||
evas_set_pass_events(e, o, 1);
|
evas_set_pass_events(e, o, 1);
|
||||||
evas_set_layer(e, o, 1000);
|
evas_set_layer(e, o, 1000);
|
||||||
evas_object_set_name(e, o, "pointer");
|
evas_object_set_name(e, o, "pointer");
|
||||||
evas_show(e, o);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -531,6 +529,57 @@ handle_events(void)
|
||||||
case Expose:
|
case Expose:
|
||||||
evas_update_rect(e, ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height);
|
evas_update_rect(e, ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height);
|
||||||
break;
|
break;
|
||||||
|
case EnterNotify:
|
||||||
|
if (e == evas_view)
|
||||||
|
{
|
||||||
|
Evas_Object o;
|
||||||
|
|
||||||
|
o = evas_object_get_named(evas_view, "pointer");
|
||||||
|
if (o) evas_show(evas_view, o);
|
||||||
|
}
|
||||||
|
if (e == evas_control)
|
||||||
|
{
|
||||||
|
Evas_Object o;
|
||||||
|
|
||||||
|
o = evas_object_get_named(evas_control, "pointer");
|
||||||
|
if (o) evas_show(evas_control, o);
|
||||||
|
}
|
||||||
|
if (e == evas_view)
|
||||||
|
evas_event_enter(evas_view);
|
||||||
|
else if (e == evas_control)
|
||||||
|
evas_event_enter(evas_control);
|
||||||
|
break;
|
||||||
|
case LeaveNotify:
|
||||||
|
{
|
||||||
|
XEvent ev_next;
|
||||||
|
|
||||||
|
if (XCheckTypedEvent(display, EnterNotify, &ev_next))
|
||||||
|
{
|
||||||
|
XPutBackEvent(display, &ev_next);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (e == evas_view)
|
||||||
|
{
|
||||||
|
Evas_Object o;
|
||||||
|
|
||||||
|
o = evas_object_get_named(evas_view, "pointer");
|
||||||
|
if (o) evas_hide(evas_view, o);
|
||||||
|
}
|
||||||
|
if (e == evas_control)
|
||||||
|
{
|
||||||
|
Evas_Object o;
|
||||||
|
|
||||||
|
o = evas_object_get_named(evas_control, "pointer");
|
||||||
|
if (o) evas_hide(evas_control, o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (e == evas_view)
|
||||||
|
evas_event_leave(evas_view);
|
||||||
|
else if (e == evas_control)
|
||||||
|
evas_event_leave(evas_control);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue