one way or the other i'm forced to add timestamps to events - i cant avoid it

anymore. sorry guys. really no way around it. :(


SVN revision: 15891
This commit is contained in:
Carsten Haitzler 2005-07-25 09:55:47 +00:00
parent 7e44117a0c
commit 744dfc58ff
15 changed files with 61 additions and 57 deletions

View File

@ -614,7 +614,8 @@ ACT_FN_GO(menu_show)
ecore_x_pointer_xy_get(zone->container->win, &x, &y);
e_menu_post_deactivate_callback_set(m, _e_actions_cb_menu_end, NULL);
e_menu_activate_mouse(m, zone, x, y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN,
ecore_x_current_time_get());
}
}
}
@ -649,7 +650,7 @@ ACT_FN_GO_MOUSE(menu_show)
y -= zone->container->y;
e_menu_post_deactivate_callback_set(m, _e_actions_cb_menu_end, NULL);
e_menu_activate_mouse(m, zone, x, y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->time);
e_util_container_fake_mouse_up_all_later(zone->container);
}
}

View File

@ -77,7 +77,7 @@ static void _e_border_resize_handle(E_Border *bd);
static int _e_border_shade_animator(void *data);
static void _e_border_cb_border_menu_end(void *data, E_Menu *m);
static void _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key);
static void _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key, Ecore_X_Time timestamp);
static void _e_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_iconify(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_kill(void *data, E_Menu *m, E_Menu_Item *mi);
@ -1688,14 +1688,15 @@ e_border_act_menu_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev, int k
{
_e_border_menu_show(bd,
bd->x + ev->x - bd->zone->container->x,
bd->y + ev->y - bd->zone->container->y, key);
bd->y + ev->y - bd->zone->container->y, key,
ev->time);
}
else
{
int x, y;
ecore_x_pointer_xy_get(bd->zone->container->win, &x, &y);
_e_border_menu_show(bd, x, y, key);
_e_border_menu_show(bd, x, y, key, 0);
}
}
@ -3172,7 +3173,7 @@ _e_border_cb_signal_action(void *data, Evas_Object *obj, const char *emission, c
Evas_Coord x, y;
evas_pointer_canvas_xy_get(bd->bg_evas , &x, &y);
_e_border_menu_show(bd, x + bd->x, y + bd->y, 0);
_e_border_menu_show(bd, x + bd->x, y + bd->y, 0, 0);
}
else if (!strcmp(source, "raise"))
{
@ -3255,8 +3256,8 @@ _e_border_cb_mouse_in(void *data, int type, void *event)
#endif
bd->mouse.current.mx = ev->root.x;
bd->mouse.current.my = ev->root.y;
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, NULL);
evas_event_feed_mouse_in(bd->bg_evas, NULL);
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, ev->time, NULL);
evas_event_feed_mouse_in(bd->bg_evas, ev->time, NULL);
return 1;
}
@ -3325,8 +3326,8 @@ _e_border_cb_mouse_out(void *data, int type, void *event)
#endif
bd->mouse.current.mx = ev->root.x;
bd->mouse.current.my = ev->root.y;
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, NULL);
evas_event_feed_mouse_out(bd->bg_evas, NULL);
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, ev->time, NULL);
evas_event_feed_mouse_out(bd->bg_evas, ev->time, NULL);
return 1;
}
@ -3417,8 +3418,8 @@ _e_border_cb_mouse_down(void *data, int type, void *event)
if (ev->double_click) flags |= EVAS_BUTTON_DOUBLE_CLICK;
if (ev->triple_click) flags |= EVAS_BUTTON_TRIPLE_CLICK;
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, NULL);
evas_event_feed_mouse_down(bd->bg_evas, ev->button, flags, NULL);
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, ev->time, NULL);
evas_event_feed_mouse_down(bd->bg_evas, ev->button, flags, ev->time, NULL);
}
return 1;
}
@ -3474,8 +3475,8 @@ _e_border_cb_mouse_up(void *data, int type, void *event)
bd->drag.start = 0;
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, NULL);
evas_event_feed_mouse_up(bd->bg_evas, ev->button, EVAS_BUTTON_NONE, NULL);
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, ev->time, NULL);
evas_event_feed_mouse_up(bd->bg_evas, ev->button, EVAS_BUTTON_NONE, ev->time, NULL);
return 1;
}
@ -3588,13 +3589,14 @@ _e_border_cb_mouse_move(void *data, int type, void *event)
e_drag_resize(drag, w, h);
e_drag_start(drag, bd->drag.x, bd->drag.y);
evas_event_feed_mouse_up(bd->bg_evas, 1,
EVAS_BUTTON_NONE, NULL);
EVAS_BUTTON_NONE, ev->time,
NULL);
}
bd->drag.start = 0;
}
}
}
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, NULL);
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, ev->time, NULL);
}
return 1;
}
@ -3610,8 +3612,8 @@ _e_border_cb_mouse_wheel(void *data, int type, void *event)
if (ev->win != bd->event_win) return 1;
bd->mouse.current.mx = ev->root.x;
bd->mouse.current.my = ev->root.y;
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, NULL);
evas_event_feed_mouse_wheel(bd->bg_evas, ev->direction, ev->z, NULL);
evas_event_feed_mouse_move(bd->bg_evas, ev->x, ev->y, ev->time, NULL);
evas_event_feed_mouse_wheel(bd->bg_evas, ev->direction, ev->z, ev->time, NULL);
return 1;
}
@ -4746,14 +4748,21 @@ _e_border_eval(E_Border *bd)
bd->need_shape_export = 0;
}
bd->changed = 0;
bd->changes.stack = 0;
bd->changes.prop = 0;
bd->changes.border = 0;
if ((bd->take_focus) || (bd->want_focus))
{
bd->take_focus = 0;
if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) ||
(bd->want_focus))
{
bd->want_focus = 0;
if (!bd->lock_focus_out)
e_border_focus_set(bd, 1, 1);
bd->want_focus = 0;
}
else
{
@ -4772,14 +4781,7 @@ _e_border_eval(E_Border *bd)
}
}
}
bd->take_focus = 0;
}
bd->changed = 0;
bd->changes.stack = 0;
bd->changes.prop = 0;
bd->changes.border = 0;
if (bd->remember)
e_remember_update(bd->remember, bd);
@ -5573,7 +5575,7 @@ _e_border_menu_cb_remember_apply_run(void *data, E_Menu *m, E_Menu_Item *mi)
}
static void
_e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key)
_e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key, Ecore_X_Time timestamp)
{
E_Menu *m;
E_Menu_Item *mi;
@ -5935,7 +5937,7 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key)
E_MENU_POP_DIRECTION_DOWN);
else
e_menu_activate_mouse(m, bd->zone, x, y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, timestamp);
}
static void

View File

@ -1067,7 +1067,7 @@ _e_gadman_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_in
{
e_menu_post_deactivate_callback_set(m, _e_gadman_cb_menu_end, gmc);
e_menu_activate_mouse(m, gmc->zone, ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_all_later(gmc->zone->container);
}
}

View File

@ -73,7 +73,7 @@ static void _e_menu_cb_item_submenu_post_default (void *data, E_Menu *m, E_Menu
/* local subsystem globals */
static Ecore_X_Window _e_menu_win = 0;
static Evas_List *_e_active_menus = NULL;
static double _e_menu_activate_time = 0.0;
static Ecore_X_Time _e_menu_activate_time = 0;
static int _e_menu_activate_floating = 0;
static Ecore_Timer *_e_menu_scroll_timer = NULL;
static double _e_menu_scroll_start = 0.0;
@ -150,7 +150,7 @@ e_menu_activate_key(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir
E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE);
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
_e_menu_activate_time = 0.0;
_e_menu_activate_time = 0;
_e_menu_activate_floating = 0;
_e_menu_activate_internal(m, zone);
switch (dir)
@ -197,7 +197,7 @@ e_menu_activate_key(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir
}
void
e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir)
e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir, Ecore_X_Time activate_time)
{
E_Menu_Item *pmi;
@ -205,7 +205,7 @@ e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int d
E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE);
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
_e_menu_activate_time = ecore_time_get();
_e_menu_activate_time = activate_time;
_e_menu_activate_floating = 0;
_e_menu_activate_internal(m, zone);
switch (dir)
@ -249,7 +249,7 @@ e_menu_activate(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir)
E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE);
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
_e_menu_activate_time = 0.0;
_e_menu_activate_time = 0;
_e_menu_activate_floating = 0;
_e_menu_activate_internal(m, zone);
switch (dir)
@ -1183,8 +1183,8 @@ _e_menu_realize(E_Menu *m)
m->evas = ecore_evas_get(m->ecore_evas);
evas_event_freeze(m->evas);
/* move cursor out to avoid event cycles during setup */
evas_event_feed_mouse_in(m->evas, NULL);
evas_event_feed_mouse_move(m->evas, -1000000, -1000000, NULL);
evas_event_feed_mouse_in(m->evas, ecore_x_current_time_get(), NULL);
evas_event_feed_mouse_move(m->evas, -1000000, -1000000, ecore_x_current_time_get(), NULL);
ecore_x_window_shape_events_select(m->evas_win, 1);
ecore_evas_name_class_set(m->ecore_evas, "E", "_e_menu_window");
ecore_evas_title_set(m->ecore_evas, "E Menu");
@ -2279,15 +2279,15 @@ static int
_e_menu_cb_mouse_up(void *data, int type, void *event)
{
Ecore_X_Event_Mouse_Button_Up *ev;
double t;
Ecore_X_Time t;
int ret;
ev = event;
if (ev->win != _e_menu_win) return 1;
t = ecore_time_get();
if ((_e_menu_activate_time != 0.0) &&
((t - _e_menu_activate_time) < e_config->menus_click_drag_timeout))
t = ev->time - _e_menu_activate_time;
if ((_e_menu_activate_time != 0) &&
(t < (e_config->menus_click_drag_timeout * 1000)))
{
_e_menu_activate_floating = 1;
return 1;
@ -2297,7 +2297,7 @@ _e_menu_cb_mouse_up(void *data, int type, void *event)
if (ret == 1)
{
/* allow mouse to pop down menu if clicked elsewhere */
/* if (_e_menu_activate_time != 0.0) */
/* if (_e_menu_activate_time != 0) */
_e_menu_deactivate_all();
}
else if (ret == -1)
@ -2358,6 +2358,7 @@ _e_menu_cb_mouse_move(void *data, int type, void *event)
evas_event_feed_mouse_move(m->evas,
ev->x - m->cur.x + m->zone->x,
ev->y - m->cur.y + m->zone->y,
ev->time,
NULL);
}
}

View File

@ -133,7 +133,7 @@ EAPI int e_menu_shutdown(void);
EAPI E_Menu *e_menu_new(void);
EAPI void e_menu_activate_key(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir);
EAPI void e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir);
EAPI void e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir, Ecore_X_Time activate_time);
EAPI void e_menu_activate(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir);
EAPI void e_menu_deactivate(E_Menu *m);
EAPI int e_menu_freeze(E_Menu *m);

View File

@ -194,7 +194,7 @@ _e_test_timer(void *data)
m = e_int_menus_main_new();
e_menu_activate_mouse(m,
e_container_zone_number_get(e_container_current_get(man), 0),
0, 0, 1, 1, E_MENU_POP_DIRECTION_DOWN);
0, 0, 1, 1, E_MENU_POP_DIRECTION_DOWN, 0);
ecore_timer_add(0.05, _e_test_timer, m);
return 0;
}
@ -277,7 +277,7 @@ _e_test_internal(E_Container *con)
m = e_int_menus_main_new();
e_menu_activate_mouse(m,
e_container_zone_number_get(e_container_current_get(man), 0),
0, 0, 1, 1, E_MENU_POP_DIRECTION_DOWN);
0, 0, 1, 1, E_MENU_POP_DIRECTION_DOWN, 0);
ecore_timer_add(0.02, _e_test_timer, m);
}
}

View File

@ -101,7 +101,7 @@ _e_util_container_fake_mouse_up_cb(void *data)
info = data;
if (info)
{
evas_event_feed_mouse_up(info->con->bg_evas, info->button, EVAS_BUTTON_NONE, NULL);
evas_event_feed_mouse_up(info->con->bg_evas, info->button, EVAS_BUTTON_NONE, ecore_x_current_time_get(), NULL);
e_object_unref(E_OBJECT(info->con));
free(info);
}

View File

@ -621,7 +621,7 @@ _battery_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_i
{
e_menu_activate_mouse(ef->menu, e_zone_current_get(ef->con),
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_all_later(ef->con);
}
}

View File

@ -408,7 +408,7 @@ _clock_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_inf
{
e_menu_activate_mouse(face->menu, e_zone_current_get(face->con),
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_all_later(face->con);
}
}

View File

@ -894,7 +894,7 @@ _cpufreq_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_i
{
e_menu_activate_mouse(ef->menu, e_zone_current_get(ef->con),
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_all_later(ef->con);
}
}

View File

@ -1340,7 +1340,7 @@ _ibar_icon_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info
e_drag_resize(d, w, h);
e_drag_start(d, drag_x, drag_y);
evas_event_feed_mouse_up(ic->ibb->evas, 1, EVAS_BUTTON_NONE, NULL);
evas_event_feed_mouse_up(ic->ibb->evas, 1, EVAS_BUTTON_NONE, ev->timestamp, NULL);
e_app_remove(ic->app);
}
}
@ -1386,7 +1386,7 @@ _ibar_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
e_menu_activate_mouse(ibb->menu, e_zone_current_get(ibb->con),
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_later(ibb->con, 3);
}
}

View File

@ -1050,7 +1050,7 @@ _ibox_box_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
e_menu_activate_mouse(ibb->menu, e_zone_current_get(ibb->con),
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_later(ibb->con, 3);
}
}

View File

@ -1338,7 +1338,7 @@ _pager_desk_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_inf
{
e_menu_activate_mouse(pd->face->menu, pd->face->zone,
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_all_later(pd->face->zone->container);
}
else if (ev->button == 1)

View File

@ -339,9 +339,9 @@ _start_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_inf
ev = event_info;
if (ev->button == 3)
{
e_menu_activate_mouse(face->menu, e_zone_current_get(face->con),
e_menu_activate_mouse(face->menu, e_zone_current_get(face->con),
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_AUTO);
E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
e_util_container_fake_mouse_up_all_later(face->con);
}
else if (ev->button == 1)
@ -352,9 +352,9 @@ _start_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_inf
if (!face->main_menu)
face->main_menu = e_int_menus_main_new();
e_menu_post_deactivate_callback_set(face->main_menu, _start_menu_cb_post_deactivate, face);
e_menu_activate_mouse(face->main_menu, e_zone_current_get(face->con),
e_menu_activate_mouse(face->main_menu, e_zone_current_get(face->con),
x, y, w, h,
E_MENU_POP_DIRECTION_AUTO);
E_MENU_POP_DIRECTION_AUTO, ev->timestamp);
e_util_container_fake_mouse_up_all_later(face->con);
edje_object_signal_emit(face->button_object, "active", "");
}

View File

@ -770,7 +770,7 @@ _temperature_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *eve
{
e_menu_activate_mouse(ef->menu, e_zone_current_get(ef->con),
ev->output.x, ev->output.y, 1, 1,
E_MENU_POP_DIRECTION_DOWN);
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
e_util_container_fake_mouse_up_all_later(ef->con);
}
}