borders_hash = NULL;
e_int_border_menu_hooks_clear();
focus_locked = EINA_FALSE;
+ if (warp_timer) ecore_timer_del(warp_timer);
+ warp_timer = NULL;
warp_timer_border = NULL;
return 1;
static void
_e_border_free(E_Border *bd)
{
+ if (warp_timer_border == bd)
+ {
+ if (warp_timer) ecore_timer_del(warp_timer);
+ warp_timer = NULL;
+ warp_timer_border = NULL;
+ }
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
if (bd->client.e.state.profile.use)
{
return ECORE_CALLBACK_RENEW;
}
cleanup:
- ecore_timer_del(warp_timer);
+ if (warp_timer) 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)
+ if (warp_timer_border)
{
- e_border_focus_set(warp_timer_border, 1, 1);
- e_border_focus_latest_set(warp_timer_border);
+ 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;
}
- warp_timer_border = NULL;
return ECORE_CALLBACK_CANCEL;
}
if (e_config->disable_all_pointer_warps) return 0;
if (warp_timer_border == bd)
{
+ if (warp_timer) ecore_timer_del(warp_timer);
+ warp_timer = NULL;
+ warp_timer_border = NULL;
ecore_x_pointer_warp(warp_to_win, warp_to_x, warp_to_y);
warp_to = 0;
}