aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32fns.c
diff options
context:
space:
mode:
authorEli Zaretskii <[email protected]>2006-08-04 11:36:02 +0000
committerEli Zaretskii <[email protected]>2006-08-04 11:36:02 +0000
commitdf70725f7a2437a7c1edc39b4119a30016c84690 (patch)
tree0e4fca8fbfdd8ec70b96542f96240755173edaa0 /src/w32fns.c
parent65c6c6b6ca9b39fc0d06621db620c5b235e7d45f (diff)
(w32_createwindow): Handle -geometry command line option and the geometry
settings in the Registry.
Diffstat (limited to 'src/w32fns.c')
-rw-r--r--src/w32fns.c39
1 files changed, 34 insertions, 5 deletions
diff --git a/src/w32fns.c b/src/w32fns.c
index a3df8de533..4c933f0631 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -2066,7 +2066,8 @@ w32_createwindow (f)
{
HWND hwnd;
RECT rect;
- Lisp_Object top, left;
+ Lisp_Object top = Qunbound;
+ Lisp_Object left = Qunbound;
rect.left = rect.top = 0;
rect.right = FRAME_PIXEL_WIDTH (f);
@@ -2079,13 +2080,41 @@ w32_createwindow (f)
if (!hprevinst)
{
+ Lisp_Object ifa;
+
w32_init_class (hinst);
+
+ /* Handle the -geometry command line option and the geometry
+ settings in the registry. They are decoded and put into
+ initial-frame-alist by w32-win.el:x-handle-geometry. */
+ ifa = Fsymbol_value (intern ("initial-frame-alist"));
+ if (CONSP (ifa))
+ {
+ Lisp_Object lt = Fassq (Qleft, ifa);
+ Lisp_Object tp = Fassq (Qtop, ifa);
+
+ if (!NILP (lt))
+ {
+ lt = XCDR (lt);
+ if (INTEGERP (lt))
+ left = lt;
+ }
+ if (!NILP (tp))
+ {
+ tp = XCDR (tp);
+ if (INTEGERP (tp))
+ top = tp;
+ }
+ }
}
- /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero
- for anything that is not a number and is not Qunbound. */
- left = w32_get_arg (Qnil, Qleft, "left", "Left", RES_TYPE_NUMBER);
- top = w32_get_arg (Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER);
+ if (EQ (left, Qunbound) && EQ (top, Qunbound))
+ {
+ /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero
+ for anything that is not a number and is not Qunbound. */
+ left = w32_get_arg (Qnil, Qleft, "left", "Left", RES_TYPE_NUMBER);
+ top = w32_get_arg (Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER);
+ }
FRAME_W32_WINDOW (f) = hwnd
= CreateWindow (EMACS_CLASS,