summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2013-02-14 12:54:38 +0000
committerCarsten Haitzler <raster@rasterman.com>2013-02-14 12:54:38 +0000
commit77f9977ce12fb9a289aa44532a0ba580f4cc567b (patch)
tree69f5955fb206d4bf51db316ea50dd42db0aaf8a5 /src
parent6d0ccb4d9966f7d338a0a3524342b606aed6c40c (diff)
downloadenlightenment-77f9977ce12fb9a289aa44532a0ba580f4cc567b.tar.gz
someone forgot to worry about warp_timer_border on deletions. :)
SVN revision: 83891
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_border.c64
1 files changed, 39 insertions, 25 deletions
diff --git a/src/bin/e_border.c b/src/bin/e_border.c
index 076557aeb1..7046eaeab3 100644
--- a/src/bin/e_border.c
+++ b/src/bin/e_border.c
@@ -388,6 +388,8 @@ e_border_shutdown(void)
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;
@@ -4860,6 +4862,12 @@ e_border_resize_limit(E_Border *bd,
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)
{
@@ -10225,34 +10233,37 @@ _e_border_pointer_warp_to_center_timer(void *data __UNUSED__)
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;
}
@@ -10262,6 +10273,9 @@ e_border_pointer_warp_to_center_now(E_Border *bd)
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;
}