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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs