1diff -urN xlife-6.7/defs.h xlife-6.7.1/defs.h 2--- xlife-6.7/defs.h 2013-05-08 08:59:47.000000000 +0400 3+++ xlife-6.7.1/defs.h 2013-06-16 02:25:05.000000000 +0400 4@@ -23,7 +23,7 @@ 5 /* 6 A lot of modifications were added at 2001, 2011-13 by Vladimir Lidovski vol.litwr@gmail.com 7 (C) This version of XLife may be used under the same conditions as mentioned above 8-$Id: defs.h 195 2013-05-08 04:59:47Z micro $ 9+$Id: defs.h 212 2013-06-15 22:25:05Z micro $ 10 */ 11 12 #ifdef __GNUCC__ 13@@ -54,6 +54,9 @@ 14 #define VFREQ 0 15 #endif 16 17+#define MAXSCALE 6 /* 1:64 */ 18+#define MINSCALE -10 /* 1024:1 */ 19+ 20 #define BORDERWIDTH 2 21 22 #define INPUTXOFF 2 23diff -urN xlife-6.7/file.c xlife-6.7.1/file.c 24--- xlife-6.7/file.c 2013-06-10 19:56:00.000000000 +0400 25+++ xlife-6.7.1/file.c 2013-06-16 02:44:02.000000000 +0400 26@@ -28,7 +28,7 @@ 27 /* 28 A lot of modifications were added at 2001, 2011-13 by Vladimir Lidovski vol.litwr@gmail.com 29 (C) This version of XLife may be used under the same conditions as mentioned above 30-$Id: file.c 210 2013-06-10 15:56:00Z micro $ 31+$Id: file.c 213 2013-06-15 22:44:02Z micro $ 32 */ 33 34 /* 35@@ -1066,6 +1066,9 @@ 36 int loadfile_req(char *fn) { 37 char tmp[PATNAMESIZ], loaddir[PATNAMESIZ]; 38 LoadReq *loadqueue = 0; 39+#ifdef MICROSOFT 40+ int scale_save = scale; 41+#endif 42 if (!stashed[0]) 43 strcpy(stashed, fn); 44 do_expose_lifew(); 45@@ -1090,7 +1093,7 @@ 46 cellheight = SCALE(height - INPUTH - BORDERWIDTH*3); 47 if (cellwidth >= tentative.xmax - tentative.xmin 48 && cellheight >= tentative.ymax - tentative.ymin 49- || scale <= -10) 50+ || scale <= MINSCALE) 51 break; 52 --scale; 53 loadx = cellwidth/2 + xpos; 54@@ -1099,7 +1102,8 @@ 55 setscale(scale); 56 } 57 #ifdef MICROSOFT 58- if (tentative.tilecount) XClearWindow(disp, lifew); 59+ if (scale_save != scale) 60+ XClearWindow(disp, lifew); 61 #endif 62 showstates(); 63 showrules(); 64