When quickpanel gets deleted, we need to remove the borders from the qp list.

SVN revision: 45376
This commit is contained in:
Christopher Michael 2010-01-21 01:47:30 +00:00
parent 9d298fdae0
commit 63b73189d0
3 changed files with 19 additions and 6 deletions

View File

@ -1,6 +1,7 @@
#include "E_Illume.h"
#include "e_mod_layout.h"
#include "e_mod_main.h" // For logging functions
#include "e_quickpanel.h"
/* local function prototypes */
static const char *_e_mod_layout_policy_find(void);
@ -376,7 +377,14 @@ _e_mod_layout_cb_border_del(void *data, int type, void *event)
E_Event_Border_Remove *ev;
ev = event;
if (ev->border->stolen) return 1;
if (e_illume_border_is_quickpanel(ev->border))
{
E_Quickpanel *qp;
if (qp = e_quickpanel_by_zone_get(ev->border->zone))
qp->borders = eina_list_remove(qp->borders, ev->border);
}
if (ev->border->stolen) return 1;
if ((policy) && (policy->funcs.border_del))
policy->funcs.border_del(ev->border);
return 1;

View File

@ -313,10 +313,16 @@ _e_quickpanel_cb_animate(void *data)
}
qp->adjust = (qp->adjust_end * v) + (qp->adjust_start * (1.0 - v));
EINA_LIST_REVERSE_FOREACH(qp->borders, l, bd)
if (qp->borders)
{
e_border_lower(bd);
e_border_fx_offset(bd, 0, (bd->h + qp->adjust));
printf("Border Count: %d\n", eina_list_count(qp->borders));
EINA_LIST_REVERSE_FOREACH(qp->borders, l, bd)
{
printf("Border: %s\n", bd->client.icccm.name);
if (e_object_is_del(E_OBJECT(bd))) continue;
e_border_lower(bd);
e_border_fx_offset(bd, 0, (bd->h + qp->adjust));
}
}
if (t == qp->len)

View File

@ -342,10 +342,9 @@ _zone_layout_dual_top(E_Border *bd)
}
else
{
/* border there is conformant */
if (conform)
{
/* if current border is conformant, divide zone in half */
/* current border is conformant, divide zone in half */
bh = ((bd->zone->h - ss) / 2);
by = by + bh;
}