fixed pager stick/unstick/duplication problem (thanks catalyst/JC)
:) SVN revision: 13789
This commit is contained in:
parent
f8b09ec084
commit
b0d5786212
1
TODO
1
TODO
|
@ -30,7 +30,6 @@ Current freeze issues are:
|
||||||
ISSUES:
|
ISSUES:
|
||||||
|
|
||||||
* ibar doesnt handle autoscroll when it starts up (only after a gadman resize)
|
* ibar doesnt handle autoscroll when it starts up (only after a gadman resize)
|
||||||
* consoldiate client lists - we have client lists for containers, zones, desks AND e_borders.c consolidate into 1 list that has all borders with their stacking and what desk they belong to (and thus zone and container)
|
|
||||||
* virtual desktops need an overhaul. hacked in waay too quickly.
|
* virtual desktops need an overhaul. hacked in waay too quickly.
|
||||||
* virtual desktops need fixing to work with zones properly
|
* virtual desktops need fixing to work with zones properly
|
||||||
* gadman gadget menu needs icons :)
|
* gadman gadget menu needs icons :)
|
||||||
|
|
|
@ -131,7 +131,7 @@ int
|
||||||
about(E_Module *module)
|
about(E_Module *module)
|
||||||
{
|
{
|
||||||
e_error_dialog_show("Enlightenment Pager Module",
|
e_error_dialog_show("Enlightenment Pager Module",
|
||||||
"A pager module to navigate E17 desktops.");
|
"A pager module to navigate virtual desktops.");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -929,22 +929,46 @@ _pager_face_cb_event_border_desk_set(void *data, int type, void *event)
|
||||||
Pager_Face *face;
|
Pager_Face *face;
|
||||||
Pager_Win *pw;
|
Pager_Win *pw;
|
||||||
Pager_Desk *pd;
|
Pager_Desk *pd;
|
||||||
|
Evas_List *l;
|
||||||
|
int found = 0;
|
||||||
|
|
||||||
face = data;
|
face = data;
|
||||||
ev = event;
|
ev = event;
|
||||||
if (face->zone != ev->border->zone) return 1;
|
if (face->zone != ev->border->zone) return 1;
|
||||||
if (ev->border->sticky) return 1;
|
if (ev->border->sticky) return 1;
|
||||||
|
|
||||||
pw = _pager_face_border_find(face, ev->border);
|
for (l = face->desks; l; l = l->next)
|
||||||
pd = _pager_face_desk_find(face, ev->border->desk);
|
|
||||||
if ((pw) && (pd))
|
|
||||||
{
|
{
|
||||||
pw->desk->wins = evas_list_remove(pw->desk->wins, pw);
|
pd = l->data;
|
||||||
pw->desk = pd;
|
if (ev->border->desk != pd->desk)
|
||||||
pd->wins = evas_list_append(pd->wins, pw);
|
{
|
||||||
e_layout_unpack(pw->window_object);
|
pw = _pager_desk_border_find(pd, ev->border);
|
||||||
e_layout_pack(pd->layout_object, pw->window_object);
|
if (pw)
|
||||||
_pager_window_move(face, pw);
|
{
|
||||||
|
pd->wins = evas_list_remove(pd->wins, pw);
|
||||||
|
_pager_window_free(pw);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pw = _pager_desk_border_find(pd, ev->border);
|
||||||
|
if (pw) found = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
pw = _pager_face_border_find(face, ev->border);
|
||||||
|
pd = _pager_face_desk_find(face, ev->border->desk);
|
||||||
|
if ((pw) && (pd))
|
||||||
|
{
|
||||||
|
pw->desk->wins = evas_list_remove(pw->desk->wins, pw);
|
||||||
|
e_layout_unpack(pw->window_object);
|
||||||
|
|
||||||
|
pw->desk = pd;
|
||||||
|
pd->wins = evas_list_append(pd->wins, pw);
|
||||||
|
e_layout_pack(pd->layout_object, pw->window_object);
|
||||||
|
_pager_window_move(face, pw);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue