summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2004-01-12 00:45:42 +0000
committerKaroly Lorentey <lorentey@elte.hu>2004-01-12 00:45:42 +0000
commit7f19e125070fa016bcfad660febf19f1a84adb76 (patch)
tree0660a518f41bb97cbb5b3e91c32ac12943419dce
parent309990406b2d16da6ad4131c6530d309e44945ec (diff)
downloademacs-7f19e125070fa016bcfad660febf19f1a84adb76.tar.gz
emacs-7f19e125070fa016bcfad660febf19f1a84adb76.tar.bz2
emacs-7f19e125070fa016bcfad660febf19f1a84adb76.zip
Fix initialization of the window-system variable.
lisp/faces.el (x-create-frame-with-faces) (tty-create-frame-with-faces): Don't set the window-system parameter here, it seems to be unreliable. lisp/frame.el (make-frame): Don't forget to return the new frame (d'oh). src/frame.c (Qwindow_system): New symbol. (syms_of_frame): Intern it. (Fmake_terminal_frame): Initialize window-system frame parameter. src/frame.h (Qwindow_system): New declaration. src/xfns.c (Fx_create_frame, x_create_tip_frame): Initialize window-system frame parameter. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-56
-rw-r--r--lisp/faces.el4
-rw-r--r--lisp/frame.el2
-rw-r--r--src/frame.c6
-rw-r--r--src/frame.h2
-rw-r--r--src/xfns.c4
5 files changed, 14 insertions, 4 deletions
diff --git a/lisp/faces.el b/lisp/faces.el
index 4877fd246e0..342ba5b60bd 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1658,7 +1658,7 @@ Value is the new frame created."
(setq parameters (x-handle-named-frame-geometry parameters))
(let ((visibility-spec (assq 'visibility parameters))
(frame-list (frame-list))
- (frame (x-create-frame `((window-system . x) (visibility . nil) . ,parameters)))
+ (frame (x-create-frame `((visibility . nil) . ,parameters)))
success)
(unwind-protect
(progn
@@ -1744,7 +1744,7 @@ Parameters not specified by PARAMETERS are taken from
`default-frame-alist'. If either PARAMETERS or `default-frame-alist'
contains a `reverse' parameter, handle that. Value is the new frame
created."
- (let ((frame (make-terminal-frame `((window-system . nil) . ,parameters)))
+ (let ((frame (make-terminal-frame parameters))
success)
(unwind-protect
(progn
diff --git a/lisp/frame.el b/lisp/frame.el
index 2175bdd8615..f374f838696 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -636,7 +636,7 @@ on `after-make-frame-functions' are run with one arg, the newly created frame."
(unless frame-creation-function
(error "Don't know how to create a frame on window system %s" w))
(run-hooks 'before-make-frame-hook)
- (funcall frame-creation-function parameters)
+ (setq frame (funcall frame-creation-function parameters))
(run-hook-with-args 'after-make-frame-functions frame)
frame))
diff --git a/src/frame.c b/src/frame.c
index ac4f2a5a369..8ffabfa8b89 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -108,6 +108,7 @@ Lisp_Object Qleft_fringe, Qright_fringe;
Lisp_Object Qbuffer_predicate, Qbuffer_list;
Lisp_Object Qtty_color_mode;
Lisp_Object Qtty, Qtty_type;
+Lisp_Object Qwindow_system;
Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
@@ -750,6 +751,7 @@ Note that changing the size of one terminal frame automatically affects all. */
XSETFRAME (frame, f);
Fmodify_frame_parameters (frame, Vdefault_frame_alist);
Fmodify_frame_parameters (frame, parms);
+ Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qnil), Qnil));
/* Make the frame face alist be frame-specific, so that each
frame could change its face definitions independently. */
@@ -4134,7 +4136,9 @@ syms_of_frame ()
staticpro (&Qtty);
Qtty_type = intern ("tty-type");
staticpro (&Qtty_type);
-
+ Qwindow_system = intern ("window-system");
+ staticpro (&Qwindow_system);
+
Qface_set_after_frame_default = intern ("face-set-after-frame-default");
staticpro (&Qface_set_after_frame_default);
diff --git a/src/frame.h b/src/frame.h
index 0b58420b18d..14806b2bc04 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1002,6 +1002,8 @@ extern Lisp_Object Qx_resource_name;
extern Lisp_Object Qleft, Qright, Qtop, Qbox;
extern Lisp_Object Qdisplay;
+extern Lisp_Object Qwindow_system;
+
#ifdef HAVE_WINDOW_SYSTEM
/* The class of this X application. */
diff --git a/src/xfns.c b/src/xfns.c
index fc8ee0af77f..6e51965c248 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3334,6 +3334,8 @@ This function is an internal primitive--use `make-frame' instead. */)
specbind (Qx_resource_name, name);
}
+ Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qx), Qnil));
+
/* Extract the window parameters from the supplied values
that are needed to determine window geometry. */
{
@@ -10210,6 +10212,8 @@ x_create_tip_frame (dpyinfo, parms, text)
Qnil));
}
+ Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qx), Qnil));
+
f->no_split = 1;
UNGCPRO;