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 = E_NEW(E_Event_Border_Stick, 1);
ev->border = bd; ev->border = bd;
e_object_ref(E_OBJECT(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 = E_NEW(E_Event_Border_Unstick, 1);
ev->border = bd; ev->border = bd;
e_object_ref(E_OBJECT(bd)); e_object_ref(E_OBJECT(bd));
@ -5932,6 +5934,8 @@ _e_border_eval(E_Border *bd)
} }
if (bd->shaded) if (bd->shaded)
edje_object_signal_emit(bd->bg_object, "e,state,shaded", "e"); 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) if ((bd->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN)
edje_object_signal_emit(bd->bg_object, "e,action,maximize,fullscreen", "e"); edje_object_signal_emit(bd->bg_object, "e,action,maximize,fullscreen", "e");
else if ((bd->maximized & E_MAXIMIZE_TYPE) != E_MAXIMIZE_NONE) 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); bl = e_container_border_list_first(bd->zone->container);
while ((bd2 = e_container_border_list_next(bl))) 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; continue;
OBSTACLE(bd2->x, bd2->y, bd2->x + bd2->w, bd2->y + bd2->h); 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)) 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; ok = 1;
} }
@ -1039,7 +1043,7 @@ _ibox_cb_event_border_add(void *data, int type, void *event)
{ {
b = l->data; b = l->data;
if (_ibox_icon_find(b, ev->border)) continue; 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); ic = _ibox_icon_new(b, ev->border);
if (!ic) continue; if (!ic) continue;
b->icons = evas_list_append(b->icons, ic); 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; b = l->data;
if (_ibox_icon_find(b, ev->border)) continue; 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); ic = _ibox_icon_new(b, ev->border);
if (!ic) continue; if (!ic) continue;
b->icons = evas_list_append(b->icons, ic); b->icons = evas_list_append(b->icons, ic);