Eliminate need for initial EwinMoveToDesktop (fix initial pager background).

SVN revision: 43737
This commit is contained in:
Kim Woelders 2009-11-16 20:55:12 +00:00
parent 542b551d80
commit 633281a9c6
6 changed files with 40 additions and 43 deletions

View File

@ -289,14 +289,12 @@ ContainerShow(Container * ct)
if (ewin->state.placed)
{
EwinMoveToDesktop(ewin, EoGetDesk(ewin));
EwinMoveResize(ewin, EoGetX(ewin), EoGetY(ewin), ewin->client.w,
ewin->client.h);
EwinMoveResize(ewin, EoGetX(ewin), EoGetY(ewin),
ewin->client.w, ewin->client.h);
}
else
{
/* The first one */
EwinMoveToDesktop(ewin, EoGetDesk(ewin));
EwinResize(ewin, 128, 32);
EwinMove(ewin, WinGetW(VROOT) - EoGetW(ewin),
WinGetH(VROOT) - EoGetH(ewin));

View File

@ -448,8 +448,6 @@ DialogShowArranged(Dialog * d, int center)
ewin->client.event_mask |= KeyPressMask;
ESelectInput(d->win, ewin->client.event_mask);
EwinMoveToDesktop(ewin, EoGetDesk(ewin));
if (ewin->state.placed)
{
EwinMoveResize(ewin, EoGetX(ewin), EoGetY(ewin), d->w, d->h);

View File

@ -182,40 +182,40 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
reparent = move = resize = raise = 0;
floating = EoIsFloating(ewin);
if (flags & (MRF_DESK | MRF_FLOAT | MRF_UNFLOAT))
if (flags & MRF_FLOAT)
{
if (flags & MRF_FLOAT)
if (floating == 0)
{
if (EoIsFloating(ewin) == 0)
{
dsk = (pdesk == NULL) ? EoGetDesk(ewin) : pdesk;
floating = 1;
}
else if (EoIsFloating(ewin) == 1)
{
dsk = DeskGet(0);
floating = 2;
}
flags |= MRF_RAISE;
dsk = (pdesk == NULL) ? EoGetDesk(ewin) : pdesk;
floating = 1;
}
else if (flags & MRF_UNFLOAT)
else if (floating == 1)
{
floating = 0;
flags |= MRF_RAISE;
dsk = DeskGet(0);
floating = 2;
}
else
{
if (EoIsSticky(ewin) && !EoIsFloating(ewin))
dsk = DesksGetCurrent();
}
if (dsk != pdesk)
reparent = 1;
flags |= MRF_RAISE;
}
else
else if (flags & MRF_UNFLOAT)
{
floating = 0;
flags |= MRF_RAISE;
}
else if (EoIsSticky(ewin) && !floating)
{
dsk = DesksGetCurrent();
}
else if (!dsk)
{
dsk = EoGetDesk(ewin);
}
if (dsk != pdesk)
{
reparent = 1;
flags |= MRF_DESK;
}
if (Mode.mode == MODE_NONE && Mode.move.check)
{
/* Don't throw windows offscreen */
@ -331,9 +331,15 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
ModulesSignal(ESIGNAL_EWIN_CHANGE, ewin);
if (reparent)
EoReparent(ewin, EoObj(dsk), x, y);
{
EoReparent(ewin, EoObj(dsk), x, y);
if (flags & MRF_RESIZE)
EoResize(ewin, w, h);
}
else
EoMoveResize(ewin, x, y, w, h);
{
EoMoveResize(ewin, x, y, w, h);
}
configure = 0;
if (Mode.mode == MODE_NONE || resize || Conf.movres.update_while_moving)

View File

@ -425,7 +425,6 @@ MagwinCreate(const char *title, int width, int height)
mw->ewin->o.ghost = 1;
EoSetLayer(mw->ewin, 10);
EwinMoveToDesktop(mw->ewin, EoGetDesk(mw->ewin));
EwinMoveResize(mw->ewin, EoGetX(mw->ewin), EoGetY(mw->ewin), w, h);
mw->ewin->client.event_mask |=

View File

@ -344,7 +344,6 @@ MenuShow(Menu * m, char noshow)
ewin->head = head_num;
EwinMoveToDesktop(ewin, EoGetDesk(ewin));
EwinResize(ewin, ewin->client.w, ewin->client.h);
if (Conf.menus.animate)

View File

@ -692,7 +692,6 @@ static void
PagerShow(Pager * p)
{
EWin *ewin;
int w, h;
if (!Conf_pagers.enable)
return;
@ -719,25 +718,23 @@ PagerShow(Pager * p)
EnterWindowMask | LeaveWindowMask | PointerMotionMask;
ESelectInput(p->win, ewin->client.event_mask);
w = ewin->client.w;
h = ewin->client.h;
EwinMoveToDesktop(ewin, EoGetDesk(ewin));
if (ewin->state.placed)
{
EwinMoveResize(ewin, EoGetX(ewin), EoGetY(ewin), w, h);
EwinMoveResize(ewin, EoGetX(ewin), EoGetY(ewin),
ewin->client.w, ewin->client.h);
}
else
{
/* no snapshots ? first time ? make a row on the bottom left up */
int ax, ay;
int ax, ay, x, y, w, h;
DesksGetAreaSize(&ax, &ay);
w = ((48 * WinGetW(VROOT)) / WinGetH(VROOT)) * ax;
h = 48 * ay;
EwinResize(ewin, w, h); /* Does layout */
EwinMove(ewin, 0, WinGetH(VROOT) -
(DesksGetNumber() - p->dsk->num) * EoGetH(ewin));
x = 0;
y = WinGetH(VROOT) - (DesksGetNumber() - p->dsk->num) * EoGetH(ewin);
EwinMove(ewin, x, y);
}
EwinShow(ewin);