On 12/21/06, Vin Shelton <acs@alumni.princeton.edu> wrote:
Ugggh!  This whole thing is pretty ugly!  Here are some observations:

1. This patch:

diff --git a/balloon-help.el b/balloon-help.el
index 1fa53b4..09504c7 100755
--- a/balloon-help.el
+++ b/balloon- help.el
@@ -466,7 +466,7 @@ (defun balloon-help-resize-help-frame ()
        (and (not done) (setq lines (1+ lines))))
       (setq width (/ longest font-width)
            width (if (> longest (* width font-width)) (1+ width) width))
-      (set-frame-size balloon-help-frame (+ 0 width) lines))))
+      (set-frame-size balloon-help-frame (+ 1 width) lines))))

(defun balloon-help-compute-help-frame-y-location ()
   (let* ((device-bottom (device-pixel-height

only works for me on the 2nd balloon-help; the first balloon-help is
still 2 lines high.  As you observed, Robert, there's some difference
in behavior between the first and subsequent invocations.

Even on 21.5? I don't see this there.

2. That extra frame is really hideous.  It appears in both 21.4 and
21.5.  I have a sneaking suspicion this has something to do with the
detached minibuffer code I wrote many years ago.

I lean more towards the "frames under mswindows don't support 'initially-unmapped" myself.  That property is checked in frame-msw.c, but then never actually used.  Trial patch against 21.5 attached. (Is that really the way you're supposed to indent if-statements in gnu-c-mode?  gag).

3. The patch to remove the caption works and I'm leaning towards
applying it for 21.4.  Are there other windows that would be affected?

All popup windows, but the only users I can see offhand are balloon-help and floating-toolbar.  Oh, and dialog boxes, probably (I have those turned off).

Robert

--

2006-12-22    <rpluim@gmail.com>

    * frame-msw.c (mswindows_init_frame_1): Honour 'initially-unmapped.
    (mswindows_init_frame_3): ditto.

pcl-cvs: descending directory src/
Index: frame-msw.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/frame-msw.c,v
retrieving revision 1.59
diff -u -r1.59 frame-msw.c
--- frame-msw.c    2005/11/25 01:42:02    1.59
+++ frame-msw.c    2006/12/22 08:39:03
@@ -151,6 +151,16 @@
 
   /* Pick up relevant properties */
   initially_unmapped = Fplist_get (props, Qinitially_unmapped, Qnil);
+
+  if (!NILP(initially_unmapped))
+    {
+      f->visible = 0;
+    }
+  else
+    {
+      f->visible = 1;
+    }

   name = Fplist_get (props, Qname, Qnil);
 
   popup = Fplist_get (props, Qpopup, Qnil);
@@ -305,7 +315,8 @@
 mswindows_init_frame_3 (struct frame *f)
 {
   /* Don't do this earlier or we get a WM_PAINT before the frame is ready */
-  ShowWindow (FRAME_MSWINDOWS_HANDLE (f), SW_SHOWNORMAL);
+  if (f->visible == 1)
+    ShowWindow (FRAME_MSWINDOWS_HANDLE (f), SW_SHOWNORMAL);
   SetForegroundWindow (FRAME_MSWINDOWS_HANDLE (f));
   DragAcceptFiles (FRAME_MSWINDOWS_HANDLE (f), TRUE);
 }