emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: startup frame position


From: Ralf Angeli
Subject: Re: startup frame position
Date: Mon, 12 Jun 2006 23:25:46 +0200

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

>> From: Ralf Angeli <address@hidden>
>> 
>> 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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]