From cf379ae19be801a7ffd2d1afeaaf2f24896d85a5 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 29 Jun 2005 08:06:54 +0000 Subject: [PATCH] bread crumbs paid off! werd to THAT! SVN revision: 15562 --- TODO | 8 +++----- src/bin/e_int_menus.c | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/TODO b/TODO index b7fa277ad..c43bed451 100644 --- a/TODO +++ b/TODO @@ -24,11 +24,9 @@ Some of the things (in very short form) that need to be done to E17... sort in x (it gets the down event and not the up?) so e thinks its down but 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 - hidden, until you flip desktops then it appears again - but with no client - around. currently they have a dangling reference - need to find out WHO - added that ref and didnt remove it (i haven't seen this for ages now) +* BUG: client windows list somehow doesn't unref its list of borders in the + free callback set on it. why? is this callback never called? or is the + data pointer on the menu object null for some reason? * 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 diff --git a/src/bin/e_int_menus.c b/src/bin/e_int_menus.c index f91756d38..44323ac2e 100644 --- a/src/bin/e_int_menus.c +++ b/src/bin/e_int_menus.c @@ -584,6 +584,14 @@ _e_int_menus_clients_free_hook(void *obj) m = obj; borders = e_object_data_get(E_OBJECT(m)); + if (borders == NULL) + { + printf("########################################################\n"); + printf("########################################################\n"); + printf("clients menu free cb called and object data is NULL!\n"); + printf("########################################################\n"); + printf("########################################################\n"); + } while (borders) { E_Border *bd; @@ -598,8 +606,9 @@ _e_int_menus_clients_free_hook(void *obj) static void _e_int_menus_clients_item_cb(void *data, E_Menu *m, E_Menu_Item *mi) { - E_Border *bd = data; - + E_Border *bd; + + bd = data; E_OBJECT_CHECK(bd); if (bd->iconic) e_border_uniconify(bd); e_desk_show(bd->desk); @@ -610,8 +619,9 @@ _e_int_menus_clients_item_cb(void *data, E_Menu *m, E_Menu_Item *mi) static void _e_int_menus_clients_cleanup_cb(void *data, E_Menu *m, E_Menu_Item *mi) { - E_Zone *zone = data; + E_Zone *zone; + zone = data; e_place_zone_region_smart_cleanup(zone); }