aboutsummaryrefslogtreecommitdiffstats
path: root/lang/modula-3-lib
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>1997-07-29 05:49:54 +0800
committerjdp <jdp@FreeBSD.org>1997-07-29 05:49:54 +0800
commit776bb64a6cc0ad3f0f7fe5cf30f7f697c0c649df (patch)
treee96c324fef4c7fed1acd2757f48c1aabcf10dfed /lang/modula-3-lib
parent7e4152e5f74bac89f884e9821d155d66a608b6c4 (diff)
downloadfreebsd-ports-gnome-776bb64a6cc0ad3f0f7fe5cf30f7f697c0c649df.tar.gz
freebsd-ports-gnome-776bb64a6cc0ad3f0f7fe5cf30f7f697c0c649df.tar.zst
freebsd-ports-gnome-776bb64a6cc0ad3f0f7fe5cf30f7f697c0c649df.zip
Add a patch to fix an incorrectly set WM_NORMAL_HINTS property for
X11 applications. The bug caused some minor problems in window positioning and resizing.
Diffstat (limited to 'lang/modula-3-lib')
-rw-r--r--lang/modula-3-lib/files/patch-br62
1 files changed, 62 insertions, 0 deletions
diff --git a/lang/modula-3-lib/files/patch-br b/lang/modula-3-lib/files/patch-br
new file mode 100644
index 000000000000..75872c65803b
--- /dev/null
+++ b/lang/modula-3-lib/files/patch-br
@@ -0,0 +1,62 @@
+This fixes a couple of problems in the setting of the WM_NORMAL_HINTS
+window manager property.
+
+The flags were set indicating that the width, height, x, and y fields
+were valid, but these fields in fact contained garbage. Since the
+fields are obsolete now (starting with X11R5), I simply removed the
+code that set the corresponding flags.
+
+Also, the base_width, base_height, width_inc, and height_inc fields
+were not set. This caused the window manager to display incorrect
+values for window size while resizing it.
+
+I have sent this patch to DEC SRC.
+
+Index: m3/ui/src/xvbt/XClient.m3
+--- XClient.m3.orig Mon Mar 6 17:44:15 1995
++++ XClient.m3 Mon Jul 28 13:45:30 1997
+@@ -520,7 +520,7 @@
+ BEGIN
+ ur.sh := sh;
+ ur.sv := sv;
+- SetSizeHints(xSizeHints, width, height, sh, sv, st, userPosition);
++ SetSizeHints(xSizeHints, width, height, sh, sv, st);
+ END;
+ xwa.border_pixel := 0;
+ xwa.bit_gravity := X.NorthWestGravity;
+@@ -1080,19 +1080,17 @@
+ PROCEDURE SetSizeHints (VAR xhints : X.XSizeHints;
+ VAR width, height: CARDINAL;
+ READONLY sh, sv : VBT.SizeRange;
+- st : XScreenType.T;
+- userPosition : BOOLEAN ) =
++ st : XScreenType.T ) =
+ BEGIN
+ IF sv.hi < VBT.DefaultShape.hi OR sh.hi < VBT.DefaultShape.hi THEN
+- xhints.flags := X.PMinSize + X.PMaxSize
++ xhints.flags := X.PMinSize + X.PMaxSize + X.PResizeInc + X.PBaseSize
+ ELSE
+- xhints.flags := X.PMinSize
+- END;
+- IF userPosition THEN
+- INC(xhints.flags, X.USPosition + X.USSize)
+- ELSE
+- INC(xhints.flags, X.PPosition + X.PSize)
++ xhints.flags := X.PMinSize + X.PResizeInc + X.PBaseSize
+ END;
++ xhints.base_width := 0;
++ xhints.base_height := 0;
++ xhints.width_inc := 1;
++ xhints.height_inc := 1;
+ xhints.min_width := sh.lo;
+ xhints.max_width :=
+ MAX(MIN(sh.hi - 1, Rect.HorSize(st.rootDom)), sh.lo);
+@@ -1125,7 +1123,7 @@
+ sh := s[Axis.T.Hor];
+ sv := s[Axis.T.Ver];
+ BEGIN
+- SetSizeHints(xhints, width, height, sh, sv, st, ur.userPosition);
++ SetSizeHints(xhints, width, height, sh, sv, st);
+ TRY
+ Enter(v);
+ TRY