Fix breakage when size hints specify an aspect ratio (debian bug 527989).
SVN revision: 40607
This commit is contained in:
parent
b0f7f5063c
commit
8ae0ed89f5
24
src/icccm.c
24
src/icccm.c
|
@ -186,23 +186,33 @@ ICCCM_SizeMatch(const EWin * ewin, int wi, int hi, int *pwo, int *pho)
|
||||||
if (Mode.mode == MODE_RESIZE_H)
|
if (Mode.mode == MODE_RESIZE_H)
|
||||||
{
|
{
|
||||||
if (aspect < ewin->icccm.aspect_min)
|
if (aspect < ewin->icccm.aspect_min)
|
||||||
h = (int)((double)w / ewin->icccm.aspect_min);
|
w = (int)((double)h * ewin->icccm.aspect_min);
|
||||||
if (aspect > ewin->icccm.aspect_max)
|
else if (aspect > ewin->icccm.aspect_max)
|
||||||
h = (int)((double)w / ewin->icccm.aspect_max);
|
w = (int)((double)h * ewin->icccm.aspect_max);
|
||||||
}
|
}
|
||||||
else if (Mode.mode == MODE_RESIZE_V)
|
else if (Mode.mode == MODE_RESIZE_V)
|
||||||
{
|
{
|
||||||
if (aspect < ewin->icccm.aspect_min)
|
if (aspect < ewin->icccm.aspect_min)
|
||||||
w = (int)((double)h * ewin->icccm.aspect_min);
|
h = (int)((double)w / ewin->icccm.aspect_min);
|
||||||
if (aspect > ewin->icccm.aspect_max)
|
else if (aspect > ewin->icccm.aspect_max)
|
||||||
w = (int)((double)h * ewin->icccm.aspect_max);
|
h = (int)((double)w / ewin->icccm.aspect_max);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (aspect < ewin->icccm.aspect_min)
|
if (aspect < ewin->icccm.aspect_min)
|
||||||
|
{
|
||||||
|
if (ewin->icccm.aspect_min >= 1.)
|
||||||
|
h = (int)((double)w / ewin->icccm.aspect_min);
|
||||||
|
else
|
||||||
w = (int)((double)h * ewin->icccm.aspect_min);
|
w = (int)((double)h * ewin->icccm.aspect_min);
|
||||||
if (aspect > ewin->icccm.aspect_max)
|
}
|
||||||
|
else if (aspect > ewin->icccm.aspect_max)
|
||||||
|
{
|
||||||
|
if (ewin->icccm.aspect_max >= 1.)
|
||||||
h = (int)((double)w / ewin->icccm.aspect_max);
|
h = (int)((double)w / ewin->icccm.aspect_max);
|
||||||
|
else
|
||||||
|
w = (int)((double)h * ewin->icccm.aspect_max);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
i = w / ewin->icccm.w_inc;
|
i = w / ewin->icccm.w_inc;
|
||||||
j = h / ewin->icccm.h_inc;
|
j = h / ewin->icccm.h_inc;
|
||||||
|
|
Loading…
Reference in New Issue