diff --git a/src/modules/illume2/e_mod_layout.c b/src/modules/illume2/e_mod_layout.c index f95ac3cb3..1a2b68fec 100644 --- a/src/modules/illume2/e_mod_layout.c +++ b/src/modules/illume2/e_mod_layout.c @@ -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; diff --git a/src/modules/illume2/e_quickpanel.c b/src/modules/illume2/e_quickpanel.c index b6f2a8830..5ecfb0f4c 100644 --- a/src/modules/illume2/e_quickpanel.c +++ b/src/modules/illume2/e_quickpanel.c @@ -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) diff --git a/src/modules/illume2/policies/illume/layout.c b/src/modules/illume2/policies/illume/layout.c index 257a41d92..3b59a9b01 100644 --- a/src/modules/illume2/policies/illume/layout.c +++ b/src/modules/illume2/policies/illume/layout.c @@ -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; }