From 11378190605724ccad29047a1453e9b74758eb09 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 24 Jun 2005 08:39:48 +0000 Subject: [PATCH] abort move if window hidden during move SVN revision: 15518 --- TODO | 6 +++--- src/bin/e_border.c | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/TODO b/TODO index 1284e67f8..31eca7b83 100644 --- a/TODO +++ b/TODO @@ -20,14 +20,12 @@ Some of the things (in very short form) that need to be done to E17... windows on desktops vanish... there must be a race condition with a map/unmap event and something else... they still are around in x- just e hides them and never shows them again -* BUG?: pager problems. Seems to loose or mess up windows sometimes. -* BUG?: xine's ui window/panel is under its video window when u go fullscreen. is this correct? * BUG: pager doesnt handle container/zone resize properly (and goes a weird size)??? (try resize screen to like 480x640 (new aspect)) * BUG: sometimes the mouse gets locked to a window with a mouse grab of some sort in x (it gets the down event and not the up?) so e thinks its down but - it isn't + it isn't - happens a lot in click to focus. * BUG: maximised apps when e restarts are not recognised as maximised * BUG: sometimes windows that get shut down/closed get unparented but the whole border stays around - something is keeping extra references maybe? it is @@ -39,6 +37,8 @@ Some of the things (in very short form) that need to be done to E17... * BUG: if you have 2 zones and you fill up zone 2 (right) mostly and then run a big xev (xev -g 1280x1024) that wont fit it gets placed offscreen to the right of zone 2 +* BUG?: pager problems. Seems to loose or mess up windows sometimes. +* BUG?: xine's ui window/panel is under its video window when u go ]]] [[[ diff --git a/src/bin/e_border.c b/src/bin/e_border.c index a64f71607..f5ec3ac6c 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -555,7 +555,12 @@ e_border_hide(E_Border *bd, int manage) E_OBJECT_CHECK(bd); E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (!bd->visible) return; - if (bd->moving) return; + if (bd->moving) + { + bd->moving = 0; + _e_border_move_end(bd); + e_zone_flip_coords_handle(bd->zone, -1, -1); + } if (bd->fullscreen) e_border_unfullscreen(bd); if (bd->resize_mode != RESIZE_NONE)