APPROVE COMMIT 21.5 RECOMMEND 21.4
Should apply to 21.4 but I haven't actually tested.
This is "safe" in the sense that the builder has to directly specify
the controlling #define, there's no ordinary way to configure it. So
only developers explicitly trying to debug geometry management will
ever run into it.
I haven't found a way to completely test this, as I don't have a
window manager that ever returns XtGeometryAlmost. :-) However, the
Shell dimensions reported are now meaningful and correct.
Based on a suggestion by Francois L'Archeveque.
diff --git a/src/ChangeLog b/src/ChangeLog
index cca5be4..12a7348 100644
--- src/ChangeLog
+++ src/ChangeLog
@@ -0,0 +1,6 @@
+2006-05-08 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * EmacsShell-sub.c (RootGeometryManager):
+ Change garbage to useful messages under DEBUG_GEOMETRY_MANAGEMENT.
+ Based on a suggestion by Francois L'Archeveque.
+
index ed82214..e335a4a 100644
--- src/EmacsShell-sub.c
+++ src/EmacsShell-sub.c
@@ -339,11 +339,16 @@ RootGeometryManager (Widget gw,
result == XtGeometryAlmost ? "XtGeometryAlmost" :
"XtGeometryDone");
if (reply->request_mode & CWWidth)
- printf ("width returned;");
+ printf ("width returned was %d%s",
+ reply->width,
+ reply->request_mode & CWHeight ? "; " : ".\n");
if (reply->request_mode & CWHeight)
- printf ("height returned;");
- printf ("\n");
- printf (" resulting shell size: %d %d\n", reply->width,
reply->height);
+ printf ("height returned was %d.\n", reply->height);
+ /* #### does this also need to depend on the result?
+ With XtGeometryYes there doesn't seem to be a useful reply object. */
+ printf (" resulting shell size: %d %d\n",
+ reply->request_mode & CWWidth ? reply->width : w->core.width,
+ reply->request_mode & CWHeight ? reply->height : w->core.height);
printf ("----------\n");
fflush (stdout);
#endif
--
School of Systems and Information Engineering
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.