diff --git a/src/TODO b/src/TODO index b6b3d8fa..b56ff994 100644 --- a/src/TODO +++ b/src/TODO @@ -1,16 +1,25 @@ +BUGS: +kainx: translucent and group window moves if move != opaque - fix :) +kainx: new tooltip stuff doesnt saccoutn for 2x extra in calculating iconbox +raster: must update dox docs fully +raster: group properties are not remembered :( +raster: tooltips fro pager names and iconbox names runs off right edge +raster: changing virtual desktop size screws up pager content draws. +raster: double "close sound" playing atthe moment - fix. +raster: all buttons that launch menus done unpress +raster: bacgkrounds not in theme make pager display incorrectly ? +raster: resize pager recalcs sel win size but not xy properly +raster: in E-docs interactive.sh gets hosed on make clean +mark: grab cursor and confine to root window when moving windows / resizing. + +FEATURES: +kainx: reduce need for tooltip text to have auto gened tooltips work user: spacers in menus user: "default button" indicator for the default "enter" activated button user: add submenu resistance / timeout for running across to a submenu user: add "virtual" resistance boxes user: finer grained control on selecting icon display policy -kainx: translucent and group window moves if move != opaque - fix :) -kainx: new tooltip stuff doesnt saccoutn for 2x extra in calculating iconbox -kainx: reduce need for tooltip text to have auto gened tooltips work -raster: must update dox docs fully -raster: group properties are not remembered :( -raster: tooltips fro pager names and iconbox names runs off right edge raster: add dnd to iconbox -raster: icoify animation suport -raster: changing virtual desktop size screws up pager content draws. -raster: double "close sound" playing atthe moment - fix. +raster: iconify animation suport raster: need to lock .enlightenment dir for multiple logins etc. + diff --git a/src/pager.c b/src/pager.c index d4172062..53e1990b 100644 --- a/src/pager.c +++ b/src/pager.c @@ -1682,6 +1682,7 @@ PagerSetSnap(char onoff) Pager **pl; EWin **lst; int i, num; + char s[256]; SNAP = onoff; @@ -1703,6 +1704,12 @@ PagerSetSnap(char onoff) PagerHideHi(pl[i]); PagerRedraw(pl[i], 2); PagerForceUpdate(pl[i]); + if (SNAP) + { + Esnprintf(s, sizeof(s), "__.%x", pl[i]->win); + if (mode.pager_scanspeed > 0) + DoIn(s, 1 / ((double)mode.pager_scanspeed), PagerUpdateTimeout, 0, pl[i]); + } } Efree(pl); } diff --git a/src/snaps.c b/src/snaps.c index b59c9552..b634829b 100644 --- a/src/snaps.c +++ b/src/snaps.c @@ -745,6 +745,8 @@ SaveSnapInfo(void) fprintf(f, "CLASS: %s\n", sn->win_class); if (sn->use_desktop) fprintf(f, "DESKTOP: %i\n", sn->desktop); + if (sn->use_xy) + fprintf(f, "RES: %i %i\n", root.w, root.h); if (sn->use_wh) fprintf(f, "WH: %i %i\n", sn->w, sn->h); if (sn->use_xy) @@ -813,6 +815,7 @@ LoadSnapInfo(void) Snapshot *sn = NULL; char buf[4096], s[4096]; FILE *f; + int res_w, res_h; Esnprintf(buf, sizeof(buf), "%s.snapshots.%i", GetSMFile(), root.scr); if (!exists(buf)) @@ -826,7 +829,11 @@ LoadSnapInfo(void) buf[strlen(buf) - 1] = 0; word(buf, 1, s); if (!strcmp(s, "NEW:")) - sn = NewSnapshot(atword(buf, 2)); + { + res_w = root.w; + res_h = root.h; + sn = NewSnapshot(atword(buf, 2)); + } else if (sn) { if (!strcmp(s, "TITLE:")) @@ -846,6 +853,13 @@ LoadSnapInfo(void) word(buf, 2, s); sn->desktop = atoi(s); } + else if (!strcmp(s, "RES:")) + { + word(buf, 2, s); + res_w = atoi(s); + word(buf, 3, s); + res_h = atoi(s); + } else if (!strcmp(s, "WH:")) { sn->use_wh = 1; @@ -861,6 +875,39 @@ LoadSnapInfo(void) sn->x = atoi(s); word(buf, 3, s); sn->y = atoi(s); + /* we changed reses since we last used this snapshot file */ + if (res_w != root.w) + { + if (sn->use_wh) + { + if ((res_w - sn->w) <= 0) + sn->x = 0; + else + sn->x = (sn->x * (root.w - sn->w)) / + (res_w - sn->w); + } + else + { + if (sn->x >= root.w) + sn->x = root.w - 32; + } + } + if (res_h != root.h) + { + if (sn->use_wh) + { + if ((res_h - sn->h) <= 0) + sn->y = 0; + else + sn->y = (sn->y * (root.h - sn->h)) / + (res_h - sn->h); + } + else + { + if (sn->y >= root.h) + sn->y = root.h - 32; + } + } word(buf, 4, s); sn->area_x = atoi(s); word(buf, 5, s);