Clear maximized state on resize.

SVN revision: 21608
This commit is contained in:
Kim Woelders 2006-03-30 22:35:20 +00:00
parent b0cb96011d
commit 08e7a93c29
3 changed files with 14 additions and 0 deletions

View File

@ -475,6 +475,17 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
EMoveResizeWindow(_EwinGetClientWin(ewin), 0, 0, ewin->client.w,
ewin->client.h);
EwinBorderCalcSizes(ewin, 0);
/* Clear maximized state on resize */
if (!ewin->state.maximizing)
{
if (ewin->state.maximized_horz || ewin->state.maximized_vert)
{
ewin->state.maximized_horz = 0;
ewin->state.maximized_vert = 0;
HintsSetWindowState(ewin);
}
}
}
EwinPropagateShapes(ewin);

View File

@ -110,6 +110,7 @@ struct _ewin
unsigned showingdesk:1; /* Iconified by show desktop */
unsigned animated:1;
unsigned show_coords:1;
unsigned maximizing:1;
/* Derived state flags. Change only in EwinStateUpdate() */
unsigned no_border:1;

View File

@ -171,7 +171,9 @@ MaxSizeHV(EWin * ewin, const char *resize_type, int direction)
ewin->ly = EoGetY(ewin);
ewin->lw = ewin->client.w;
ewin->lh = ewin->client.h;
ewin->state.maximizing = 1;
EwinMoveResize(ewin, x, y, w, h);
ewin->state.maximizing = 0;
done:
HintsSetWindowState(ewin);
}