diff --git a/TODO b/TODO index c9d21c504..6931d901f 100644 --- a/TODO +++ b/TODO @@ -9,21 +9,16 @@ Some of the things (in very short form) that need to be done to E17... ------------------------------------------------------------------------------- * BUG: sometimes unshade fails. Must be the wrong order of some events. -* BUG: on drag and drop of icon from border, when dragged over pager, the - pager hilights, but on drop it stays hilighted - doesnt reset to normal - until a virtual desktop switch * FIX: need to hide other windows while doing fullscreen. -* BUG: on font apply borders need to be adjuted for size changes +* BUG: on font apply borders need to be adjusted for size changes * BUG: font apply doesnt seem to keep working (edje problem?) unless you restart -* BUG: if i downlock my machine to like 400mhz (make it sloooow) or load it +* BUG: if i downclock my machine to like 400mhz (make it sloooow) or load it down with lots of load and then hold down ctrl+alt+right for a while windows on desktops vanish... there must be a race condition with a map/unmap event and something else... they still are around in x- just e hides them and never shows them again fullscreen. is this correct? -* BUG: pager doesnt handle container/zone resize properly (and goes a weird - size)??? (try resize screen to like 480x640 (new aspect)) * BUG: sometimes the mouse gets locked to a window with a mouse grab of some sort in x (it gets the down event and not the up?) so e thinks its down but it isn't - happens a lot in click to focus. diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index a72381330..983a5aaac 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -1246,11 +1246,18 @@ _pager_face_cb_event_container_resize(void *data, int type, void *event) Pager_Face *face; E_Event_Container_Resize *ev; Evas_List *l; - Evas_Coord w, h, lw, lh; + Evas_Coord w, h, lw, lh, dw, dh, padw, padh; face = data; ev = event; if (face->zone->container != ev->container) return 1; + + evas_object_geometry_get(face->table_object, NULL, NULL, &lw, &lh); + if (face->xnum > 0) dw = lw / face->xnum; + else dw = 0; + if (face->ynum > 0) dh = lh / face->ynum; + else dh = 0; + for (l = face->desks; l; l = l->next) { Pager_Desk *pd; @@ -1266,10 +1273,17 @@ _pager_face_cb_event_container_resize(void *data, int type, void *event) w = face->fw; h = face->fh; evas_object_geometry_get(face->table_object, NULL, NULL, &lw, &lh); + padw = w - lw; + padh = h - lh; + if ((face->xnum * face->zone->w) > (face->ynum * face->zone->h)) - w = face->xnum * ((face->zone->w * lh) / face->zone->h); + { + w = (face->xnum * ((face->zone->w * dh) / face->zone->h)) + padw; + } else - h = face->ynum * ((face->zone->h * lw) / face->zone->w); + { + h = (face->ynum * ((face->zone->h * dw) / face->zone->w)) + padh; + } e_gadman_client_resize(face->gmc, w, h); return 1; }