* Eli Zaretskii (2006-06-12) writes:

>> From: Ralf Angeli <[EMAIL PROTECTED]>
>> 
>> I suspect that `x_set_offset' is called somewhere with values of 0
>> for both offsets
>
> Correct.
>
>> but I could not find the respective call.
>
> You could find that call with a debugger, by setting a breakpoint in
> x_set_offset.

It turned out that `x_set_offset' was called with `f->left_pos' and
`f->top_pos' as arguments which have to be updated after the frame was
created.  The following patch works for me:

Index: w32fns.c
===================================================================
RCS file: /sources/emacs/emacs/src/w32fns.c,v
retrieving revision 1.270
diff -c -r1.270 w32fns.c
--- w32fns.c	2 Jun 2006 21:20:44 -0000	1.270
+++ w32fns.c	12 Jun 2006 21:17:34 -0000
@@ -2085,8 +2085,8 @@
     = CreateWindow (EMACS_CLASS,
 		    f->namebuf,
 		    f->output_data.w32->dwStyle | WS_CLIPCHILDREN,
-		    f->left_pos,
-		    f->top_pos,
+		    CW_USEDEFAULT,
+		    SW_SHOW,
 		    rect.right - rect.left,
 		    rect.bottom - rect.top,
 		    NULL,
@@ -2106,7 +2106,12 @@
       DragAcceptFiles (hwnd, TRUE);
 
       /* Do this to discard the default setting specified by our parent. */
-      ShowWindow (hwnd, SW_HIDE);
+      ShowWindow (hwnd, SW_SHOW);
+
+      /* Update frame positions. */
+      GetWindowRect (hwnd, &rect);
+      f->left_pos = rect.left;
+      f->top_pos = rect.top;
     }
 }
 
An issue left is that the bottom of the frame may be covered by the
task bar if it is placed too low on the screen.  Does anybody know why
`CreateWindow' or the other functions involved do not take care of
this?

-- 
Ralf
_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to