Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: ewin-ops.c Log Message: Prevent shading windows from going off-screen. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/ewin-ops.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- ewin-ops.c 21 Jan 2005 20:34:41 -0000 1.6 +++ ewin-ops.c 22 Jan 2005 14:05:51 -0000 1.7 @@ -205,12 +205,23 @@ sw *= Conf.desks.areas_nx; sh *= Conf.desks.areas_ny; } - dx = EoGetW(ewin) / 4; - if (dx > 8) - dx = 8; - dy = EoGetH(ewin) / 4; - if (dy > 8) - dy = 8; + + if (ewin->shaded) + { + /* Keep shaded windows entirely on-screen */ + dx = EoGetW(ewin); + dy = EoGetH(ewin); + } + else + { + /* Keep at least 8 pixels on-screen */ + dx = EoGetW(ewin) / 4; + if (dx > 8) + dx = 8; + dy = EoGetH(ewin) / 4; + if (dy > 8) + dy = 8; + } if (x < x0 - EoGetW(ewin) + dx) x = x0 - EoGetW(ewin) + dx; @@ -716,6 +727,7 @@ switch (ewin->border->shadedir) { + default: case 0: att.win_gravity = EastGravity; XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att); @@ -751,13 +763,7 @@ k = ETimedLoopNext(); } } - ewin->shaded = 2; EoSetW(ewin, b); - EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1); - ExMoveResizeWindow(&ewin->o, EoGetX(ewin), EoGetY(ewin), - EoGetW(ewin), EoGetH(ewin)); - EwinBorderCalcSizes(ewin); - ecore_x_sync(); break; case 1: att.win_gravity = WestGravity; @@ -797,14 +803,8 @@ k = ETimedLoopNext(); } } - ewin->shaded = 2; EoSetW(ewin, b); EoSetX(ewin, d); - EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1); - ExMoveResizeWindow(&ewin->o, EoGetX(ewin), EoGetY(ewin), - EoGetW(ewin), EoGetH(ewin)); - EwinBorderCalcSizes(ewin); - ecore_x_sync(); break; case 2: att.win_gravity = SouthGravity; @@ -843,13 +843,7 @@ k = ETimedLoopNext(); } } - ewin->shaded = 2; EoSetH(ewin, b); - EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1); - ExMoveResizeWindow(&ewin->o, EoGetX(ewin), EoGetY(ewin), - EoGetW(ewin), EoGetH(ewin)); - EwinBorderCalcSizes(ewin); - ecore_x_sync(); break; case 3: att.win_gravity = SouthGravity; @@ -889,19 +883,17 @@ k = ETimedLoopNext(); } } - ewin->shaded = 2; EoSetH(ewin, b); EoSetY(ewin, d); - EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1); - ExMoveResizeWindow(&ewin->o, EoGetX(ewin), EoGetY(ewin), - EoGetW(ewin), EoGetH(ewin)); - EwinBorderCalcSizes(ewin); - ecore_x_sync(); - break; - default: break; } + ewin->shaded = 2; + EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1); + EwinBorderCalcSizes(ewin); + MoveEwin(ewin, EoGetX(ewin), EoGetY(ewin)); + ecore_x_sync(); + #if 0 ecore_x_ungrab(); Eprintf("EwinShade-E\n"); @@ -946,6 +938,7 @@ switch (ewin->border->shadedir) { + default: case 0: att.win_gravity = EastGravity; XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att); @@ -991,9 +984,6 @@ } } EoSetW(ewin, b); - MoveResizeEwin(ewin, EoGetX(ewin), EoGetY(ewin), ewin->client.w, - ewin->client.h); - ecore_x_sync(); break; case 1: att.win_gravity = WestGravity; @@ -1040,9 +1030,6 @@ } EoSetW(ewin, b); EoSetX(ewin, d); - MoveResizeEwin(ewin, EoGetX(ewin), EoGetY(ewin), ewin->client.w, - ewin->client.h); - ecore_x_sync(); break; case 2: att.win_gravity = SouthGravity; @@ -1089,9 +1076,6 @@ } } EoSetH(ewin, b); - MoveResizeEwin(ewin, EoGetX(ewin), EoGetY(ewin), ewin->client.w, - ewin->client.h); - ecore_x_sync(); break; case 3: att.win_gravity = SouthGravity; @@ -1138,14 +1122,13 @@ } EoSetH(ewin, b); EoSetY(ewin, d); - MoveResizeEwin(ewin, EoGetX(ewin), EoGetY(ewin), ewin->client.w, - ewin->client.h); - ecore_x_sync(); - break; - default: break; } + MoveResizeEwin(ewin, EoGetX(ewin), EoGetY(ewin), ewin->client.w, + ewin->client.h); + ecore_x_sync(); + #if 0 ecore_x_ungrab(); Eprintf("EwinUnShade-E\n"); ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs