patch from petet can de werken with sticky signals and maximize

SVN revision: 33925
This commit is contained in:
Carsten Haitzler 2008-03-05 02:54:30 +00:00
parent 6fbadc1d08
commit db4a8f8ba4
3 changed files with 12 additions and 4 deletions

View File

@ -2265,6 +2265,7 @@ e_border_stick(E_Border *bd)
}
}
edje_object_signal_emit(bd->bg_object, "e,state,sticky", "e");
ev = E_NEW(E_Event_Border_Stick, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
@ -2300,6 +2301,7 @@ e_border_unstick(E_Border *bd)
}
}
edje_object_signal_emit(bd->bg_object, "e,state,unsticky", "e");
ev = E_NEW(E_Event_Border_Unstick, 1);
ev->border = bd;
e_object_ref(E_OBJECT(bd));
@ -5932,6 +5934,8 @@ _e_border_eval(E_Border *bd)
}
if (bd->shaded)
edje_object_signal_emit(bd->bg_object, "e,state,shaded", "e");
if (bd->sticky)
edje_object_signal_emit(bd->bg_object, "e,state,sticky", "e");
if ((bd->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN)
edje_object_signal_emit(bd->bg_object, "e,action,maximize,fullscreen", "e");
else if ((bd->maximized & E_MAXIMIZE_TYPE) != E_MAXIMIZE_NONE)

View File

@ -180,7 +180,7 @@ e_maximize_border_border_fill(E_Border *bd, int *x1, int *y1, int *x2, int *y2,
bl = e_container_border_list_first(bd->zone->container);
while ((bd2 = e_container_border_list_next(bl)))
{
if ((bd2->zone != bd->zone) || (bd == bd2) || (bd2->desk != bd->desk))
if ((bd2->zone != bd->zone) || (bd == bd2) || (bd2->desk != bd->desk && !bd2->sticky) || (bd2->iconic))
continue;
OBSTACLE(bd2->x, bd2->y, bd2->x + bd2->w, bd2->y + bd2->h);
}

View File

@ -378,7 +378,11 @@ _ibox_fill(IBox *b)
}
else if((b->inst->ci->show_zone == 1) && (bd->iconic))
{
if ((b->inst->ci->show_desk == 0) && (bd->zone == b->zone))
if (bd->sticky)
{
ok = 1;
}
else if ((b->inst->ci->show_desk == 0) && (bd->zone == b->zone))
{
ok = 1;
}
@ -1039,7 +1043,7 @@ _ibox_cb_event_border_add(void *data, int type, void *event)
{
b = l->data;
if (_ibox_icon_find(b, ev->border)) continue;
if ((b->inst->ci->show_desk) && (ev->border->desk != desk)) continue;
if ((b->inst->ci->show_desk) && (ev->border->desk != desk) && (!ev->border->sticky)) continue;
ic = _ibox_icon_new(b, ev->border);
if (!ic) continue;
b->icons = evas_list_append(b->icons, ic);
@ -1101,7 +1105,7 @@ _ibox_cb_event_border_iconify(void *data, int type, void *event)
{
b = l->data;
if (_ibox_icon_find(b, ev->border)) continue;
if ((b->inst->ci->show_desk) && (ev->border->desk != desk)) continue;
if ((b->inst->ci->show_desk) && (ev->border->desk != desk) && (!ev->border->sticky)) continue;
ic = _ibox_icon_new(b, ev->border);
if (!ic) continue;
b->icons = evas_list_append(b->icons, ic);