forked from enlightenment/enlightenment
unify all pointer warping code to rely on e_border_pointer_warp_to_center functions
SVN revision: 83636
This commit is contained in:
parent
700ba27f5f
commit
6773c911b6
|
@ -7,6 +7,8 @@
|
|||
* new option for disabling all pointer warps
|
||||
* move pointer warp speed option to be general option
|
||||
* new tab in focus settings for pointer warping
|
||||
* add e_border_pointer_warp_to_center_now()
|
||||
* unify all pointer warp animators
|
||||
|
||||
2013-02-04 Mike Blumenkrantz
|
||||
|
||||
|
|
2
NEWS
2
NEWS
|
@ -22,6 +22,7 @@ Additions:
|
|||
* e_config_xkb functions
|
||||
* added functions for freeing binding config structs
|
||||
* E_Config_DD structs are now tracked and retrievable through e_config_descriptor_find
|
||||
* add e_border_pointer_warp_to_center_now()
|
||||
Config:
|
||||
* Added option for disabling icons in menus
|
||||
* Added option for disabling pointer warping when performing directional focus changes using winlist
|
||||
|
@ -90,6 +91,7 @@ Improvements:
|
|||
* add support for edje files in filepreview widget
|
||||
* improve load time of apps dialogs
|
||||
* new tab in focus settings for pointer warping
|
||||
* unify all pointer warp animators
|
||||
|
||||
Fixes:
|
||||
* IBar menu didn't allow to configure different icon sources, show contents menu even on empty IBar.
|
||||
|
|
|
@ -2158,12 +2158,15 @@ e_border_focus_set_with_pointer(E_Border *bd)
|
|||
E_Border *pbd;
|
||||
int ret = 0;
|
||||
pbd = e_border_under_pointer_get(bd->desk, bd);
|
||||
if (pbd && (pbd != bd)) ret = e_border_pointer_warp_to_center(bd);
|
||||
/* Do not slide pointer when disabled (probably breaks focus
|
||||
* on sloppy/mouse focus but requested by users). */
|
||||
if (e_config->pointer_slide && pbd && (pbd != bd))
|
||||
ret = e_border_pointer_warp_to_center(bd);
|
||||
if (!ret) e_border_focus_set(bd, 1, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!e_border_pointer_warp_to_center(bd))
|
||||
if (e_config->pointer_slide && (!e_border_pointer_warp_to_center(bd)))
|
||||
e_border_focus_set(bd, 1, 0);
|
||||
}
|
||||
}
|
||||
|
@ -4488,7 +4491,6 @@ _e_border_move_lost_window_to_center(E_Border *bd)
|
|||
static void
|
||||
_e_border_reset_lost_window(E_Border *bd)
|
||||
{
|
||||
int x, y, w, h;
|
||||
E_OBJECT_CHECK(bd);
|
||||
|
||||
if (bd->during_lost) return;
|
||||
|
@ -4501,23 +4503,7 @@ _e_border_reset_lost_window(E_Border *bd)
|
|||
if (!bd->lock_focus_out)
|
||||
e_border_focus_set(bd, 1, 1);
|
||||
|
||||
if (!e_config->disable_all_pointer_warps)
|
||||
{
|
||||
e_zone_useful_geometry_get(bd->zone, &x, &y, &w, &h);
|
||||
ecore_x_pointer_xy_get(bd->zone->container->win, &warp_x[0], &warp_y[0]);
|
||||
|
||||
warp_to_x = x + ((w / 2) - (bd->w / 2)) + (warp_x[0] - bd->x);
|
||||
warp_to_y = y + ((h / 2) - (bd->h / 2)) + (warp_y[0] - bd->y);
|
||||
|
||||
warp_to = 1;
|
||||
warp_to_win = bd->zone->container->win;
|
||||
|
||||
if (warp_timer) ecore_timer_del(warp_timer);
|
||||
warp_timer = ecore_timer_add(0.01, _e_border_pointer_warp_to_center_timer, bd);
|
||||
|
||||
e_border_focus_lock_set(EINA_TRUE);
|
||||
warp_timer_border = bd;
|
||||
}
|
||||
e_border_pointer_warp_to_center(bd);
|
||||
bd->during_lost = EINA_FALSE;
|
||||
}
|
||||
|
||||
|
@ -10202,7 +10188,8 @@ _e_border_pointer_warp_to_center_timer(void *data __UNUSED__)
|
|||
|
||||
ecore_x_pointer_xy_get(warp_to_win, &x, &y);
|
||||
/* move hasn't happened yet */
|
||||
if ((x == warp_x[1]) && (y == warp_y[1])) return EINA_TRUE;
|
||||
if ((x == warp_x[1]) && (y == warp_y[1]))
|
||||
return EINA_TRUE;
|
||||
if ((abs(x - warp_x[0]) > 5) || (abs(y - warp_y[0]) > 5))
|
||||
{
|
||||
/* User moved the mouse, so stop warping */
|
||||
|
@ -10210,9 +10197,7 @@ _e_border_pointer_warp_to_center_timer(void *data __UNUSED__)
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
/* We just use the same warp speed as configured
|
||||
* for the windowlist */
|
||||
spd = e_config->winlist_warp_speed;
|
||||
spd = e_config->pointer_warp_speed;
|
||||
warp_x[1] = x = warp_x[0];
|
||||
warp_y[1] = y = warp_y[0];
|
||||
warp_x[0] = (x * (1.0 - spd)) + (warp_to_x * spd);
|
||||
|
@ -10230,20 +10215,57 @@ _e_border_pointer_warp_to_center_timer(void *data __UNUSED__)
|
|||
cleanup:
|
||||
ecore_timer_del(warp_timer);
|
||||
warp_timer = NULL;
|
||||
warp_x[0] = warp_x[1] = warp_y[0] = warp_y[1] = -1;
|
||||
e_border_focus_lock_set(EINA_FALSE);
|
||||
e_focus_event_mouse_in(warp_timer_border);
|
||||
if (warp_timer_border->iconic)
|
||||
{
|
||||
if (!warp_timer_border->lock_user_iconify)
|
||||
e_border_uniconify(warp_timer_border);
|
||||
}
|
||||
if (warp_timer_border->shaded)
|
||||
{
|
||||
if (!warp_timer_border->lock_user_shade)
|
||||
e_border_unshade(warp_timer_border, warp_timer_border->shade.dir);
|
||||
}
|
||||
else if (warp_timer_border->desk)
|
||||
{
|
||||
if (!warp_timer_border->sticky) e_desk_show(warp_timer_border->desk);
|
||||
}
|
||||
if (!warp_timer_border->lock_user_stacking)
|
||||
e_border_raise(warp_timer_border);
|
||||
|
||||
if (!warp_timer_border->lock_focus_out)
|
||||
{
|
||||
e_border_focus_set(warp_timer_border, 1, 1);
|
||||
e_border_focus_latest_set(warp_timer_border);
|
||||
}
|
||||
warp_timer_border = NULL;
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
e_border_pointer_warp_to_center_now(E_Border *bd)
|
||||
{
|
||||
if (e_config->disable_all_pointer_warps) return 0;
|
||||
if (warp_timer_border == bd)
|
||||
{
|
||||
ecore_x_pointer_warp(warp_to_win, warp_to_x, warp_to_y);
|
||||
warp_to = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e_border_pointer_warp_to_center(bd))
|
||||
e_border_pointer_warp_to_center_now(bd);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
e_border_pointer_warp_to_center(E_Border *bd)
|
||||
{
|
||||
int x, y;
|
||||
|
||||
/* Do not slide pointer when disabled (probably breaks focus
|
||||
* on sloppy/mouse focus but requested by users). */
|
||||
if (!e_config->pointer_slide) return 0;
|
||||
if (e_config->disable_all_pointer_warps) return 0;
|
||||
/* Only warp the pointer if it is not already in the area of
|
||||
* the given border */
|
||||
|
|
|
@ -807,6 +807,7 @@ EAPI void e_border_focus_track_freeze(void);
|
|||
EAPI void e_border_focus_track_thaw(void);
|
||||
|
||||
EAPI E_Border *e_border_under_pointer_get(E_Desk *desk, E_Border *exclude);
|
||||
EAPI int e_border_pointer_warp_to_center_now(E_Border *bd);
|
||||
EAPI int e_border_pointer_warp_to_center(E_Border *bd);
|
||||
|
||||
EAPI void e_border_comp_hidden_set(E_Border *bd, Eina_Bool hidden);
|
||||
|
|
|
@ -29,7 +29,6 @@ static Eina_Bool _e_winlist_cb_mouse_up(void *data, int type, void *event);
|
|||
static Eina_Bool _e_winlist_cb_mouse_wheel(void *data, int type, void *event);
|
||||
static Eina_Bool _e_winlist_cb_mouse_move(void *data, int type, void *event);
|
||||
static Eina_Bool _e_winlist_scroll_timer(void *data);
|
||||
static Eina_Bool _e_winlist_warp_timer(void *data);
|
||||
static Eina_Bool _e_winlist_animator(void *data);
|
||||
#if 0
|
||||
static void _e_winlist_cb_item_mouse_in(void *data, Evas *evas,
|
||||
|
@ -52,20 +51,12 @@ static int _hold_mod = 0;
|
|||
static E_Winlist_Activate_Type _activate_type = 0;
|
||||
static Eina_List *_handlers = NULL;
|
||||
static Ecore_X_Window _input_window = 0;
|
||||
static int _warp_to = 0;
|
||||
static int _warp_to_x = 0;
|
||||
static int _warp_to_y = 0;
|
||||
static int _warp_x = 0;
|
||||
static int _warp_y = 0;
|
||||
static int _old_warp_x = 0;
|
||||
static int _old_warp_y = 0;
|
||||
static int _scroll_to = 0;
|
||||
static double _scroll_align_to = 0.0;
|
||||
static double _scroll_align = 0.0;
|
||||
static Ecore_Timer *_warp_timer = NULL;
|
||||
static Ecore_Timer *_scroll_timer = NULL;
|
||||
static Ecore_Animator *_animator = NULL;
|
||||
static const Ecore_X_Window *_win = NULL;
|
||||
static E_Border *_bd_next = NULL;
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -301,44 +292,7 @@ e_winlist_hide(void)
|
|||
}
|
||||
if (bd)
|
||||
{
|
||||
if (bd->shaded)
|
||||
{
|
||||
if (!bd->lock_user_shade)
|
||||
e_border_unshade(bd, bd->shade.dir);
|
||||
}
|
||||
else if (bd->desk)
|
||||
{
|
||||
if (!bd->sticky) e_desk_show(bd->desk);
|
||||
}
|
||||
if (!bd->lock_user_stacking)
|
||||
e_border_raise(bd);
|
||||
|
||||
if (!bd->lock_focus_out)
|
||||
{
|
||||
e_border_focus_set(bd, 1, 1);
|
||||
e_border_focus_latest_set(bd);
|
||||
e_border_focus_set(bd, 1, 1);
|
||||
}
|
||||
if ((e_config->focus_policy != E_FOCUS_CLICK) ||
|
||||
(e_config->winlist_warp_at_end) ||
|
||||
(e_config->winlist_warp_while_selecting))
|
||||
{
|
||||
_warp_to_x = bd->x + (bd->w / 2);
|
||||
if (_warp_to_x < (bd->zone->x + 1))
|
||||
_warp_to_x = bd->zone->x +
|
||||
((bd->x + bd->w - bd->zone->x) / 2);
|
||||
else if (_warp_to_x >= (bd->zone->x + bd->zone->w - 1))
|
||||
_warp_to_x = (bd->zone->x + bd->zone->w + bd->x) / 2;
|
||||
|
||||
_warp_to_y = bd->y + (bd->h / 2);
|
||||
if (_warp_to_y < (bd->zone->y + 1))
|
||||
_warp_to_y = bd->zone->y +
|
||||
((bd->y + bd->h - bd->zone->y) / 2);
|
||||
else if (_warp_to_y >= (bd->zone->y + bd->zone->h - 1))
|
||||
_warp_to_y = (bd->zone->y + bd->zone->h + bd->y) / 2;
|
||||
ecore_x_pointer_warp(bd->zone->container->win, _warp_to_x, _warp_to_y);
|
||||
}
|
||||
|
||||
e_border_pointer_warp_to_center_now(bd);
|
||||
e_object_unref(E_OBJECT(bd));
|
||||
}
|
||||
|
||||
|
@ -481,34 +435,12 @@ e_winlist_left(E_Zone *zone)
|
|||
if (!bd_orig->lock_focus_out)
|
||||
e_border_focus_set(bd_orig, 0, 0);
|
||||
|
||||
if ((!e_config->disable_all_pointer_warps) &&
|
||||
if ((!e_config->winlist_no_warp_on_direction) &&
|
||||
((e_config->focus_policy != E_FOCUS_CLICK) ||
|
||||
(e_config->winlist_warp_at_end) ||
|
||||
(e_config->winlist_warp_while_selecting)))
|
||||
{
|
||||
_warp_to_x = _bd_next->x + (_bd_next->w / 2);
|
||||
if (_warp_to_x < (_bd_next->zone->x + 1))
|
||||
_warp_to_x = _bd_next->zone->x +
|
||||
((_bd_next->x + _bd_next->w - _bd_next->zone->x) / 2);
|
||||
else if (_warp_to_x >= (_bd_next->zone->x + _bd_next->zone->w - 1))
|
||||
_warp_to_x = (_bd_next->zone->x + _bd_next->zone->w + _bd_next->x) / 2;
|
||||
|
||||
_warp_to_y = _bd_next->y + (_bd_next->h / 2);
|
||||
if (_warp_to_y < (_bd_next->zone->y + 1))
|
||||
_warp_to_y = _bd_next->zone->y +
|
||||
((_bd_next->y + _bd_next->h - _bd_next->zone->y) / 2);
|
||||
else if (_warp_to_y >= (_bd_next->zone->y + _bd_next->zone->h - 1))
|
||||
_warp_to_y = (_bd_next->zone->y + _bd_next->zone->h + _bd_next->y) / 2;
|
||||
|
||||
_old_warp_x = _old_warp_y = INT_MAX;
|
||||
}
|
||||
if (!e_config->winlist_no_warp_on_direction)
|
||||
{
|
||||
ecore_x_pointer_xy_get(zone->container->win, &_warp_x, &_warp_y);
|
||||
_win = &zone->container->win;
|
||||
_warp_to = 1;
|
||||
if (!_warp_timer)
|
||||
_warp_timer = ecore_timer_add(0.01, _e_winlist_warp_timer, NULL);
|
||||
e_border_pointer_warp_to_center(_bd_next);
|
||||
if (!_animator)
|
||||
_animator = ecore_animator_add(_e_winlist_animator, NULL);
|
||||
}
|
||||
|
@ -606,34 +538,12 @@ e_winlist_down(E_Zone *zone)
|
|||
if (!bd_orig->lock_focus_out)
|
||||
e_border_focus_set(bd_orig, 0, 0);
|
||||
|
||||
if ((!e_config->disable_all_pointer_warps) &&
|
||||
if ((!e_config->winlist_no_warp_on_direction) &&
|
||||
((e_config->focus_policy != E_FOCUS_CLICK) ||
|
||||
(e_config->winlist_warp_at_end) ||
|
||||
(e_config->winlist_warp_while_selecting)))
|
||||
{
|
||||
_warp_to_x = _bd_next->x + (_bd_next->w / 2);
|
||||
if (_warp_to_x < (_bd_next->zone->x + 1))
|
||||
_warp_to_x = _bd_next->zone->x +
|
||||
((_bd_next->x + _bd_next->w - _bd_next->zone->x) / 2);
|
||||
else if (_warp_to_x >= (_bd_next->zone->x + _bd_next->zone->w - 1))
|
||||
_warp_to_x = (_bd_next->zone->x + _bd_next->zone->w + _bd_next->x) / 2;
|
||||
|
||||
_warp_to_y = _bd_next->y + (_bd_next->h / 2);
|
||||
if (_warp_to_y < (_bd_next->zone->y + 1))
|
||||
_warp_to_y = _bd_next->zone->y +
|
||||
((_bd_next->y + _bd_next->h - _bd_next->zone->y) / 2);
|
||||
else if (_warp_to_y >= (_bd_next->zone->y + _bd_next->zone->h - 1))
|
||||
_warp_to_y = (_bd_next->zone->y + _bd_next->zone->h + _bd_next->y) / 2;
|
||||
|
||||
_old_warp_x = _old_warp_y = INT_MAX;
|
||||
}
|
||||
if (!e_config->winlist_no_warp_on_direction)
|
||||
{
|
||||
ecore_x_pointer_xy_get(zone->container->win, &_warp_x, &_warp_y);
|
||||
_win = &zone->container->win;
|
||||
_warp_to = 1;
|
||||
if (!_warp_timer)
|
||||
_warp_timer = ecore_timer_add(0.01, _e_winlist_warp_timer, NULL);
|
||||
e_border_pointer_warp_to_center(_bd_next);
|
||||
if (!_animator)
|
||||
_animator = ecore_animator_add(_e_winlist_animator, NULL);
|
||||
}
|
||||
|
@ -731,34 +641,12 @@ e_winlist_up(E_Zone *zone)
|
|||
if (!bd_orig->lock_focus_out)
|
||||
e_border_focus_set(bd_orig, 0, 0);
|
||||
|
||||
if ((!e_config->disable_all_pointer_warps) &&
|
||||
if ((!e_config->winlist_no_warp_on_direction) &&
|
||||
((e_config->focus_policy != E_FOCUS_CLICK) ||
|
||||
(e_config->winlist_warp_at_end) ||
|
||||
(e_config->winlist_warp_while_selecting)))
|
||||
{
|
||||
_warp_to_x = _bd_next->x + (_bd_next->w / 2);
|
||||
if (_warp_to_x < (_bd_next->zone->x + 1))
|
||||
_warp_to_x = _bd_next->zone->x +
|
||||
((_bd_next->x + _bd_next->w - _bd_next->zone->x) / 2);
|
||||
else if (_warp_to_x >= (_bd_next->zone->x + _bd_next->zone->w - 1))
|
||||
_warp_to_x = (_bd_next->zone->x + _bd_next->zone->w + _bd_next->x) / 2;
|
||||
|
||||
_warp_to_y = _bd_next->y + (_bd_next->h / 2);
|
||||
if (_warp_to_y < (_bd_next->zone->y + 1))
|
||||
_warp_to_y = _bd_next->zone->y +
|
||||
((_bd_next->y + _bd_next->h - _bd_next->zone->y) / 2);
|
||||
else if (_warp_to_y >= (_bd_next->zone->y + _bd_next->zone->h - 1))
|
||||
_warp_to_y = (_bd_next->zone->y + _bd_next->zone->h + _bd_next->y) / 2;
|
||||
|
||||
_old_warp_x = _old_warp_y = INT_MAX;
|
||||
}
|
||||
if (!e_config->winlist_no_warp_on_direction)
|
||||
{
|
||||
ecore_x_pointer_xy_get(zone->container->win, &_warp_x, &_warp_y);
|
||||
_win = &zone->container->win;
|
||||
_warp_to = 1;
|
||||
if (!_warp_timer)
|
||||
_warp_timer = ecore_timer_add(0.01, _e_winlist_warp_timer, NULL);
|
||||
e_border_pointer_warp_to_center(_bd_next);
|
||||
if (!_animator)
|
||||
_animator = ecore_animator_add(_e_winlist_animator, NULL);
|
||||
}
|
||||
|
@ -856,34 +744,12 @@ e_winlist_right(E_Zone *zone)
|
|||
if (!bd_orig->lock_focus_out)
|
||||
e_border_focus_set(bd_orig, 0, 0);
|
||||
|
||||
if ((!e_config->disable_all_pointer_warps) &&
|
||||
if ((!e_config->winlist_no_warp_on_direction) &&
|
||||
((e_config->focus_policy != E_FOCUS_CLICK) ||
|
||||
(e_config->winlist_warp_at_end) ||
|
||||
(e_config->winlist_warp_while_selecting)))
|
||||
{
|
||||
_warp_to_x = _bd_next->x + (_bd_next->w / 2);
|
||||
if (_warp_to_x < (_bd_next->zone->x + 1))
|
||||
_warp_to_x = _bd_next->zone->x +
|
||||
((_bd_next->x + _bd_next->w - _bd_next->zone->x) / 2);
|
||||
else if (_warp_to_x >= (_bd_next->zone->x + _bd_next->zone->w - 1))
|
||||
_warp_to_x = (_bd_next->zone->x + _bd_next->zone->w + _bd_next->x) / 2;
|
||||
|
||||
_warp_to_y = _bd_next->y + (_bd_next->h / 2);
|
||||
if (_warp_to_y < (_bd_next->zone->y + 1))
|
||||
_warp_to_y = _bd_next->zone->y +
|
||||
((_bd_next->y + _bd_next->h - _bd_next->zone->y) / 2);
|
||||
else if (_warp_to_y >= (_bd_next->zone->y + _bd_next->zone->h - 1))
|
||||
_warp_to_y = (_bd_next->zone->y + _bd_next->zone->h + _bd_next->y) / 2;
|
||||
|
||||
_old_warp_x = _old_warp_y = INT_MAX;
|
||||
}
|
||||
if (!e_config->winlist_no_warp_on_direction)
|
||||
{
|
||||
ecore_x_pointer_xy_get(zone->container->win, &_warp_x, &_warp_y);
|
||||
_win = &zone->container->win;
|
||||
_warp_to = 1;
|
||||
if (!_warp_timer)
|
||||
_warp_timer = ecore_timer_add(0.01, _e_winlist_warp_timer, NULL);
|
||||
e_border_pointer_warp_to_center(_bd_next);
|
||||
if (!_animator)
|
||||
_animator = ecore_animator_add(_e_winlist_animator, NULL);
|
||||
}
|
||||
|
@ -1126,52 +992,19 @@ _e_winlist_activate(void)
|
|||
ok = 1;
|
||||
if (ok)
|
||||
{
|
||||
if ((!e_config->disable_all_pointer_warps) &&
|
||||
if ((e_config->winlist_warp_while_selecting) &&
|
||||
((e_config->focus_policy != E_FOCUS_CLICK) ||
|
||||
(e_config->winlist_warp_at_end) ||
|
||||
(e_config->winlist_warp_while_selecting)))
|
||||
{
|
||||
_warp_to_x = ww->border->x + (ww->border->w / 2);
|
||||
if (_warp_to_x < (ww->border->zone->x + 1))
|
||||
_warp_to_x = ww->border->zone->x +
|
||||
((ww->border->x + ww->border->w - ww->border->zone->x) / 2);
|
||||
else if (_warp_to_x >= (ww->border->zone->x + ww->border->zone->w - 1))
|
||||
_warp_to_x = (ww->border->zone->x +
|
||||
ww->border->zone->w + ww->border->x) / 2;
|
||||
|
||||
_warp_to_y = ww->border->y + (ww->border->h / 2);
|
||||
if (_warp_to_y < (ww->border->zone->y + 1))
|
||||
_warp_to_y = ww->border->zone->y +
|
||||
((ww->border->y + ww->border->h - ww->border->zone->y) / 2);
|
||||
else if (_warp_to_y >= (ww->border->zone->y + ww->border->zone->h - 1))
|
||||
_warp_to_y = (ww->border->zone->y +
|
||||
ww->border->zone->h + ww->border->y) / 2;
|
||||
}
|
||||
if (e_config->winlist_warp_while_selecting)
|
||||
{
|
||||
ecore_x_pointer_xy_get(_winlist->zone->container->win,
|
||||
&_warp_x, &_warp_y);
|
||||
_win = &_winlist->zone->container->win;
|
||||
e_border_focus_latest_set(ww->border);
|
||||
_warp_to = 1;
|
||||
if (!_warp_timer)
|
||||
_warp_timer = ecore_timer_add(0.01, _e_winlist_warp_timer, NULL);
|
||||
if (!_animator)
|
||||
_animator = ecore_animator_add(_e_winlist_animator, NULL);
|
||||
e_border_pointer_warp_to_center(ww->border);
|
||||
if (!_animator)
|
||||
_animator = ecore_animator_add(_e_winlist_animator, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
_warp_to = 0;
|
||||
if (_warp_timer)
|
||||
{
|
||||
ecore_timer_del(_warp_timer);
|
||||
_warp_timer = NULL;
|
||||
}
|
||||
if (_animator)
|
||||
{
|
||||
ecore_animator_del(_animator);
|
||||
_animator = NULL;
|
||||
}
|
||||
E_FN_DEL(ecore_timer_del, _warp_timer);
|
||||
E_FN_DEL(ecore_animator_del, _animator);
|
||||
}
|
||||
|
||||
if ((!ww->border->lock_user_stacking) &&
|
||||
|
@ -1528,36 +1361,9 @@ _e_winlist_scroll_timer(void *data __UNUSED__)
|
|||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_winlist_warp_timer(void *data __UNUSED__)
|
||||
{
|
||||
if (_warp_to && _warp_timer)
|
||||
{
|
||||
double spd = e_config->winlist_warp_speed;
|
||||
|
||||
_old_warp_x = _warp_x;
|
||||
_old_warp_y = _warp_y;
|
||||
_warp_x = (_warp_x * (1.0 - spd)) + (_warp_to_x * spd);
|
||||
_warp_y = (_warp_y * (1.0 - spd)) + (_warp_to_y * spd);
|
||||
return ECORE_CALLBACK_RENEW;
|
||||
}
|
||||
_warp_timer = NULL;
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_winlist_animator(void *data __UNUSED__)
|
||||
{
|
||||
if (_warp_to)
|
||||
{
|
||||
if (_warp_x == _old_warp_x && _warp_y == _old_warp_y)
|
||||
{
|
||||
_warp_x = _warp_to_x;
|
||||
_warp_y = _warp_to_y;
|
||||
_warp_to = 0;
|
||||
}
|
||||
if (_win) ecore_x_pointer_warp(*_win, _warp_x, _warp_y);
|
||||
}
|
||||
if (_scroll_to)
|
||||
{
|
||||
double da;
|
||||
|
@ -1571,41 +1377,8 @@ _e_winlist_animator(void *data __UNUSED__)
|
|||
}
|
||||
e_box_align_set(_list_object, 0.5, 1.0 - _scroll_align);
|
||||
}
|
||||
if ((_warp_to) || (_scroll_to)) return ECORE_CALLBACK_RENEW;
|
||||
if (_bd_next)
|
||||
{
|
||||
if (_bd_next->iconic)
|
||||
{
|
||||
if (!_bd_next->lock_user_iconify)
|
||||
e_border_uniconify(_bd_next);
|
||||
}
|
||||
if (_bd_next->shaded)
|
||||
{
|
||||
if (!_bd_next->lock_user_shade)
|
||||
e_border_unshade(_bd_next, _bd_next->shade.dir);
|
||||
}
|
||||
else if (_bd_next->desk)
|
||||
{
|
||||
if (!_bd_next->sticky) e_desk_show(_bd_next->desk);
|
||||
}
|
||||
if (!_bd_next->lock_user_stacking)
|
||||
e_border_raise(_bd_next);
|
||||
|
||||
if (!_bd_next->lock_focus_out)
|
||||
{
|
||||
e_border_focus_set(_bd_next, 1, 1);
|
||||
e_border_focus_latest_set(_bd_next);
|
||||
}
|
||||
if ((e_config->focus_policy != E_FOCUS_CLICK) ||
|
||||
(e_config->winlist_warp_at_end) ||
|
||||
(e_config->winlist_warp_while_selecting))
|
||||
ecore_x_pointer_warp(_bd_next->zone->container->win,
|
||||
_warp_to_x, _warp_to_y);
|
||||
_bd_next = NULL;
|
||||
}
|
||||
_animator = NULL;
|
||||
_win = NULL;
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
if (!_scroll_to) _animator = NULL;
|
||||
return _scroll_to;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
|
Loading…
Reference in New Issue