wok diff jwm/stuff/resize-backgound.u @ rev 20700
updated afio (2.5.1 -> 2.5.2)
author | Hans-G?nter Theisgen |
---|---|
date | Tue Feb 05 17:01:36 2019 +0100 (2019-02-05) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/jwm/stuff/resize-backgound.u Tue Feb 05 17:01:36 2019 +0100 1.3 @@ -0,0 +1,63 @@ 1.4 +--- jwm-2.0.1/src/icon.c 1.5 ++++ jwm-2.0.1/src/icon.c 1.6 +@@ -55,3 +55,3 @@ 1.7 + 1.8 +-static ScaledIconNode *GetScaledIcon(IconNode *icon, int width, int height); 1.9 ++static ScaledIconNode *_GetScaledIcon(IconNode *icon, int width, int height); 1.10 + 1.11 +@@ -194,8 +194,26 @@ 1.12 + int ix, iy; 1.13 ++ int nwidth = width, nheight = height; 1.14 + 1.15 + Assert(icon); 1.16 ++ Assert(icon->image); 1.17 + 1.18 +- /* Scale the icon. */ 1.19 +- node = GetScaledIcon(icon, width, height); 1.20 ++ if(nwidth == 0) { 1.21 ++ nwidth = icon->image->width; 1.22 ++ } 1.23 ++ if(nheight == 0) { 1.24 ++ nheight = icon->image->height; 1.25 ++ } 1.26 + 1.27 ++ /* respect ratio if not background */ 1.28 ++ if (x || y) { 1.29 ++ double ratio; 1.30 ++ 1.31 ++ ratio = (double)icon->image->width / icon->image->height; 1.32 ++ nwidth = Min(nwidth, nheight * ratio); 1.33 ++ nheight = Min(nheight, nwidth / ratio); 1.34 ++ nwidth = nheight * ratio; 1.35 ++ } 1.36 ++ 1.37 ++ node = _GetScaledIcon(icon, nwidth, nheight); 1.38 ++ 1.39 + if(node) { 1.40 +@@ -450,3 +468,3 @@ 1.41 + /** Get a scaled icon. */ 1.42 +-ScaledIconNode *GetScaledIcon(IconNode *icon, int rwidth, int rheight) { 1.43 ++ScaledIconNode *_GetScaledIcon(IconNode *icon, int nwidth, int nheight) { 1.44 + 1.45 +@@ -460,4 +478,2 @@ 1.46 + double srcx, srcy; 1.47 +- double ratio; 1.48 +- int nwidth, nheight; 1.49 + int usesMask; 1.50 +@@ -465,16 +481,2 @@ 1.51 + 1.52 +- Assert(icon); 1.53 +- Assert(icon->image); 1.54 +- 1.55 +- if(rwidth == 0) { 1.56 +- rwidth = icon->image->width; 1.57 +- } 1.58 +- if(rheight == 0) { 1.59 +- rheight = icon->image->height; 1.60 +- } 1.61 +- 1.62 +- ratio = (double)icon->image->width / icon->image->height; 1.63 +- nwidth = Min(rwidth, rheight * ratio); 1.64 +- nheight = Min(rheight, nwidth / ratio); 1.65 +- nwidth = nheight * ratio; 1.66 + if(nwidth < 1) {