[teklib-general] teklib: Sizehints are no longer set if a window has a fixed posi...

Timm S. Mueller tmueller at neoscientists.org
Wed Apr 9 22:00:49 CEST 2008


details:   http://hg.teklib.org/teklib/rev/fd8ff8efd925
changeset: 178:fd8ff8efd925
user:      Timm S. Mueller <tmueller at neoscientists.org>
date:      Wed Apr 09 12:38:50 2008 +0200
description:
Sizehints are no longer set if a window has a fixed position (assuming that it
ought to have a fixed size as well)

diffs (84 lines):

diff -r 9e133a90578e -r fd8ff8efd925 src/display_x11/display_x11_api.c
--- a/src/display_x11/display_x11_api.c	Tue Apr 08 23:41:14 2008 +0200
+++ b/src/display_x11/display_x11_api.c	Wed Apr 09 12:38:50 2008 +0200
@@ -52,7 +52,7 @@ x11_openvisual(TMOD_X11 *mod, struct TVR
 
 		v->winleft = (TINT) TGetTag(tags, TVisual_WinLeft, -1);
 		v->wintop = (TINT) TGetTag(tags, TVisual_WinTop, -1);
-		if (v->winleft > -1 || v->wintop > -1)
+		if (v->winleft >= 0 || v->wintop >= 0)
 		{
 			v->winleft = TMAX(v->winleft, 0);
 			v->wintop = TMAX(v->wintop, 0);
@@ -77,37 +77,40 @@ x11_openvisual(TMOD_X11 *mod, struct TVR
 
 		v->sizehints->flags = 0;
 
-		v->sizehints->min_width = (TINT)
-			TGetTag(tags, TVisual_MinWidth, (TTAG) -1);
-		v->sizehints->min_height = (TINT)
-			TGetTag(tags, TVisual_MinHeight, (TTAG) -1);
-		v->sizehints->max_width = (TINT)
-			TGetTag(tags, TVisual_MaxWidth, (TTAG) -1);
-		v->sizehints->max_height = (TINT)
-			TGetTag(tags, TVisual_MaxHeight, (TTAG) -1);
-
-		if (v->sizehints->max_width > 0)
-			v->winwidth = TMIN(v->winwidth, v->sizehints->max_width);
-		if (v->sizehints->max_height > 0)
-			v->winheight = TMIN(v->winheight, v->sizehints->max_height);
-		if (v->sizehints->min_width > 0)
-			v->winwidth = TMAX(v->winwidth, v->sizehints->min_width);
-		if (v->sizehints->min_height > 0)
-			v->winheight = TMAX(v->winheight, v->sizehints->min_height);
-
-		v->sizehints->min_width =
-			v->sizehints->min_width <= 0 ? 1 : v->sizehints->min_width;
-		v->sizehints->min_height =
-			v->sizehints->min_height <= 0 ? 1 : v->sizehints->min_height;
-		v->sizehints->max_width =
-			v->sizehints->max_width <= 0 ? 1000000 : v->sizehints->max_width;
-		v->sizehints->max_height =
-			v->sizehints->max_height <= 0 ? 1000000 : v->sizehints->max_height;
-
-		/*if (v->sizehints->min_width >= 0 && v->sizehints->min_height >= 0)*/
-			v->sizehints->flags |= PMinSize;
-		/*if (v->sizehints->max_width >= 0 && v->sizehints->max_height >= 0)*/
-			v->sizehints->flags |= PMaxSize;
+		if (v->winleft < 0 || v->wintop < 0)
+		{
+			v->sizehints->min_width = (TINT)
+				TGetTag(tags, TVisual_MinWidth, (TTAG) -1);
+			v->sizehints->min_height = (TINT)
+				TGetTag(tags, TVisual_MinHeight, (TTAG) -1);
+			v->sizehints->max_width = (TINT)
+				TGetTag(tags, TVisual_MaxWidth, (TTAG) -1);
+			v->sizehints->max_height = (TINT)
+				TGetTag(tags, TVisual_MaxHeight, (TTAG) -1);
+
+			if (v->sizehints->max_width > 0)
+				v->winwidth = TMIN(v->winwidth, v->sizehints->max_width);
+			if (v->sizehints->max_height > 0)
+				v->winheight = TMIN(v->winheight, v->sizehints->max_height);
+			if (v->sizehints->min_width > 0)
+				v->winwidth = TMAX(v->winwidth, v->sizehints->min_width);
+			if (v->sizehints->min_height > 0)
+				v->winheight = TMAX(v->winheight, v->sizehints->min_height);
+
+			v->sizehints->min_width =
+				v->sizehints->min_width <= 0 ? 1 : v->sizehints->min_width;
+			v->sizehints->min_height =
+				v->sizehints->min_height <= 0 ? 1 : v->sizehints->min_height;
+			v->sizehints->max_width =
+				v->sizehints->max_width <= 0 ? 1000000 : v->sizehints->max_width;
+			v->sizehints->max_height =
+				v->sizehints->max_height <= 0 ? 1000000 : v->sizehints->max_height;
+
+			/*if (v->sizehints->min_width >= 0 && v->sizehints->min_height >= 0)*/
+				v->sizehints->flags |= PMinSize;
+			/*if (v->sizehints->max_width >= 0 && v->sizehints->max_height >= 0)*/
+				v->sizehints->flags |= PMaxSize;
+		}
 
 		TDBPRINTF(TDB_INFO,("width: %d..%d..%d - height: %d..%d..%d\n",
 			v->sizehints->min_width, v->winwidth, v->sizehints->max_width,


More information about the teklib-general mailing list