annotate src/frame.c @ 83429:ec395f552d45

Merged from miles@gnu.org--gnu-2005 (patch 681) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-681 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-469
author Karoly Lorentey <lorentey@elte.hu>
date Thu, 29 Dec 2005 04:46:59 +0000
parents 2afc49c9f0c0
children 76396de7f50a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1 /* Generic frame functions.
64770
a0d1312ede66 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64713
diff changeset
2 Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003,
a0d1312ede66 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64713
diff changeset
3 2004, 2005 Free Software Foundation, Inc.
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 GNU Emacs is free software; you can redistribute it and/or modify
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
9 the Free Software Foundation; either version 2, or (at your option)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 any later version.
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 along with GNU Emacs; see the file COPYING. If not, write to
64084
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63698
diff changeset
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63698
diff changeset
20 Boston, MA 02110-1301, USA. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
22 #include <config.h>
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
23
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
24 #include <stdio.h>
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
25 #include "lisp.h"
17032
814257735e7d Include "charset.h"
Karl Heuer <kwzh@gnu.org>
parents: 16588
diff changeset
26 #include "charset.h"
21825
697991d2a2c4 Conditionally include xterm.h using HAVE_X_WINDOWS.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21524
diff changeset
27 #ifdef HAVE_X_WINDOWS
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21359
diff changeset
28 #include "xterm.h"
17032
814257735e7d Include "charset.h"
Karl Heuer <kwzh@gnu.org>
parents: 16588
diff changeset
29 #endif
27633
ab6c81c6edf8 [WINDOWSNT]: Include w32term.h.
Andrew Innes <andrewi@gnu.org>
parents: 27575
diff changeset
30 #ifdef WINDOWSNT
ab6c81c6edf8 [WINDOWSNT]: Include w32term.h.
Andrew Innes <andrewi@gnu.org>
parents: 27575
diff changeset
31 #include "w32term.h"
ab6c81c6edf8 [WINDOWSNT]: Include w32term.h.
Andrew Innes <andrewi@gnu.org>
parents: 27575
diff changeset
32 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 43717
diff changeset
33 #ifdef MAC_OS
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents: 32545
diff changeset
34 #include "macterm.h"
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents: 32545
diff changeset
35 #endif
31102
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
36 #include "buffer.h"
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
37 /* These help us bind and responding to switch-frame events. */
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
38 #include "commands.h"
6a0caa788013 Include keyboard.h before frame.h.
Andrew Innes <andrewi@gnu.org>
parents: 29995
diff changeset
39 #include "keyboard.h"
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
40 #include "frame.h"
23515
1e52542fb338 Include frame.h before fontset.h.
Kenichi Handa <handa@m17n.org>
parents: 22188
diff changeset
41 #ifdef HAVE_WINDOW_SYSTEM
1e52542fb338 Include frame.h before fontset.h.
Kenichi Handa <handa@m17n.org>
parents: 22188
diff changeset
42 #include "fontset.h"
1e52542fb338 Include frame.h before fontset.h.
Kenichi Handa <handa@m17n.org>
parents: 22188
diff changeset
43 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
44 #include "blockinput.h"
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
45 #include "termchar.h"
5392
d8d5844c3ba6 Always include termhooks.h.
Richard M. Stallman <rms@gnu.org>
parents: 5231
diff changeset
46 #include "termhooks.h"
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21359
diff changeset
47 #include "dispextern.h"
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
48 #include "window.h"
9572
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9309
diff changeset
49 #ifdef MSDOS
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9309
diff changeset
50 #include "msdos.h"
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
51 #include "dosfns.h"
9572
b36d5e88cccc *** empty log message ***
Morten Welinder <terra@diku.dk>
parents: 9309
diff changeset
52 #endif
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 714
diff changeset
53
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
54
50373
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
55 #ifdef HAVE_WINDOW_SYSTEM
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
56
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
57 /* The name we're using in resource queries. Most often "emacs". */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
58
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
59 Lisp_Object Vx_resource_name;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
60
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
61 /* The application class we're using in resource queries.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
62 Normally "Emacs". */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
63
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
64 Lisp_Object Vx_resource_class;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
65
50373
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
66 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
67
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
68 Lisp_Object Qframep, Qframe_live_p;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
69 Lisp_Object Qicon, Qmodeline;
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
70 Lisp_Object Qonly;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
71 Lisp_Object Qx, Qw32, Qmac, Qpc;
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
72 Lisp_Object Qvisible;
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
73 Lisp_Object Qdisplay_type;
31448
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
74 Lisp_Object Qbackground_mode;
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
75 Lisp_Object Qinhibit_default_face_x_resources;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
76
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
77 Lisp_Object Qx_frame_parameter;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
78 Lisp_Object Qx_resource_name;
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
79 Lisp_Object Qdevice;
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
80 Lisp_Object Qdisplay_live_p;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
81
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
82 /* Frame parameters (set or reported). */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
83
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
84 Lisp_Object Qauto_raise, Qauto_lower;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
85 Lisp_Object Qborder_color, Qborder_width;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
86 Lisp_Object Qcursor_color, Qcursor_type;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
87 Lisp_Object Qgeometry; /* Not used */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
88 Lisp_Object Qheight, Qwidth;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
89 Lisp_Object Qleft, Qright;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
90 Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
91 Lisp_Object Qinternal_border_width;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
92 Lisp_Object Qmouse_color;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
93 Lisp_Object Qminibuffer;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
94 Lisp_Object Qscroll_bar_width, Qvertical_scroll_bars;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
95 Lisp_Object Qvisibility;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
96 Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
97 Lisp_Object Qscreen_gamma;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
98 Lisp_Object Qline_spacing;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
99 Lisp_Object Quser_position, Quser_size;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
100 Lisp_Object Qwait_for_wm;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
101 Lisp_Object Qwindow_id;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
102 #ifdef HAVE_X_WINDOWS
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
103 Lisp_Object Qouter_window_id;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
104 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
105 Lisp_Object Qparent_id;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
106 Lisp_Object Qtitle, Qname;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
107 Lisp_Object Qunsplittable;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
108 Lisp_Object Qmenu_bar_lines, Qtool_bar_lines;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
109 Lisp_Object Qleft_fringe, Qright_fringe;
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
110 Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
42743
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
111 Lisp_Object Qtty_color_mode;
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
112 Lisp_Object Qtty, Qtty_type;
83016
1d7467694692 Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 83009
diff changeset
113 Lisp_Object Qwindow_system;
83427
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
114 Lisp_Object Qenvironment;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
116 Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
117
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
118 Lisp_Object Qface_set_after_frame_default;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
119
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
120 Lisp_Object Vterminal_frame;
13522
6a97ea1245b5 (syms_of_frame_1): Set up Vdefault_frame_alist here.
Richard M. Stallman <rms@gnu.org>
parents: 13498
diff changeset
121 Lisp_Object Vdefault_frame_alist;
52557
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
122 Lisp_Object Vdefault_frame_scroll_bars;
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
123 Lisp_Object Vmouse_position_function;
43366
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
124 Lisp_Object Vmouse_highlight;
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
125 Lisp_Object Vdelete_frame_functions;
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
126
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
127 static void
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
128 set_menu_bar_lines_1 (window, n)
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
129 Lisp_Object window;
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
130 int n;
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
131 {
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
132 struct window *w = XWINDOW (window);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
133
13498
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
134 XSETFASTINT (w->last_modified, 0);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
135 XSETFASTINT (w->top_line, XFASTINT (w->top_line) + n);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
136 XSETFASTINT (w->total_lines, XFASTINT (w->total_lines) - n);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
137
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
138 if (INTEGERP (w->orig_top_line))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
139 XSETFASTINT (w->orig_top_line, XFASTINT (w->orig_top_line) + n);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
140 if (INTEGERP (w->orig_total_lines))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
141 XSETFASTINT (w->orig_total_lines, XFASTINT (w->orig_total_lines) - n);
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
142
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
143 /* Handle just the top child in a vertical split. */
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
144 if (!NILP (w->vchild))
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
145 set_menu_bar_lines_1 (w->vchild, n);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
146
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
147 /* Adjust all children in a horizontal split. */
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
148 for (window = w->hchild; !NILP (window); window = w->next)
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
149 {
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
150 w = XWINDOW (window);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
151 set_menu_bar_lines_1 (window, n);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
152 }
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
153 }
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
154
20038
bb460edc7187 (set_menu_bar_lines): Make the function external instead
Eli Zaretskii <eliz@gnu.org>
parents: 19532
diff changeset
155 void
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
156 set_menu_bar_lines (f, value, oldval)
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
157 struct frame *f;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
158 Lisp_Object value, oldval;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
159 {
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
160 int nlines;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
161 int olines = FRAME_MENU_BAR_LINES (f);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
162
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
163 /* Right now, menu bars don't work properly in minibuf-only frames;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
164 most of the commands try to apply themselves to the minibuffer
16051
ccf489f8596e Removed support for !MULTI_FRAME.
Karl Heuer <kwzh@gnu.org>
parents: 15696
diff changeset
165 frame itself, and get an error because you can't switch buffers
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
166 in or split the minibuffer window. */
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
167 if (FRAME_MINIBUF_ONLY_P (f))
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
168 return;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
169
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
170 if (INTEGERP (value))
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
171 nlines = XINT (value);
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
172 else
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
173 nlines = 0;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
174
13498
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
175 if (nlines != olines)
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
176 {
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
177 windows_or_buffers_changed++;
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
178 FRAME_WINDOW_SIZES_CHANGED (f) = 1;
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
179 FRAME_MENU_BAR_LINES (f) = nlines;
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
180 set_menu_bar_lines_1 (f->root_window, nlines - olines);
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
181 adjust_glyphs (f);
13498
c10046894834 (set_menu_bar_lines): Record the fact that the window configuration changes.
Richard M. Stallman <rms@gnu.org>
parents: 13412
diff changeset
182 }
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
183 }
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
184
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
185 Lisp_Object Vemacs_iconified;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
186 Lisp_Object Vframe_list;
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
187
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 extern Lisp_Object Vminibuffer_list;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 extern Lisp_Object get_minibuffer ();
5172
9aa201005b16 (Fhandle_switch_frame, Fredirect_frame_focus): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 5105
diff changeset
190 extern Lisp_Object Fhandle_switch_frame ();
9aa201005b16 (Fhandle_switch_frame, Fredirect_frame_focus): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 5105
diff changeset
191 extern Lisp_Object Fredirect_frame_focus ();
12005
4a722a97c8d3 Declare x_get_focus_frame.
Karl Heuer <kwzh@gnu.org>
parents: 11906
diff changeset
192 extern Lisp_Object x_get_focus_frame ();
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
194 DEFUN ("framep", Fframep, Sframep, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
195 doc: /* Return non-nil if OBJECT is a frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
196 Value is t for a termcap frame (a character-only terminal),
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
197 `x' for an Emacs frame that is really an X window,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
198 `w32' for an Emacs frame that is a window on MS-Windows display,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
199 `mac' for an Emacs frame on a Macintosh display,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
200 `pc' for a direct-write MS-DOS frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
201 See also `frame-live-p'. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
202 (object)
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
203 Lisp_Object object;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
204 {
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
205 if (!FRAMEP (object))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
206 return Qnil;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
207 switch (XFRAME (object)->output_method)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
208 {
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
209 case output_initial: /* The initial frame is like a termcap frame. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 case output_termcap:
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211 return Qt;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212 case output_x_window:
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
213 return Qx;
16588
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16568
diff changeset
214 case output_w32:
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16568
diff changeset
215 return Qw32;
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
216 case output_msdos_raw:
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
217 return Qpc;
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
218 case output_mac:
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
219 return Qmac;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
220 default:
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
221 abort ();
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
222 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
223 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
224
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
225 DEFUN ("frame-live-p", Fframe_live_p, Sframe_live_p, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
226 doc: /* Return non-nil if OBJECT is a frame which has not been deleted.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
227 Value is nil if OBJECT is not a live frame. If object is a live
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
228 frame, the return value indicates what sort of output device it is
41239
e44a82a4871e (Fframe_live_p): Doc fix.
Pavel Janík <Pavel@Janik.cz>
parents: 40656
diff changeset
229 displayed on. See the documentation of `framep' for possible
40568
c73c1890d989 (Fframe_live_p): Doc fix.
Pavel Janík <Pavel@Janik.cz>
parents: 40319
diff changeset
230 return values. */)
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
231 (object)
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
232 Lisp_Object object;
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
233 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
234 return ((FRAMEP (object)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
235 && FRAME_LIVE_P (XFRAME (object)))
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
236 ? Fframep (object)
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
237 : Qnil);
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
238 }
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
239
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
240 DEFUN ("window-system", Fwindow_system, Swindow_system, 0, 1, 0,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
241 doc: /* The name of the window system that FRAME is displaying through.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
242 The value is a symbol---for instance, 'x' for X windows.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
243 The value is nil if Emacs is using a text-only terminal.
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
244
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
245 FRAME defaults to the currently selected frame. */)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
246 (frame)
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
247 Lisp_Object frame;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
248 {
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
249 Lisp_Object type;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
250 if (NILP (frame))
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
251 frame = selected_frame;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
252
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
253 type = Fframep (frame);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
254
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
255 if (NILP (type))
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
256 wrong_type_argument (Qframep, frame);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
257
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
258 if (EQ (type, Qt))
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
259 return Qnil;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
260 else
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
261 return type;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
262 }
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
263
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
264 struct frame *
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
265 make_frame (mini_p)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266 int mini_p;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
267 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
268 Lisp_Object frame;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
269 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
270 register Lisp_Object root_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
271 register Lisp_Object mini_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
272
36433
20b42ba5a623 (make_frame): Use allocate_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 35817
diff changeset
273 f = allocate_frame ();
9972
92b33538b36a (make_frame): Use allocate_vectorlike and VECSIZE.
Karl Heuer <kwzh@gnu.org>
parents: 9901
diff changeset
274 XSETFRAME (frame, f);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
275
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
276 f->desired_matrix = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
277 f->current_matrix = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
278 f->desired_pool = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
279 f->current_pool = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
280 f->glyphs_initialized_p = 0;
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
281 f->decode_mode_spec_buffer = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
282 f->visible = 0;
1652
93497cd89204 * frame.c (make_frame): Initialize async_visible and
Jim Blandy <jimb@redhat.com>
parents: 1514
diff changeset
283 f->async_visible = 0;
12667
a3466dad7d6d Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents: 12630
diff changeset
284 f->output_data.nothing = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
285 f->iconified = 0;
1652
93497cd89204 * frame.c (make_frame): Initialize async_visible and
Jim Blandy <jimb@redhat.com>
parents: 1514
diff changeset
286 f->async_iconified = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
287 f->wants_modeline = 1;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
288 f->auto_raise = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
289 f->auto_lower = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
290 f->no_split = 0;
27725
fb13a4706619 (make_frame): Set frame initiallly to `garbaged'.
Gerd Moellmann <gerd@gnu.org>
parents: 27633
diff changeset
291 f->garbaged = 1;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
292 f->has_minibuffer = mini_p;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
293 f->focus_frame = Qnil;
1006
a13ee72d74a2 * frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents: 987
diff changeset
294 f->explicit_name = 0;
1989
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
295 f->can_have_scroll_bars = 0;
16263
a369af16e836 (make_frame): Switch from boolean `has_vertical_scrollbars' integer to
Richard M. Stallman <rms@gnu.org>
parents: 16184
diff changeset
296 f->vertical_scroll_bar_type = vertical_scroll_bar_none;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
297 f->param_alist = Qnil;
1989
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
298 f->scroll_bars = Qnil;
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
299 f->condemned_scroll_bars = Qnil;
2417
8c07933beed9 (make_frame): Init face_alist field.
Richard M. Stallman <rms@gnu.org>
parents: 2298
diff changeset
300 f->face_alist = Qnil;
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
301 f->face_cache = NULL;
6130
d4e5878462cb (make_frame): Init menu_bar_items field to 0.
Richard M. Stallman <rms@gnu.org>
parents: 6054
diff changeset
302 f->menu_bar_items = Qnil;
7095
098b87bde5a7 (make_frame): Initialize fields menu_bar_vector and menu_bar_items_used.
Richard M. Stallman <rms@gnu.org>
parents: 7055
diff changeset
303 f->menu_bar_vector = Qnil;
098b87bde5a7 (make_frame): Initialize fields menu_bar_vector and menu_bar_items_used.
Richard M. Stallman <rms@gnu.org>
parents: 7055
diff changeset
304 f->menu_bar_items_used = 0;
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
305 f->buffer_predicate = Qnil;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
306 f->buffer_list = Qnil;
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
307 f->buried_buffer_list = Qnil;
14303
48e3ee5005cd (make_frame): Initialize title parameter to Qnil.
Karl Heuer <kwzh@gnu.org>
parents: 14223
diff changeset
308 f->namebuf = 0;
14223
596bb10704dd (make_frame): Initialize frame title field to nil.
Erik Naggum <erik@naggum.no>
parents: 14217
diff changeset
309 f->title = Qnil;
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
310 f->menu_bar_window = Qnil;
25544
693ca9ba497a Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents: 25523
diff changeset
311 f->tool_bar_window = Qnil;
33760
22dc6e2e7410 (make_frame): Change initialization of tool bar
Gerd Moellmann <gerd@gnu.org>
parents: 33512
diff changeset
312 f->tool_bar_items = Qnil;
25544
693ca9ba497a Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents: 25523
diff changeset
313 f->desired_tool_bar_string = f->current_tool_bar_string = Qnil;
33760
22dc6e2e7410 (make_frame): Change initialization of tool bar
Gerd Moellmann <gerd@gnu.org>
parents: 33512
diff changeset
314 f->n_tool_bar_items = 0;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
315 f->left_fringe_width = f->right_fringe_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
316 f->fringe_cols = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
317 f->scroll_bar_actual_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
318 f->border_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
319 f->internal_border_width = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
320 f->column_width = 1; /* !FRAME_WINDOW_P value */
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
321 f->line_height = 1; /* !FRAME_WINDOW_P value */
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
322 f->x_pixels_diff = f->y_pixels_diff = 0;
51225
695efa86354b * frame.c (make_frame): Condition want_fullscreen with
Jan Djärv <jan.h.d@swipnet.se>
parents: 51194
diff changeset
323 #ifdef HAVE_WINDOW_SYSTEM
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
324 f->want_fullscreen = FULLSCREEN_NONE;
51225
695efa86354b * frame.c (make_frame): Condition want_fullscreen with
Jan Djärv <jan.h.d@swipnet.se>
parents: 51194
diff changeset
325 #endif
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
326 f->size_hint_flags = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
327 f->win_gravity = 0;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
329 root_window = make_window ();
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330 if (mini_p)
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
331 {
987
afb21e974ed2 * frame.c (make_frame): Stop passing zero to make_window; it's not
Jim Blandy <jimb@redhat.com>
parents: 965
diff changeset
332 mini_window = make_window ();
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 XWINDOW (root_window)->next = mini_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334 XWINDOW (mini_window)->prev = root_window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
335 XWINDOW (mini_window)->mini_p = Qt;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
336 XWINDOW (mini_window)->frame = frame;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
337 f->minibuffer_window = mini_window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 else
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
341 mini_window = Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
342 XWINDOW (root_window)->next = Qnil;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
343 f->minibuffer_window = Qnil;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
344 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
345
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
346 XWINDOW (root_window)->frame = frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
347
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
348 /* 10 is arbitrary,
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
349 just so that there is "something there."
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
350 Correct size will be set up later with change_frame_size. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
351
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
352 SET_FRAME_COLS (f, 10);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
353 FRAME_LINES (f) = 10;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
354
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
355 XSETFASTINT (XWINDOW (root_window)->total_cols, 10);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
356 XSETFASTINT (XWINDOW (root_window)->total_lines, (mini_p ? 9 : 10));
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 if (mini_p)
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
359 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
360 XSETFASTINT (XWINDOW (mini_window)->total_cols, 10);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
361 XSETFASTINT (XWINDOW (mini_window)->top_line, 9);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
362 XSETFASTINT (XWINDOW (mini_window)->total_lines, 1);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
363 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
364
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
365 /* Choose a buffer for the frame's root window. */
386
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
366 {
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
367 Lisp_Object buf;
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
368
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
369 XWINDOW (root_window)->buffer = Qt;
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
370 buf = Fcurrent_buffer ();
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
371 /* If buf is a 'hidden' buffer (i.e. one whose name starts with
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
372 a space), try to find another one. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
373 if (SREF (Fbuffer_name (buf), 0) == ' ')
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
374 buf = Fother_buffer (buf, Qnil, Qnil);
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
375
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
376 /* Use set_window_buffer, not Fset_window_buffer, and don't let
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
377 hooks be run by it. The reason is that the whole frame/window
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
378 arrangement is not yet fully intialized at this point. Windows
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
379 don't have the right size, glyph matrices aren't initialized
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
380 etc. Running Lisp functions at this point surely ends in a
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
381 SEGV. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
382 set_window_buffer (root_window, buf, 0, 0);
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
383 f->buffer_list = Fcons (buf, Qnil);
386
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
384 }
6acd2a203aa8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 363
diff changeset
385
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386 if (mini_p)
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
387 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
388 XWINDOW (mini_window)->buffer = Qt;
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
389 set_window_buffer (mini_window,
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
390 (NILP (Vminibuffer_list)
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
391 ? get_minibuffer (0)
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
392 : Fcar (Vminibuffer_list)),
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
393 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
395
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
396 f->root_window = root_window;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
397 f->selected_window = root_window;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
398 /* Make sure this window seems more recently used than
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
399 a newly-created, never-selected window. */
58265
491080266027 Avoid side-effects inside XSETFASTINT's arguments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57971
diff changeset
400 ++window_select_count;
491080266027 Avoid side-effects inside XSETFASTINT's arguments.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 57971
diff changeset
401 XSETFASTINT (XWINDOW (f->selected_window)->use_time, window_select_count);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
402
51665
c1f65dfc56eb Fix some of the font/face problems.
Jan Djärv <jan.h.d@swipnet.se>
parents: 51225
diff changeset
403 f->default_face_done_p = 0;
c1f65dfc56eb Fix some of the font/face problems.
Jan Djärv <jan.h.d@swipnet.se>
parents: 51225
diff changeset
404
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
405 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
406 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
407
21359
f66e706fc9d6 (make_frame_without_minibuffer): Conditionalize on HAVE_WINDOW_SYSTEM.
Richard M. Stallman <rms@gnu.org>
parents: 21244
diff changeset
408 #ifdef HAVE_WINDOW_SYSTEM
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
409 /* Make a frame using a separate minibuffer window on another frame.
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410 MINI_WINDOW is the minibuffer window to use. nil means use the
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
411 default (the global minibuffer). */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
412
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
413 struct frame *
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
414 make_frame_without_minibuffer (mini_window, kb, display)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
415 register Lisp_Object mini_window;
11775
fe7852953b75 (make_frame_without_minibuffer): New arg KB.
Karl Heuer <kwzh@gnu.org>
parents: 11773
diff changeset
416 KBOARD *kb;
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
417 Lisp_Object display;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
418 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
419 register struct frame *f;
15555
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
420 struct gcpro gcpro1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
421
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
422 if (!NILP (mini_window))
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
423 CHECK_LIVE_WINDOW (mini_window);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
424
11775
fe7852953b75 (make_frame_without_minibuffer): New arg KB.
Karl Heuer <kwzh@gnu.org>
parents: 11773
diff changeset
425 #ifdef MULTI_KBOARD
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
426 if (!NILP (mini_window)
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
427 && XFRAME (XWINDOW (mini_window)->frame)->device->kboard != kb)
63698
e7e58f0947fe (make_frame_without_minibuffer): Follow error conventions.
Juanma Barranquero <lekktu@gmail.com>
parents: 63643
diff changeset
428 error ("Frame and minibuffer must be on the same display");
11775
fe7852953b75 (make_frame_without_minibuffer): New arg KB.
Karl Heuer <kwzh@gnu.org>
parents: 11773
diff changeset
429 #endif
fe7852953b75 (make_frame_without_minibuffer): New arg KB.
Karl Heuer <kwzh@gnu.org>
parents: 11773
diff changeset
430
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
431 /* Make a frame containing just a root window. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
432 f = make_frame (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
433
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
434 if (NILP (mini_window))
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
435 {
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
436 /* Use default-minibuffer-frame if possible. */
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
437 if (!FRAMEP (kb->Vdefault_minibuffer_frame)
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
438 || ! FRAME_LIVE_P (XFRAME (kb->Vdefault_minibuffer_frame)))
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
439 {
15555
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
440 Lisp_Object frame_dummy;
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
441
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
442 XSETFRAME (frame_dummy, f);
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
443 GCPRO1 (frame_dummy);
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
444 /* If there's no minibuffer frame to use, create one. */
15555
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
445 kb->Vdefault_minibuffer_frame =
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
446 call1 (intern ("make-initial-minibuffer-frame"), display);
5ceed3aa6a1c (make_frame_without_minibuffer): GCPRO the frame f.
Richard M. Stallman <rms@gnu.org>
parents: 15396
diff changeset
447 UNGCPRO;
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
448 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
449
12010
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
450 mini_window = XFRAME (kb->Vdefault_minibuffer_frame)->minibuffer_window;
57eb365d32f0 (make_frame_without_minibuffer): New arg DISPLAY.
Karl Heuer <kwzh@gnu.org>
parents: 12006
diff changeset
451 }
15001
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
452
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
453 f->minibuffer_window = mini_window;
15001
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
454
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
455 /* Make the chosen minibuffer window display the proper minibuffer,
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
456 unless it is already showing a minibuffer. */
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
457 if (NILP (Fmemq (XWINDOW (mini_window)->buffer, Vminibuffer_list)))
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
458 Fset_window_buffer (mini_window,
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
459 (NILP (Vminibuffer_list)
c74ce6421d04 (make_frame_without_minibuffer): Don't change the
Richard M. Stallman <rms@gnu.org>
parents: 14966
diff changeset
460 ? get_minibuffer (0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
461 : Fcar (Vminibuffer_list)), Qnil);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
462 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
463 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
464
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
465 /* Make a frame containing only a minibuffer window. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
466
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
467 struct frame *
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
468 make_minibuffer_frame ()
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
469 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
470 /* First make a frame containing just a root window, no minibuffer. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
471
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
472 register struct frame *f = make_frame (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
473 register Lisp_Object mini_window;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
474 register Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
475
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
476 XSETFRAME (frame, f);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
477
1006
a13ee72d74a2 * frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents: 987
diff changeset
478 f->auto_raise = 0;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
479 f->auto_lower = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
480 f->no_split = 1;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
481 f->wants_modeline = 0;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
482 f->has_minibuffer = 1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
483
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
484 /* Now label the root window as also being the minibuffer.
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
485 Avoid infinite looping on the window chain by marking next pointer
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
486 as nil. */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
487
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
488 mini_window = f->minibuffer_window = f->root_window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
489 XWINDOW (mini_window)->mini_p = Qt;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
490 XWINDOW (mini_window)->next = Qnil;
1006
a13ee72d74a2 * frame.c (make_frame): Clear the explicit_name member of the new
Jim Blandy <jimb@redhat.com>
parents: 987
diff changeset
491 XWINDOW (mini_window)->prev = Qnil;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
492 XWINDOW (mini_window)->frame = frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
493
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
494 /* Put the proper buffer in that window. */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
495
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
496 Fset_window_buffer (mini_window,
485
8c615e453683 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 454
diff changeset
497 (NILP (Vminibuffer_list)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
498 ? get_minibuffer (0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
499 : Fcar (Vminibuffer_list)), Qnil);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
500 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
501 }
21359
f66e706fc9d6 (make_frame_without_minibuffer): Conditionalize on HAVE_WINDOW_SYSTEM.
Richard M. Stallman <rms@gnu.org>
parents: 21244
diff changeset
502 #endif /* HAVE_WINDOW_SYSTEM */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
503
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
504 /* Construct a frame that refers to a terminal. */
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
505
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
506 static int terminal_frame_count;
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
507
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
508 struct frame *
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
509 make_initial_frame (void)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
510 {
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
511 struct frame *f;
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
512 struct device *device;
5231
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
513 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
514
11017
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
515 #ifdef MULTI_KBOARD
82991
2b26656ff804 MULTI_KBOARD support for ttys. Input-related bugfixes for X+tty sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82990
diff changeset
516 /* Create the initial keyboard. */
11017
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
517 if (!initial_kboard)
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
518 {
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
519 initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
520 init_kboard (initial_kboard);
11364
9c609a5bd245 (make_terminal_frame): all_kboards means initial_kboard too.
Karl Heuer <kwzh@gnu.org>
parents: 11355
diff changeset
521 initial_kboard->next_kboard = all_kboards;
9c609a5bd245 (make_terminal_frame): all_kboards means initial_kboard too.
Karl Heuer <kwzh@gnu.org>
parents: 11355
diff changeset
522 all_kboards = initial_kboard;
11017
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
523 }
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
524 #endif
f7c4ece024d5 (make_frame): Initialize kboard member.
Karl Heuer <kwzh@gnu.org>
parents: 10853
diff changeset
525
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
526 /* The first call must initialize Vframe_list. */
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
527 if (! (NILP (Vframe_list) || CONSP (Vframe_list)))
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
528 Vframe_list = Qnil;
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
529
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
530 device = init_initial_device ();
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
531
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
532 f = make_frame (1);
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
533 XSETFRAME (frame, f);
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
534
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
535 Vframe_list = Fcons (frame, Vframe_list);
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
536
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
537 terminal_frame_count = 1;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
538 f->name = build_string ("F1");
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
539
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
540 f->visible = 1;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
541 f->async_visible = 1;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
542
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
543 f->output_method = device->type;
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
544 f->device = device;
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
545 f->device->reference_count++;
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
546 f->output_data.nothing = 0;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
547
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
548 FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
549 FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
550
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
551 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
552 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
553
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
554 return f;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
555 }
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
556
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
557
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
558 struct frame *
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
559 make_terminal_frame (struct device *device)
83008
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
560 {
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
561 register struct frame *f;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
562 Lisp_Object frame;
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
563 char name[20];
040dd41ed7d0 Hookified termcap devices, added bootstrap display device, plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
564
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
565 f = make_frame (1);
5231
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
566
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
567 XSETFRAME (frame, f);
5231
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
568 Vframe_list = Fcons (frame, Vframe_list);
6646271e8d32 (make_terminal_frame): Add frame to Vframe_list.
Richard M. Stallman <rms@gnu.org>
parents: 5172
diff changeset
569
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
570 terminal_frame_count++;
17857
c39f34ef5d76 (make_terminal_frame): Don't add `Emacs' to frame name.
Richard M. Stallman <rms@gnu.org>
parents: 17573
diff changeset
571 sprintf (name, "F%d", terminal_frame_count);
c39f34ef5d76 (make_terminal_frame): Don't add `Emacs' to frame name.
Richard M. Stallman <rms@gnu.org>
parents: 17573
diff changeset
572 f->name = build_string (name);
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
573
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
574 f->visible = 1; /* FRAME_SET_VISIBLE wd set frame_garbaged. */
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
575 f->async_visible = 1; /* Don't let visible be cleared later. */
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
576 #ifdef MSDOS
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
577 f->output_data.x = &the_only_x_display;
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
578 if (!inhibit_window_system
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
579 && (!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame))
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
580 || XFRAME (selected_frame)->output_method == output_msdos_raw))
31470
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
581 {
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
582 f->output_method = output_msdos_raw;
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
583 /* This initialization of foreground and background pixels is
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
584 only important for the initial frame created in temacs. If
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
585 we don't do that, we get black background and foreground in
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
586 the dumped Emacs because the_only_x_display is a static
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
587 variable, hence it is born all-zeroes, and zero is the code
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
588 for the black color. Other frames all inherit their pixels
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
589 from what's already in the_only_x_display. */
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
590 if ((!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
591 && f->output_data.x->background_pixel == 0
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
592 && f->output_data.x->foreground_pixel == 0)
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
593 {
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
594 f->output_data.x->background_pixel = FACE_TTY_DEFAULT_BG_COLOR;
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
595 f->output_data.x->foreground_pixel = FACE_TTY_DEFAULT_FG_COLOR;
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
596 }
2e399023961d (make_terminal_frame): Initialize frame foreground and
Eli Zaretskii <eliz@gnu.org>
parents: 31448
diff changeset
597 }
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
598 else
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
599 f->output_method = output_termcap;
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
600 #else
35003
c6726a1e70ce (make_terminal_frame) [WINDOWSNT]: Make terminal frames
Andrew Innes <andrewi@gnu.org>
parents: 33760
diff changeset
601 #ifdef WINDOWSNT
35447
c6cb860208d8 (Qw32_console): Remove variable.
Andrew Innes <andrewi@gnu.org>
parents: 35003
diff changeset
602 f->output_method = output_termcap;
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
603 f->output_data.x = &tty_display; /* XXX ??? */
35003
c6726a1e70ce (make_terminal_frame) [WINDOWSNT]: Make terminal frames
Andrew Innes <andrewi@gnu.org>
parents: 33760
diff changeset
604 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 43717
diff changeset
605 #ifdef MAC_OS8
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents: 32545
diff changeset
606 make_mac_terminal_frame (f);
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents: 32545
diff changeset
607 #else
53341
d4e6a050c9b1 Bugfix festival.
Karoly Lorentey <lorentey@elte.hu>
parents: 53236
diff changeset
608 {
d4e6a050c9b1 Bugfix festival.
Karoly Lorentey <lorentey@elte.hu>
parents: 53236
diff changeset
609 f->output_method = output_termcap;
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
610 f->device = device;
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
611 f->device->reference_count++;
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
612 create_tty_output (f);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
613
82989
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 82987
diff changeset
614 FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
f3845715a5f6 Separate frame-local, tty-dependent parameters from tty-local parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 82987
diff changeset
615 FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
53341
d4e6a050c9b1 Bugfix festival.
Karoly Lorentey <lorentey@elte.hu>
parents: 53236
diff changeset
616
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
617 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
618 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
619
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
620 /* Set the top frame to the newly created frame. */
83009
b2b37c85b00a Numerous bugfixes and small improvements.
Karoly Lorentey <lorentey@elte.hu>
parents: 83008
diff changeset
621 if (FRAME_TTY (f)->top_frame
b2b37c85b00a Numerous bugfixes and small improvements.
Karoly Lorentey <lorentey@elte.hu>
parents: 83008
diff changeset
622 && FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame)))
b2b37c85b00a Numerous bugfixes and small improvements.
Karoly Lorentey <lorentey@elte.hu>
parents: 83008
diff changeset
623 XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */
b2b37c85b00a Numerous bugfixes and small improvements.
Karoly Lorentey <lorentey@elte.hu>
parents: 83008
diff changeset
624
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
625 FRAME_TTY (f)->top_frame = frame;
53341
d4e6a050c9b1 Bugfix festival.
Karoly Lorentey <lorentey@elte.hu>
parents: 53236
diff changeset
626 }
d4e6a050c9b1 Bugfix festival.
Karoly Lorentey <lorentey@elte.hu>
parents: 53236
diff changeset
627
47036
9d848dcc4b5d (make_terminal_frame) [CANNOT_DUMP]: Initialize
Kim F. Storm <storm@cua.dk>
parents: 46467
diff changeset
628 #ifdef CANNOT_DUMP
9d848dcc4b5d (make_terminal_frame) [CANNOT_DUMP]: Initialize
Kim F. Storm <storm@cua.dk>
parents: 46467
diff changeset
629 FRAME_FOREGROUND_PIXEL(f) = FACE_TTY_DEFAULT_FG_COLOR;
9d848dcc4b5d (make_terminal_frame) [CANNOT_DUMP]: Initialize
Kim F. Storm <storm@cua.dk>
parents: 46467
diff changeset
630 FRAME_BACKGROUND_PIXEL(f) = FACE_TTY_DEFAULT_BG_COLOR;
9d848dcc4b5d (make_terminal_frame) [CANNOT_DUMP]: Initialize
Kim F. Storm <storm@cua.dk>
parents: 46467
diff changeset
631 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 43717
diff changeset
632 #endif /* MAC_OS8 */
35003
c6726a1e70ce (make_terminal_frame) [WINDOWSNT]: Make terminal frames
Andrew Innes <andrewi@gnu.org>
parents: 33760
diff changeset
633 #endif /* WINDOWSNT */
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
634 #endif /* MSDOS */
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
635
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
636 if (!noninteractive)
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
637 init_frame_faces (f);
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents: 32545
diff changeset
638
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
639 return f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
640 }
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
641
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
642 /* Get a suitable value for frame parameter PARAMETER for a newly
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
643 created frame, based on (1) the user-supplied frame parameter
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
644 alist SUPPLIED_PARMS, (2) CURRENT_VALUE, and finally, if all else
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
645 fails, (3) Vdefault_frame_alist. */
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
646
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
647 static Lisp_Object
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
648 get_future_frame_param (Lisp_Object parameter,
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
649 Lisp_Object supplied_parms,
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
650 char *current_value)
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
651 {
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
652 Lisp_Object result;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
653
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
654 result = Fassq (parameter, supplied_parms);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
655 if (NILP (result))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
656 result = Fassq (parameter, XFRAME (selected_frame)->param_alist);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
657 if (NILP (result) && current_value != NULL)
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
658 result = build_string (current_value);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
659 if (NILP (result))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
660 result = Fassq (parameter, Vdefault_frame_alist);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
661 if (!NILP (result) && !STRINGP (result))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
662 result = XCDR (result);
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
663 if (NILP (result) || !STRINGP (result))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
664 result = Qnil;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
665
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
666 return result;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
667 }
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
668
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
669 DEFUN ("make-terminal-frame", Fmake_terminal_frame, Smake_terminal_frame,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
670 1, 1, 0,
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
671 doc: /* Create an additional terminal frame, possibly on another terminal.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
672 This function takes one argument, an alist specifying frame parameters.
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
673
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
674 You can create multiple frames on a single text-only terminal, but
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
675 only one of them (the selected terminal frame) is actually displayed.
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
676
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
677 In practice, generally you don't need to specify any parameters,
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
678 except when you want to create a new frame on another terminal.
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
679 In that case, the `tty' parameter specifies the device file to open,
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
680 and the `tty-type' parameter specifies the terminal type. Example:
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
681
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
682 (make-terminal-frame '((tty . "/dev/pts/5") (tty-type . "xterm")))
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
683
83065
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83016
diff changeset
684 Note that changing the size of one terminal frame automatically
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83016
diff changeset
685 affects all frames on the same terminal device. */)
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
686 (parms)
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
687 Lisp_Object parms;
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
688 {
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
689 struct frame *f;
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
690 struct device *d = NULL;
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
691 Lisp_Object frame, tem;
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
692 struct frame *sf = SELECTED_FRAME ();
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
693
15392
ac7e878c5526 (Fmake_terminal_frame): Test MSDOS, not __MSDOS__.
Richard M. Stallman <rms@gnu.org>
parents: 15391
diff changeset
694 #ifdef MSDOS
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
695 if (sf->output_method != output_msdos_raw
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
696 && sf->output_method != output_termcap)
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
697 abort ();
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
698 #else /* not MSDOS */
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
699
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 43717
diff changeset
700 #ifdef MAC_OS
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
701 if (sf->output_method != output_mac)
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
702 error ("Not running on a Macintosh screen; cannot make a new Macintosh frame");
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
703 #else
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
704 #if 0 /* This should work now! */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
705 if (sf->output_method != output_termcap)
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
706 error ("Not using an ASCII terminal now; cannot make a new ASCII frame");
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
707 #endif
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
708 #endif
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
709 #endif /* not MSDOS */
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
710
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
711 {
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
712 Lisp_Object display_device;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
713
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
714 display_device = Fassq (Qdevice, parms);
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
715 if (!NILP (display_device))
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
716 {
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
717 display_device = XCDR (display_device);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
718 CHECK_NUMBER (display_device);
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
719 d = get_device (XINT (display_device), 1);
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
720 }
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
721 }
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
722
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
723 if (!d)
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
724 {
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
725 char *name = 0, *type = 0;
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
726 Lisp_Object tty, tty_type;
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
727
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
728 tty = get_future_frame_param
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
729 (Qtty, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
730 ? FRAME_TTY (XFRAME (selected_frame))->name
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
731 : NULL));
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
732 if (!NILP (tty))
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
733 {
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
734 name = (char *) alloca (SBYTES (tty) + 1);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
735 strncpy (name, SDATA (tty), SBYTES (tty));
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
736 name[SBYTES (tty)] = 0;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
737 }
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
738
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
739 tty_type = get_future_frame_param
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
740 (Qtty_type, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
741 ? FRAME_TTY (XFRAME (selected_frame))->type
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
742 : NULL));
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
743 if (!NILP (tty_type))
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
744 {
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
745 type = (char *) alloca (SBYTES (tty_type) + 1);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
746 strncpy (type, SDATA (tty_type), SBYTES (tty_type));
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
747 type[SBYTES (tty_type)] = 0;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
748 }
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
749
83341
76e51706154e Rename term_init to init_tty.
Karoly Lorentey <lorentey@elte.hu>
parents: 83335
diff changeset
750 d = init_tty (name, type, 0); /* Errors are not fatal. */
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
751 }
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
752
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
753 f = make_terminal_frame (d);
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
754
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
755 {
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
756 int width, height;
83065
a871be7b26a5 Implemented suspending of emacsclient frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83016
diff changeset
757 get_tty_size (fileno (FRAME_TTY (f)->input), &width, &height);
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
758 change_frame_size (f, height, width, 0, 0, 0);
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
759 }
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
760
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
761 adjust_glyphs (f);
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
762 calculate_costs (f);
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
763 XSETFRAME (frame, f);
16184
ca018789eb73 (Fmake_terminal_frame): Use Vdefault_frame_alist.
Richard M. Stallman <rms@gnu.org>
parents: 16112
diff changeset
764 Fmodify_frame_parameters (frame, Vdefault_frame_alist);
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
765 Fmodify_frame_parameters (frame, parms);
83016
1d7467694692 Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 83009
diff changeset
766 Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qnil), Qnil));
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
767 Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty_type,
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
768 build_string (d->display_info.tty->type)),
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
769 Qnil));
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
770 Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty,
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
771 build_string (d->display_info.tty->name)),
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83415
diff changeset
772 Qnil));
83362
c3dd82172ed1 Enforce the presence of `window-system' and `tty-type' frame parameters in all frames.
Karoly Lorentey <lorentey@elte.hu>
parents: 83353
diff changeset
773
25209
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
774 /* Make the frame face alist be frame-specific, so that each
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
775 frame could change its face definitions independently. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
776 f->face_alist = Fcopy_alist (sf->face_alist);
25209
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
777 /* Simple Fcopy_alist isn't enough, because we need the contents of
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
778 the vectors which are the CDRs of associations in face_alist to
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
779 be copied as well. */
eea9647c8246 (Fframe_parameters): Swap foreground and background
Eli Zaretskii <eliz@gnu.org>
parents: 25158
diff changeset
780 for (tem = f->face_alist; CONSP (tem); tem = XCDR (tem))
39973
579177964efa Avoid (most) uses of XCAR/XCDR as lvalues, for flexibility in experimenting
Ken Raeburn <raeburn@raeburn.org>
parents: 39918
diff changeset
781 XSETCDR (XCAR (tem), Fcopy_sequence (XCDR (XCAR (tem))));
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
782 return frame;
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
783 }
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
784
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
785
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
786 /* Perform the switch to frame FRAME.
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
787
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
788 If FRAME is a switch-frame event `(switch-frame FRAME1)', use
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
789 FRAME1 as frame.
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
790
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
791 If TRACK is non-zero and the frame that currently has the focus
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
792 redirects its focus to the selected frame, redirect that focused
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
793 frame's focus to FRAME instead.
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
794
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
795 FOR_DELETION non-zero means that the selected frame is being
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
796 deleted, which includes the possibility that the frame's display
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
797 is dead. */
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
798
12286
723569a0028c (Fdelete_frame): Use do_switch_frame directly.
Richard M. Stallman <rms@gnu.org>
parents: 12283
diff changeset
799 Lisp_Object
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
800 do_switch_frame (frame, track, for_deletion)
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
801 Lisp_Object frame;
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
802 int track, for_deletion;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
803 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
804 struct frame *sf = SELECTED_FRAME ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
805
1385
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
806 /* If FRAME is a switch-frame event, extract the frame we should
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
807 switch to. */
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
808 if (CONSP (frame)
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
809 && EQ (XCAR (frame), Qswitch_frame)
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
810 && CONSP (XCDR (frame)))
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
811 frame = XCAR (XCDR (frame));
1385
a4a205bdd2c1 * frame.c: #include "commands.h" and "keyboard.h".
Jim Blandy <jimb@redhat.com>
parents: 1346
diff changeset
812
6352
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
813 /* This used to say CHECK_LIVE_FRAME, but apparently it's possible for
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
814 a switch-frame event to arrive after a frame is no longer live,
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
815 especially when deleting the initial frame during startup. */
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
816 CHECK_FRAME (frame);
6352
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
817 if (! FRAME_LIVE_P (XFRAME (frame)))
6f48bd9145f9 (Fhandle_switch_frame): Ignore switch to dead frame.
Karl Heuer <kwzh@gnu.org>
parents: 6346
diff changeset
818 return Qnil;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
819
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
820 if (sf == XFRAME (frame))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
821 return frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
822
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
823 /* This is too greedy; it causes inappropriate focus redirection
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
824 that's hard to get rid of. */
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
825 #if 0
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
826 /* If a frame's focus has been redirected toward the currently
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
827 selected frame, we should change the redirection to point to the
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
828 newly selected frame. This means that if the focus is redirected
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
829 from a minibufferless frame to a surrogate minibuffer frame, we
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
830 can use `other-window' to switch between all the frames using
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
831 that minibuffer frame, and the focus redirection will follow us
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
832 around. */
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
833 if (track)
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
834 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
835 Lisp_Object tail;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
836
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
837 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
838 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
839 Lisp_Object focus;
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
840
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
841 if (!FRAMEP (XCAR (tail)))
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
842 abort ();
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
843
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
844 focus = FRAME_FOCUS_FRAME (XFRAME (XCAR (tail)));
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
845
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
846 if (FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ())
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
847 Fredirect_frame_focus (XCAR (tail), frame);
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
848 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
849 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
850 #else /* ! 0 */
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
851 /* Instead, apply it only to the frame we're pointing to. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
852 #ifdef HAVE_WINDOW_SYSTEM
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
853 if (track && FRAME_WINDOW_P (XFRAME (frame)))
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
854 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
855 Lisp_Object focus, xfocus;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
856
11529
5beffe62d4ef (do_switch_frame): x_get_focus_frame needs an arg.
Karl Heuer <kwzh@gnu.org>
parents: 11495
diff changeset
857 xfocus = x_get_focus_frame (XFRAME (frame));
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
858 if (FRAMEP (xfocus))
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
859 {
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
860 focus = FRAME_FOCUS_FRAME (XFRAME (xfocus));
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
861 if (FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ())
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
862 Fredirect_frame_focus (xfocus, frame);
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
863 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
864 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
865 #endif /* HAVE_X_WINDOWS */
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
866 #endif /* ! 0 */
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
867
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
868 if (!for_deletion && FRAME_HAS_MINIBUF_P (sf))
35611
3e7efd5ea1da (do_switch_frame): If selected frame has a mini-window,
Gerd Moellmann <gerd@gnu.org>
parents: 35447
diff changeset
869 resize_mini_window (XWINDOW (FRAME_MINIBUF_WINDOW (sf)), 1);
3e7efd5ea1da (do_switch_frame): If selected frame has a mini-window,
Gerd Moellmann <gerd@gnu.org>
parents: 35447
diff changeset
870
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
871 if (FRAME_TERMCAP_P (XFRAME (selected_frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
872 && FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
873 && FRAME_TTY (XFRAME (selected_frame)) == FRAME_TTY (XFRAME (frame)))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
874 {
53232
22aaf1e5fbe6 Full support for multiple terminal I/O (with some rough edges).
Karoly Lorentey <lorentey@elte.hu>
parents: 53229
diff changeset
875 XFRAME (selected_frame)->async_visible = 2; /* obscured */
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
876 XFRAME (frame)->async_visible = 1;
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
877 FRAME_TTY (XFRAME (frame))->top_frame = frame;
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
878 }
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
879
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
880 selected_frame = frame;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
881 if (! FRAME_MINIBUF_ONLY_P (XFRAME (selected_frame)))
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
882 last_nonminibuf_frame = XFRAME (selected_frame);
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
883
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50390
diff changeset
884 Fselect_window (XFRAME (frame)->selected_window, Qnil);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
885
42743
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
886 #ifndef WINDOWSNT
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
887 /* Make sure to switch the tty color mode to that of the newly
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
888 selected frame. */
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
889 sf = SELECTED_FRAME ();
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
890 if (FRAME_TERMCAP_P (sf))
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
891 {
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
892 Lisp_Object color_mode_spec, color_mode;
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
893
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
894 color_mode_spec = assq_no_quit (Qtty_color_mode, sf->param_alist);
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
895 if (CONSP (color_mode_spec))
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
896 color_mode = XCDR (color_mode_spec);
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
897 else
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
898 color_mode = make_number (0);
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
899 set_tty_color_mode (sf, color_mode);
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
900 }
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
901 #endif /* !WINDOWSNT */
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
902
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
903 /* We want to make sure that the next event generates a frame-switch
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 3497
diff changeset
904 event to the appropriate frame. This seems kludgy to me, but
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
905 before you take it out, make sure that evaluating something like
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
906 (select-window (frame-root-window (new-frame))) doesn't end up
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
907 with your typing being interpreted in the new frame instead of
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
908 the one you're actually typing in. */
10853
3db086133785 (do_switch_frame): Undo Feb 6 change.
Karl Heuer <kwzh@gnu.org>
parents: 10851
diff changeset
909 internal_last_event_frame = Qnil;
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
910
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
911 return frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
912 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
913
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
914 DEFUN ("select-frame", Fselect_frame, Sselect_frame, 1, 1, "e",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
915 doc: /* Select the frame FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
916 Subsequent editing commands apply to its selected window.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
917 The selection of FRAME lasts until the next time the user does
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
918 something to select a different frame, or until the next time this
56517
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
919 function is called. If you are using a window system, the previously
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
920 selected frame may be restored as the selected frame after return to
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
921 the command loop, because it still may have the window system's input
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
922 focus. On a text-only terminal, the next redisplay will display FRAME.
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
923
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
924 This function returns FRAME, or nil if FRAME has been deleted. */)
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
925 (frame)
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
926 Lisp_Object frame;
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
927 {
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
928 return do_switch_frame (frame, 1, 0);
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
929 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
930
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
931
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
932 DEFUN ("handle-switch-frame", Fhandle_switch_frame, Shandle_switch_frame, 1, 1, "e",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
933 doc: /* Handle a switch-frame event EVENT.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
934 Switch-frame events are usually bound to this function.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
935 A switch-frame event tells Emacs that the window manager has requested
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
936 that the user's events be directed to the frame mentioned in the event.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
937 This function selects the selected window of the frame of EVENT.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
938
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
939 If EVENT is frame object, handle it as if it were a switch-frame event
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
940 to that frame. */)
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
941 (event)
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
942 Lisp_Object event;
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
943 {
12255
41083bd094ac (Fhandle_switch_frame): Preserve prefix arg.
Karl Heuer <kwzh@gnu.org>
parents: 12222
diff changeset
944 /* Preserve prefix arg that the command loop just cleared. */
41083bd094ac (Fhandle_switch_frame): Preserve prefix arg.
Karl Heuer <kwzh@gnu.org>
parents: 12222
diff changeset
945 current_kboard->Vprefix_arg = Vcurrent_prefix_arg;
13106
22011e724596 (Qmouse_leave_buffer_hook): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 12987
diff changeset
946 call1 (Vrun_hooks, Qmouse_leave_buffer_hook);
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
947 return do_switch_frame (event, 0, 0);
6486
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
948 }
5012ae9c6075 (do_switch_frame): Common code for Fselect_frame and handle_switch_frame.
Karl Heuer <kwzh@gnu.org>
parents: 6355
diff changeset
949
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
950 DEFUN ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
951 doc: /* Return the frame that is now selected. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
952 ()
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
953 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
954 return selected_frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
955 }
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
956
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
957 DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
958 doc: /* Return the frame object that window WINDOW is on. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
959 (window)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
960 Lisp_Object window;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
961 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
962 CHECK_LIVE_WINDOW (window);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
963 return XWINDOW (window)->frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
964 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
965
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
966 DEFUN ("frame-first-window", Fframe_first_window, Sframe_first_window, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
967 doc: /* Returns the topmost, leftmost window of FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
968 If omitted, FRAME defaults to the currently selected frame. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
969 (frame)
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
970 Lisp_Object frame;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
971 {
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
972 Lisp_Object w;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
973
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
974 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
975 w = SELECTED_FRAME ()->root_window;
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
976 else
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
977 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
978 CHECK_LIVE_FRAME (frame);
6527
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
979 w = XFRAME (frame)->root_window;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
980 }
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
981 while (NILP (XWINDOW (w)->buffer))
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
982 {
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
983 if (! NILP (XWINDOW (w)->hchild))
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
984 w = XWINDOW (w)->hchild;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
985 else if (! NILP (XWINDOW (w)->vchild))
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
986 w = XWINDOW (w)->vchild;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
987 else
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
988 abort ();
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
989 }
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
990 return w;
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
991 }
ab9f20a3f502 (Fframe_first_window): New function.
Karl Heuer <kwzh@gnu.org>
parents: 6500
diff changeset
992
11169
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
993 DEFUN ("active-minibuffer-window", Factive_minibuffer_window,
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
994 Sactive_minibuffer_window, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
995 doc: /* Return the currently active minibuffer window, or nil if none. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
996 ()
11169
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
997 {
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
998 return minibuf_level ? minibuf_window : Qnil;
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
999 }
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
1000
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1001 DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1002 doc: /* Returns the root-window of FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1003 If omitted, FRAME defaults to the currently selected frame. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1004 (frame)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1005 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1006 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1007 Lisp_Object window;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1008
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1009 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1010 window = SELECTED_FRAME ()->root_window;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1011 else
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1012 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1013 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1014 window = XFRAME (frame)->root_window;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1015 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1016
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1017 return window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1018 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1019
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1020 DEFUN ("frame-selected-window", Fframe_selected_window,
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1021 Sframe_selected_window, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1022 doc: /* Return the selected window of frame object FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1023 If omitted, FRAME defaults to the currently selected frame. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1024 (frame)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1025 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1026 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1027 Lisp_Object window;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1028
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1029 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1030 window = SELECTED_FRAME ()->selected_window;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1031 else
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1032 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1033 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1034 window = XFRAME (frame)->selected_window;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1035 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1036
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1037 return window;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1038 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1039
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1040 DEFUN ("set-frame-selected-window", Fset_frame_selected_window,
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1041 Sset_frame_selected_window, 2, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1042 doc: /* Set the selected window of frame object FRAME to WINDOW.
56517
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
1043 Return WINDOW.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1044 If FRAME is nil, the selected frame is used.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1045 If FRAME is the selected frame, this makes WINDOW the selected window. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1046 (frame, window)
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1047 Lisp_Object frame, window;
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1048 {
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1049 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1050 frame = selected_frame;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1051
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1052 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1053 CHECK_LIVE_WINDOW (window);
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1054
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1055 if (! EQ (frame, WINDOW_FRAME (XWINDOW (window))))
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1056 error ("In `set-frame-selected-window', WINDOW is not on FRAME");
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1057
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1058 if (EQ (frame, selected_frame))
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50390
diff changeset
1059 return Fselect_window (window, Qnil);
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1060
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1061 return XFRAME (frame)->selected_window = window;
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1062 }
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
1063
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1064
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1065 DEFUN ("frame-display", Fframe_display, Sframe_display, 0, 1, 0,
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1066 doc: /* Return the display device that FRAME is displayed on.
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1067 If FRAME is nil, the selected frame is used.
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1068
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1069 The display device is represented by its integer identifier. */)
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1070 (frame)
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1071 Lisp_Object frame;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1072 {
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1073 struct device *d;
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1074
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1075 if (NILP (frame))
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1076 frame = selected_frame;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1077
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1078 CHECK_LIVE_FRAME (frame);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1079
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1080 d = get_device (frame, 0);
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1081
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1082 if (!d)
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1083 return Qnil;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1084 else
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1085 return make_number (d->id);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1086 }
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1087
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1088
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1089 DEFUN ("frame-list", Fframe_list, Sframe_list,
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1090 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1091 doc: /* Return a list of all frames. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1092 ()
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1093 {
36971
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1094 Lisp_Object frames;
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1095 frames = Fcopy_sequence (Vframe_list);
36984
1b91be709189 (Fframe_list): Don't reference tip_frame if HAVE_WINDOW_SYSTEM is not defined.
Eli Zaretskii <eliz@gnu.org>
parents: 36971
diff changeset
1096 #ifdef HAVE_WINDOW_SYSTEM
36971
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1097 if (FRAMEP (tip_frame))
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1098 frames = Fdelq (tip_frame, frames);
36984
1b91be709189 (Fframe_list): Don't reference tip_frame if HAVE_WINDOW_SYSTEM is not defined.
Eli Zaretskii <eliz@gnu.org>
parents: 36971
diff changeset
1099 #endif
36971
3819e613c7c2 (Fframe_list): Don't return a tooltip frame.
Gerd Moellmann <gerd@gnu.org>
parents: 36810
diff changeset
1100 return frames;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1101 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1102
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1103 /* Return the next frame in the frame list after FRAME.
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1104 If MINIBUF is nil, exclude minibuffer-only frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1105 If MINIBUF is a window, include only its own frame
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1106 and any frame now using that window as the minibuffer.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1107 If MINIBUF is `visible', include all visible frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1108 If MINIBUF is 0, include all visible and iconified frames.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1109 Otherwise, include all frames. */
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1110
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
1111 static Lisp_Object
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1112 next_frame (frame, minibuf)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1113 Lisp_Object frame;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1114 Lisp_Object minibuf;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1115 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1116 Lisp_Object tail;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1117 int passed = 0;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1118
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1119 /* There must always be at least one frame in Vframe_list. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1120 if (! CONSP (Vframe_list))
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1121 abort ();
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1122
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1123 /* If this frame is dead, it won't be in Vframe_list, and we'll loop
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1124 forever. Forestall that. */
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1125 CHECK_LIVE_FRAME (frame);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1126
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1127 while (1)
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1128 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1129 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1130 Lisp_Object f;
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1131
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1132 f = XCAR (tail);
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1133
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1134 if (passed
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1135 && ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1136 && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1137 || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1138 && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame)))))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1139 {
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1140 /* Decide whether this frame is eligible to be returned. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1141
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1142 /* If we've looped all the way around without finding any
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1143 eligible frames, return the original frame. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1144 if (EQ (f, frame))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1145 return f;
335
33aa13a3f279 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 286
diff changeset
1146
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1147 /* Let minibuf decide if this frame is acceptable. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1148 if (NILP (minibuf))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1149 {
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1150 if (! FRAME_MINIBUF_ONLY_P (XFRAME (f)))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1151 return f;
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1152 }
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1153 else if (EQ (minibuf, Qvisible))
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1154 {
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1155 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1156 if (FRAME_VISIBLE_P (XFRAME (f)))
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1157 return f;
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1158 }
29987
c38afaed3dd0 (next_frame): Don't check frame-focus redirection in
Gerd Moellmann <gerd@gnu.org>
parents: 29616
diff changeset
1159 else if (INTEGERP (minibuf) && XINT (minibuf) == 0)
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1160 {
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1161 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1162 if (FRAME_VISIBLE_P (XFRAME (f))
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1163 || FRAME_ICONIFIED_P (XFRAME (f)))
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1164 return f;
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1165 }
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1166 else if (WINDOWP (minibuf))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1167 {
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1168 if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)
29995
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1169 || EQ (WINDOW_FRAME (XWINDOW (minibuf)), f)
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1170 || EQ (WINDOW_FRAME (XWINDOW (minibuf)),
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1171 FRAME_FOCUS_FRAME (XFRAME (f))))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1172 return f;
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1173 }
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1174 else
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1175 return f;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1176 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1177
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1178 if (EQ (frame, f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1179 passed++;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1180 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1181 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1182
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1183 /* Return the previous frame in the frame list before FRAME.
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1184 If MINIBUF is nil, exclude minibuffer-only frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1185 If MINIBUF is a window, include only its own frame
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1186 and any frame now using that window as the minibuffer.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1187 If MINIBUF is `visible', include all visible frames.
8168
32fbb27091d4 (next_frame, prev_frame):
Richard M. Stallman <rms@gnu.org>
parents: 8099
diff changeset
1188 If MINIBUF is 0, include all visible and iconified frames.
6246
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1189 Otherwise, include all frames. */
128dc040e121 (next_frame, prev_frame): If MINIBUF is `visible',
Richard M. Stallman <rms@gnu.org>
parents: 6157
diff changeset
1190
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
1191 static Lisp_Object
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1192 prev_frame (frame, minibuf)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1193 Lisp_Object frame;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1194 Lisp_Object minibuf;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1195 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1196 Lisp_Object tail;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1197 Lisp_Object prev;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1198
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1199 /* There must always be at least one frame in Vframe_list. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1200 if (! CONSP (Vframe_list))
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1201 abort ();
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1202
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1203 prev = Qnil;
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1204 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1205 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1206 Lisp_Object f;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1207
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1208 f = XCAR (tail);
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
1209 if (!FRAMEP (f))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1210 abort ();
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1211
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1212 if (EQ (frame, f) && !NILP (prev))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1213 return prev;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1214
53229
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1215 if ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1216 && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1217 || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
33c3c7c16e13 lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
Karoly Lorentey <lorentey@elte.hu>
parents: 53226
diff changeset
1218 && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame))))
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1219 {
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1220 /* Decide whether this frame is eligible to be returned,
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1221 according to minibuf. */
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1222 if (NILP (minibuf))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1223 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1224 if (! FRAME_MINIBUF_ONLY_P (XFRAME (f)))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1225 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1226 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1227 else if (WINDOWP (minibuf))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1228 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1229 if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)
29995
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1230 || EQ (WINDOW_FRAME (XWINDOW (minibuf)), f)
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1231 || EQ (WINDOW_FRAME (XWINDOW (minibuf)),
ec33931795c4 (next_frame, prev_frame): If MINIBUF is a window,
Gerd Moellmann <gerd@gnu.org>
parents: 29987
diff changeset
1232 FRAME_FOCUS_FRAME (XFRAME (f))))
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1233 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1234 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1235 else if (EQ (minibuf, Qvisible))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1236 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1237 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1238 if (FRAME_VISIBLE_P (XFRAME (f)))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1239 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1240 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1241 else if (XFASTINT (minibuf) == 0)
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1242 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1243 FRAME_SAMPLE_VISIBILITY (XFRAME (f));
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1244 if (FRAME_VISIBLE_P (XFRAME (f))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1245 || FRAME_ICONIFIED_P (XFRAME (f)))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1246 prev = f;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1247 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1248 else
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1249 prev = f;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1250 }
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1251 }
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1252
1118
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1253 /* We've scanned the entire list. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1254 if (NILP (prev))
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1255 /* We went through the whole frame list without finding a single
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1256 acceptable frame. Return the original frame. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1257 return frame;
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1258 else
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1259 /* There were no acceptable frames in the list before FRAME; otherwise,
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1260 we would have returned directly from the loop. Since PREV is the last
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1261 acceptable frame in the list, return it. */
a43d53261506 * frame.c (choose_minibuf_frame): abort if the selected frame has
Jim Blandy <jimb@redhat.com>
parents: 1006
diff changeset
1262 return prev;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1263 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1264
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1265
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1266 DEFUN ("next-frame", Fnext_frame, Snext_frame, 0, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1267 doc: /* Return the next frame in the frame list after FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1268 It considers only frames on the same terminal as FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1269 By default, skip minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1270 If omitted, FRAME defaults to the selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1271 If optional argument MINIFRAME is nil, exclude minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1272 If MINIFRAME is a window, include only its own frame
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1273 and any frame now using that window as the minibuffer.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1274 If MINIFRAME is `visible', include all visible frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1275 If MINIFRAME is 0, include all visible and iconified frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1276 Otherwise, include all frames. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1277 (frame, miniframe)
1251
4e556fda7a4d * frame.c (Fselect_frame, Fframe_root_window,
Jim Blandy <jimb@redhat.com>
parents: 1118
diff changeset
1278 Lisp_Object frame, miniframe;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1279 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1280 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1281 frame = selected_frame;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1282
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1283 CHECK_LIVE_FRAME (frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1284 return next_frame (frame, miniframe);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1285 }
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1286
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1287 DEFUN ("previous-frame", Fprevious_frame, Sprevious_frame, 0, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1288 doc: /* Return the previous frame in the frame list before FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1289 It considers only frames on the same terminal as FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1290 By default, skip minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1291 If omitted, FRAME defaults to the selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1292 If optional argument MINIFRAME is nil, exclude minibuffer-only frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1293 If MINIFRAME is a window, include only its own frame
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1294 and any frame now using that window as the minibuffer.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1295 If MINIFRAME is `visible', include all visible frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1296 If MINIFRAME is 0, include all visible and iconified frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1297 Otherwise, include all frames. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1298 (frame, miniframe)
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1299 Lisp_Object frame, miniframe;
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1300 {
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1301 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1302 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1303 CHECK_LIVE_FRAME (frame);
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1304 return prev_frame (frame, miniframe);
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
1305 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1306
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1307 /* Return 1 if it is ok to delete frame F;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1308 0 if all frames aside from F are invisible.
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1309 (Exception: if F is the terminal frame, and we are using X, return 1.) */
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1310
7646
de2c4334fad4 (other_visible_frames): No longer static.
Richard M. Stallman <rms@gnu.org>
parents: 7570
diff changeset
1311 int
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1312 other_visible_frames (f)
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1313 FRAME_PTR f;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1314 {
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1315 /* We know the selected frame is visible,
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1316 so if F is some other frame, it can't be the sole visible one. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1317 if (f == SELECTED_FRAME ())
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1318 {
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1319 Lisp_Object frames;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1320 int count = 0;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1321
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1322 for (frames = Vframe_list;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1323 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1324 frames = XCDR (frames))
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1325 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1326 Lisp_Object this;
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1327
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1328 this = XCAR (frames);
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1329 /* Verify that the frame's window still exists
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1330 and we can still talk to it. And note any recent change
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1331 in visibility. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1332 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1333 if (FRAME_WINDOW_P (XFRAME (this)))
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1334 {
9648
14b1481b7c6d (other_visible_frames): Pass a frame ptr to x_sync.
Richard M. Stallman <rms@gnu.org>
parents: 9572
diff changeset
1335 x_sync (XFRAME (this));
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1336 FRAME_SAMPLE_VISIBILITY (XFRAME (this));
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1337 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1338 #endif
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1339
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1340 if (FRAME_VISIBLE_P (XFRAME (this))
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1341 || FRAME_ICONIFIED_P (XFRAME (this))
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1342 /* Allow deleting the terminal frame when at least
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1343 one X frame exists! */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1344 || (FRAME_WINDOW_P (XFRAME (this)) && !FRAME_WINDOW_P (f)))
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1345 count++;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1346 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1347 return count > 1;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1348 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1349 return 1;
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1350 }
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1351
4341
d07ef5ea3b58 (Fdelete_frame): New arg FORCE allows deletion of last non-invisible frame.
Richard M. Stallman <rms@gnu.org>
parents: 4227
diff changeset
1352 DEFUN ("delete-frame", Fdelete_frame, Sdelete_frame, 0, 2, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1353 doc: /* Delete FRAME, permanently eliminating it from use.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1354 If omitted, FRAME defaults to the selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1355 A frame may not be deleted if its minibuffer is used by other frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1356 Normally, you may not delete a frame if all other frames are invisible,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1357 but if the second optional argument FORCE is non-nil, you may do so.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1358
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
1359 This function runs `delete-frame-functions' before actually deleting the
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
1360 frame, unless the frame is a tooltip.
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
1361 The functions are run with one arg, the frame to be deleted. */)
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1362 (frame, force)
4341
d07ef5ea3b58 (Fdelete_frame): New arg FORCE allows deletion of last non-invisible frame.
Richard M. Stallman <rms@gnu.org>
parents: 4227
diff changeset
1363 Lisp_Object frame, force;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1364 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1365 struct frame *f;
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1366 struct frame *sf = SELECTED_FRAME ();
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1367 struct kboard *kb;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1368
12222
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1369 int minibuffer_selected;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1370
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1371 if (EQ (frame, Qnil))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1372 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1373 f = sf;
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
1374 XSETFRAME (frame, f);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1375 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1376 else
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1377 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1378 CHECK_FRAME (frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1379 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1380 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1381
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1382 if (! FRAME_LIVE_P (f))
1920
ac5e559a819a * frame.c (Fselect_frame): Set Vlast_event_frame to Qnil after
Jim Blandy <jimb@redhat.com>
parents: 1870
diff changeset
1383 return Qnil;
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1384
35660
b9366f467430 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
Andrew Choi <akochoi@shaw.ca>
parents: 35611
diff changeset
1385 if (NILP (force) && !other_visible_frames (f)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 43717
diff changeset
1386 #ifdef MAC_OS8
35660
b9366f467430 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
Andrew Choi <akochoi@shaw.ca>
parents: 35611
diff changeset
1387 /* Terminal frame deleted before any other visible frames are
b9366f467430 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
Andrew Choi <akochoi@shaw.ca>
parents: 35611
diff changeset
1388 created. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
1389 && strcmp (SDATA (f->name), "F1") != 0
35660
b9366f467430 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
Andrew Choi <akochoi@shaw.ca>
parents: 35611
diff changeset
1390 #endif
b9366f467430 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
Andrew Choi <akochoi@shaw.ca>
parents: 35611
diff changeset
1391 )
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1392 error ("Attempt to delete the sole visible or iconified frame");
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1393
18945
7f491075707a (Fdelete_frame): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 18698
diff changeset
1394 #if 0
7f491075707a (Fdelete_frame): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 18698
diff changeset
1395 /* This is a nice idea, but x_connection_closed needs to be able
7f491075707a (Fdelete_frame): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 18698
diff changeset
1396 to delete the last frame, if it is gone. */
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1397 if (NILP (XCDR (Vframe_list)))
18698
52271ad26a1d (Fdelete_frame): Always err for deleting the only frame.
Richard M. Stallman <rms@gnu.org>
parents: 18380
diff changeset
1398 error ("Attempt to delete the only frame");
18945
7f491075707a (Fdelete_frame): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 18698
diff changeset
1399 #endif
18698
52271ad26a1d (Fdelete_frame): Always err for deleting the only frame.
Richard M. Stallman <rms@gnu.org>
parents: 18380
diff changeset
1400
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1401 /* Does this frame have a minibuffer, and is it the surrogate
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1402 minibuffer for any other frame? */
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1403 if (FRAME_HAS_MINIBUF_P (XFRAME (frame)))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1404 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1405 Lisp_Object frames;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1406
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1407 for (frames = Vframe_list;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1408 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1409 frames = XCDR (frames))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1410 {
6157
9422e430f067 (Fdelete_frame): Don't initialize a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 6130
diff changeset
1411 Lisp_Object this;
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1412 this = XCAR (frames);
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1413
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1414 if (! EQ (this, frame)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1415 && EQ (frame,
6157
9422e430f067 (Fdelete_frame): Don't initialize a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 6130
diff changeset
1416 WINDOW_FRAME (XWINDOW
9422e430f067 (Fdelete_frame): Don't initialize a Lisp_Object.
Richard M. Stallman <rms@gnu.org>
parents: 6130
diff changeset
1417 (FRAME_MINIBUF_WINDOW (XFRAME (this))))))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1418 error ("Attempt to delete a surrogate minibuffer frame");
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1419 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1420 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1421
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
1422 /* Run `delete-frame-functions' unless frame is a tooltip. */
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
1423 if (!NILP (Vrun_hooks)
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
1424 && NILP (Fframe_parameter (frame, intern ("tooltip"))))
32909
44cb0900a858 (Fdelete_frame): Doc fix. Move running the hook
Gerd Moellmann <gerd@gnu.org>
parents: 32907
diff changeset
1425 {
44cb0900a858 (Fdelete_frame): Doc fix. Move running the hook
Gerd Moellmann <gerd@gnu.org>
parents: 32907
diff changeset
1426 Lisp_Object args[2];
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
1427 args[0] = intern ("delete-frame-functions");
32909
44cb0900a858 (Fdelete_frame): Doc fix. Move running the hook
Gerd Moellmann <gerd@gnu.org>
parents: 32907
diff changeset
1428 args[1] = frame;
44cb0900a858 (Fdelete_frame): Doc fix. Move running the hook
Gerd Moellmann <gerd@gnu.org>
parents: 32907
diff changeset
1429 Frun_hook_with_args (2, args);
44cb0900a858 (Fdelete_frame): Doc fix. Move running the hook
Gerd Moellmann <gerd@gnu.org>
parents: 32907
diff changeset
1430 }
44cb0900a858 (Fdelete_frame): Doc fix. Move running the hook
Gerd Moellmann <gerd@gnu.org>
parents: 32907
diff changeset
1431
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1432 /* The hook may sometimes (indirectly) cause the frame to be deleted. */
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1433 if (! FRAME_LIVE_P (f))
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1434 return Qnil;
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
1435
12222
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1436 minibuffer_selected = EQ (minibuf_window, selected_window);
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1437
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1438 /* Don't let the frame remain selected. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1439 if (f == sf)
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1440 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1441 Lisp_Object tail, frame1;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1442
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1443 /* Look for another visible frame on the same terminal. */
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1444 frame1 = next_frame (frame, Qvisible);
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1445
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1446 /* If there is none, find *some* other frame. */
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1447 if (NILP (frame1) || EQ (frame1, frame))
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1448 {
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1449 FOR_EACH_FRAME (tail, frame1)
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1450 {
53233
fe9b37bee5f7 Fully eliminated global tty state variables.
Karoly Lorentey <lorentey@elte.hu>
parents: 53232
diff changeset
1451 if (! EQ (frame, frame1) && FRAME_LIVE_P (XFRAME (frame1)))
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1452 break;
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1453 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1454 }
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1455
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
1456 do_switch_frame (frame1, 0, 1);
25736
84179b4e7743 (Fdelete_frame): Correct local variable pointing to
Gerd Moellmann <gerd@gnu.org>
parents: 25710
diff changeset
1457 sf = SELECTED_FRAME ();
12379
7149fc03ea56 (next_frame, prev_frame): Consider only frames on same kbd.
Richard M. Stallman <rms@gnu.org>
parents: 12286
diff changeset
1458 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1459
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1460 /* Don't allow minibuf_window to remain on a deleted frame. */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1461 if (EQ (f->minibuffer_window, minibuf_window))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1462 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1463 Fset_window_buffer (sf->minibuffer_window,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
1464 XWINDOW (minibuf_window)->buffer, Qnil);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1465 minibuf_window = sf->minibuffer_window;
12222
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1466
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1467 /* If the dying minibuffer window was selected,
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1468 select the new one. */
7286ed64badd (Fdelete_frame): If the minibuf window was selected, make that remain so.
Richard M. Stallman <rms@gnu.org>
parents: 12010
diff changeset
1469 if (minibuffer_selected)
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50390
diff changeset
1470 Fselect_window (minibuf_window, Qnil);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1471 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1472
27800
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1473 /* Don't let echo_area_window to remain on a deleted frame. */
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1474 if (EQ (f->minibuffer_window, echo_area_window))
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1475 echo_area_window = sf->minibuffer_window;
403b2b833ce2 (Fdelete_frame): Don't let echo_area_window to remain on a deleted frame.
Eli Zaretskii <eliz@gnu.org>
parents: 27797
diff changeset
1476
83427
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1477 /* Don't allow other frames to refer to a deleted frame in their
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1478 'environment parameter. */
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1479 {
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1480 Lisp_Object tail, frame1;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1481 Lisp_Object env = get_frame_param (XFRAME (frame), Qenvironment);
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1482 FOR_EACH_FRAME (tail, frame1)
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1483 {
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1484 if (EQ (frame, frame1) || !FRAME_LIVE_P (XFRAME (frame1)))
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1485 continue;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1486 if (EQ (frame, get_frame_param (XFRAME (frame1), Qenvironment)))
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1487 {
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1488 store_frame_param (XFRAME (frame1), Qenvironment, env);
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1489 if (!FRAMEP (env))
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1490 env = frame1;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1491 }
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1492 }
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1493 }
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1494
8099
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1495 /* Clear any X selections for this frame. */
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1496 #ifdef HAVE_X_WINDOWS
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1497 if (FRAME_X_P (f))
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1498 x_clear_frame_selections (f);
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1499 #endif
61784
64c5a821e9cd (Fdelete_frame) [MAC_OS]: Call x_clear_frame_selections.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60754
diff changeset
1500 #ifdef MAC_OS
64c5a821e9cd (Fdelete_frame) [MAC_OS]: Call x_clear_frame_selections.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60754
diff changeset
1501 if (FRAME_MAC_P (f))
64c5a821e9cd (Fdelete_frame) [MAC_OS]: Call x_clear_frame_selections.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60754
diff changeset
1502 x_clear_frame_selections (f);
64c5a821e9cd (Fdelete_frame) [MAC_OS]: Call x_clear_frame_selections.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60754
diff changeset
1503 #endif
8099
a06382fd175d (Fdelete_frame): Call x_clear_frame_selections.
Richard M. Stallman <rms@gnu.org>
parents: 8054
diff changeset
1504
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1505 /* Free glyphs.
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1506 This function must be called before the window tree of the
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1507 frame is deleted because windows contain dynamically allocated
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1508 memory. */
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1509 free_glyphs (f);
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1510
1680
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1511 /* Mark all the windows that used to be on FRAME as deleted, and then
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1512 remove the reference to them. */
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1513 delete_all_subwindows (XWINDOW (f->root_window));
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1514 f->root_window = Qnil;
ea9f3949f153 * frame.c (Fdelete_frame): Delete all the windows in the frame's
Jim Blandy <jimb@redhat.com>
parents: 1652
diff changeset
1515
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1516 Vframe_list = Fdelq (frame, Vframe_list);
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
1517 FRAME_SET_VISIBLE (f, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1518
11495
da1a40d86231 (Fdelete_frame): Free f->namebuf.
Karl Heuer <kwzh@gnu.org>
parents: 11494
diff changeset
1519 if (f->namebuf)
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1520 xfree (f->namebuf);
52753
551e8ebadb62 Fix memory leaks (from YAMAMOTO Mitsuharu)
Jan Djärv <jan.h.d@swipnet.se>
parents: 52752
diff changeset
1521 if (f->decode_mode_spec_buffer)
551e8ebadb62 Fix memory leaks (from YAMAMOTO Mitsuharu)
Jan Djärv <jan.h.d@swipnet.se>
parents: 52752
diff changeset
1522 xfree (f->decode_mode_spec_buffer);
8666
844edbc22875 (Fdelete_frame): Free the frame's glyphs arrays.
Richard M. Stallman <rms@gnu.org>
parents: 8586
diff changeset
1523 if (FRAME_INSERT_COST (f))
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1524 xfree (FRAME_INSERT_COST (f));
8666
844edbc22875 (Fdelete_frame): Free the frame's glyphs arrays.
Richard M. Stallman <rms@gnu.org>
parents: 8586
diff changeset
1525 if (FRAME_DELETEN_COST (f))
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1526 xfree (FRAME_DELETEN_COST (f));
8666
844edbc22875 (Fdelete_frame): Free the frame's glyphs arrays.
Richard M. Stallman <rms@gnu.org>
parents: 8586
diff changeset
1527 if (FRAME_INSERTN_COST (f))
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1528 xfree (FRAME_INSERTN_COST (f));
8666
844edbc22875 (Fdelete_frame): Free the frame's glyphs arrays.
Richard M. Stallman <rms@gnu.org>
parents: 8586
diff changeset
1529 if (FRAME_DELETE_COST (f))
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1530 xfree (FRAME_DELETE_COST (f));
17573
bfd86808adcc (Fdelete_frame): Free FRAME_MESSAGE_BUF.
Richard M. Stallman <rms@gnu.org>
parents: 17235
diff changeset
1531 if (FRAME_MESSAGE_BUF (f))
25030
c69d9e48269b (make_frame): Set n_current_toolbar_items to 0.
Gerd Moellmann <gerd@gnu.org>
parents: 23746
diff changeset
1532 xfree (FRAME_MESSAGE_BUF (f));
8666
844edbc22875 (Fdelete_frame): Free the frame's glyphs arrays.
Richard M. Stallman <rms@gnu.org>
parents: 8586
diff changeset
1533
1809
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1534 /* Since some events are handled at the interrupt level, we may get
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1535 an event for f at any time; if we zero out the frame's display
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1536 now, then we may trip up the event-handling code. Instead, we'll
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1537 promise that the display of the frame must be valid until we have
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1538 called the window-system-dependent frame destruction routine. */
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1539
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1540 if (FRAME_DEVICE (f)->delete_frame_hook)
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1541 (*FRAME_DEVICE (f)->delete_frame_hook) (f);
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1542
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1543 {
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1544 struct device *device = FRAME_DEVICE (f);
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1545 f->output_data.nothing = 0;
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1546 f->device = 0; /* Now the frame is dead. */
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1547
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1548 /* If needed, delete the device that this frame was on.
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1549 (This must be done after the frame is killed.) */
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1550 device->reference_count--;
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1551 if (device->reference_count == 0)
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1552 {
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1553 kb = NULL;
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1554 if (device->delete_device_hook)
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1555 (*device->delete_device_hook) (device);
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1556 else
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1557 delete_device (device);
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1558 }
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1559 else
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1560 kb = device->kboard;
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1561 }
1809
69b3ee873a9b * frame.c (Fdelete_frame): Clear the frame's display after calling
Jim Blandy <jimb@redhat.com>
parents: 1784
diff changeset
1562
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1563 /* If we've deleted the last_nonminibuf_frame, then try to find
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1564 another one. */
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1565 if (f == last_nonminibuf_frame)
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1566 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1567 Lisp_Object frames;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1568
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1569 last_nonminibuf_frame = 0;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1570
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1571 for (frames = Vframe_list;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1572 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1573 frames = XCDR (frames))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1574 {
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1575 f = XFRAME (XCAR (frames));
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1576 if (!FRAME_MINIBUF_ONLY_P (f))
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1577 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1578 last_nonminibuf_frame = f;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1579 break;
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1580 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1581 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
1582 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1583
56453
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1584 /* If there's no other frame on the same kboard, get out of
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1585 single-kboard state if we're in it for this kboard. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1586 if (kb != NULL)
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1587 {
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1588 Lisp_Object frames;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1589 /* Some frame we found on the same kboard, or nil if there are none. */
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1590 Lisp_Object frame_on_same_kboard;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1591
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1592 frame_on_same_kboard = Qnil;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1593
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1594 for (frames = Vframe_list;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1595 CONSP (frames);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1596 frames = XCDR (frames))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1597 {
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1598 Lisp_Object this;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1599 struct frame *f1;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1600
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1601 this = XCAR (frames);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1602 if (!FRAMEP (this))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1603 abort ();
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1604 f1 = XFRAME (this);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1605
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1606 if (kb == FRAME_KBOARD (f1))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1607 frame_on_same_kboard = this;
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1608 }
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1609
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1610 if (NILP (frame_on_same_kboard))
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1611 not_single_kboard_state (kb);
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1612 }
56453
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1613
b8b142a8e2c6 (Fdelete_frame): If we're in single_bboard_state on
Richard M. Stallman <rms@gnu.org>
parents: 53072
diff changeset
1614
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1615 /* If we've deleted this keyboard's default_minibuffer_frame, try to
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1616 find another one. Prefer minibuffer-only frames, but also notice
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1617 frames with other windows. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1618 if (kb != NULL && EQ (frame, kb->Vdefault_minibuffer_frame))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1619 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1620 Lisp_Object frames;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1621
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1622 /* The last frame we saw with a minibuffer, minibuffer-only or not. */
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1623 Lisp_Object frame_with_minibuf;
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1624 /* Some frame we found on the same kboard, or nil if there are none. */
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1625 Lisp_Object frame_on_same_kboard;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1626
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1627 frame_on_same_kboard = Qnil;
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1628 frame_with_minibuf = Qnil;
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1629
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1630 for (frames = Vframe_list;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1631 CONSP (frames);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1632 frames = XCDR (frames))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1633 {
6500
551bff5cffde (next_frame, prev_frame, other_visible_frames, Fdelete_frame): Use assignment,
Karl Heuer <kwzh@gnu.org>
parents: 6486
diff changeset
1634 Lisp_Object this;
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1635 struct frame *f1;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1636
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1637 this = XCAR (frames);
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
1638 if (!FRAMEP (this))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1639 abort ();
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1640 f1 = XFRAME (this);
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1641
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1642 /* Consider only frames on the same kboard
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1643 and only those with minibuffers. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1644 if (kb == FRAME_KBOARD (f1)
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1645 && FRAME_HAS_MINIBUF_P (f1))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1646 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1647 frame_with_minibuf = this;
11906
3ca56969ba07 (Fdelete_frame): When updating Vdefault_minibuffer_frame,
Karl Heuer <kwzh@gnu.org>
parents: 11794
diff changeset
1648 if (FRAME_MINIBUF_ONLY_P (f1))
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1649 break;
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1650 }
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1651
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1652 if (kb == FRAME_KBOARD (f1))
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1653 frame_on_same_kboard = this;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1654 }
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1655
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1656 if (!NILP (frame_on_same_kboard))
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1657 {
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1658 /* We know that there must be some frame with a minibuffer out
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1659 there. If this were not true, all of the frames present
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1660 would have to be minibufferless, which implies that at some
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1661 point their minibuffer frames must have been deleted, but
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1662 that is prohibited at the top; you can't delete surrogate
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1663 minibuffer frames. */
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1664 if (NILP (frame_with_minibuf))
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1665 abort ();
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1666
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1667 kb->Vdefault_minibuffer_frame = frame_with_minibuf;
12380
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1668 }
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1669 else
2c09b3adbb90 (Fdelete_frame): It's ok to have no minibuffer left on
Richard M. Stallman <rms@gnu.org>
parents: 12379
diff changeset
1670 /* No frames left on this kboard--say no minibuffer either. */
83323
61487e73bbc2 Cleanup: Move kboard fields from struct frame and device-specific descriptors to struct display.
Karoly Lorentey <lorentey@elte.hu>
parents: 83314
diff changeset
1671 kb->Vdefault_minibuffer_frame = Qnil;
708
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1672 }
030fb4635335 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 699
diff changeset
1673
16280
f4833d0bfaaa (Fdelete_frame): Set update_mode_lines.
Richard M. Stallman <rms@gnu.org>
parents: 16263
diff changeset
1674 /* Cause frame titles to update--necessary if we now have just one frame. */
f4833d0bfaaa (Fdelete_frame): Set update_mode_lines.
Richard M. Stallman <rms@gnu.org>
parents: 16263
diff changeset
1675 update_mode_lines = 1;
f4833d0bfaaa (Fdelete_frame): Set update_mode_lines.
Richard M. Stallman <rms@gnu.org>
parents: 16263
diff changeset
1676
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1677 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1678 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1679
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1680 /* Return mouse position in character cell units. */
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1681
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
1682 DEFUN ("mouse-position", Fmouse_position, Smouse_position, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1683 doc: /* Return a list (FRAME X . Y) giving the current mouse frame and position.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1684 The position is given in character cells, where (0, 0) is the
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1685 upper-left corner.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1686 If Emacs is running on a mouseless terminal or hasn't been programmed
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1687 to read the mouse position, it returns the selected frame for FRAME
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1688 and nil for X and Y.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1689 If `mouse-position-function' is non-nil, `mouse-position' calls it,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1690 passing the normal return value to that function as an argument,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1691 and returns whatever that function returns. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1692 ()
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1693 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1694 FRAME_PTR f;
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1695 Lisp_Object lispy_dummy;
1989
b1c1ab20f810 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1920
diff changeset
1696 enum scroll_bar_part party_dummy;
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
1697 Lisp_Object x, y, retval;
6054
24ffc4bc4067 (Fmouse_position): Convert to glyph units.
Richard M. Stallman <rms@gnu.org>
parents: 6012
diff changeset
1698 int col, row;
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1699 unsigned long long_dummy;
27797
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1700 struct gcpro gcpro1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1701
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1702 f = SELECTED_FRAME ();
3658
c2831d419bec (Fmouse_position): Set up defaults before calling the hook.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
1703 x = y = Qnil;
c2831d419bec (Fmouse_position): Set up defaults before calling the hook.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
1704
11025
6c5aef697fbe (Fmouse_position): Do work only if HAVE_MOUSE.
Karl Heuer <kwzh@gnu.org>
parents: 11017
diff changeset
1705 #ifdef HAVE_MOUSE
3658
c2831d419bec (Fmouse_position): Set up defaults before calling the hook.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
1706 /* It's okay for the hook to refrain from storing anything. */
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1707 if (FRAME_DEVICE (f)->mouse_position_hook)
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1708 (*FRAME_DEVICE (f)->mouse_position_hook) (&f, -1,
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1709 &lispy_dummy, &party_dummy,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1710 &x, &y,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1711 &long_dummy);
6854
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1712 if (! NILP (x))
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1713 {
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1714 col = XINT (x);
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1715 row = XINT (y);
12006
3e9db7cb1d05 (Fmouse_position): Use NULL, not 0, as arg of pixel_to_glyph_coords.
Karl Heuer <kwzh@gnu.org>
parents: 12005
diff changeset
1716 pixel_to_glyph_coords (f, col, row, &col, &row, NULL, 1);
6854
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1717 XSETINT (x, col);
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1718 XSETINT (y, row);
c976ac5d85ec (Fmouse_position) [MULTI_FRAME]: Use pixel_to_glyph, not glyph_to_pixel. Skip
Karl Heuer <kwzh@gnu.org>
parents: 6806
diff changeset
1719 }
11025
6c5aef697fbe (Fmouse_position): Do work only if HAVE_MOUSE.
Karl Heuer <kwzh@gnu.org>
parents: 11017
diff changeset
1720 #endif
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
1721 XSETFRAME (lispy_dummy, f);
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
1722 retval = Fcons (lispy_dummy, Fcons (x, y));
27797
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1723 GCPRO1 (retval);
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
1724 if (!NILP (Vmouse_position_function))
27797
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1725 retval = call1 (Vmouse_position_function, retval);
da774b48eb7f (Fmouse_position): GCPRO retval instead of x and y.
Gerd Moellmann <gerd@gnu.org>
parents: 27795
diff changeset
1726 RETURN_UNGCPRO (retval);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1727 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1728
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1729 DEFUN ("mouse-pixel-position", Fmouse_pixel_position,
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1730 Smouse_pixel_position, 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1731 doc: /* Return a list (FRAME X . Y) giving the current mouse frame and position.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1732 The position is given in pixel units, where (0, 0) is the
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1733 upper-left corner.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1734 If Emacs is running on a mouseless terminal or hasn't been programmed
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1735 to read the mouse position, it returns the selected frame for FRAME
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1736 and nil for X and Y. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1737 ()
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1738 {
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1739 FRAME_PTR f;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1740 Lisp_Object lispy_dummy;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1741 enum scroll_bar_part party_dummy;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1742 Lisp_Object x, y;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1743 unsigned long long_dummy;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1744
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1745 f = SELECTED_FRAME ();
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1746 x = y = Qnil;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1747
11126
786f1c82a38e (Fmouse_position--both definitions): Pass 0 for `insist'.
Richard M. Stallman <rms@gnu.org>
parents: 11025
diff changeset
1748 #ifdef HAVE_MOUSE
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1749 /* It's okay for the hook to refrain from storing anything. */
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1750 if (FRAME_DEVICE (f)->mouse_position_hook)
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
1751 (*FRAME_DEVICE (f)->mouse_position_hook) (&f, -1,
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1752 &lispy_dummy, &party_dummy,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1753 &x, &y,
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
1754 &long_dummy);
11126
786f1c82a38e (Fmouse_position--both definitions): Pass 0 for `insist'.
Richard M. Stallman <rms@gnu.org>
parents: 11025
diff changeset
1755 #endif
9268
cb55d0155265 (make_minibuffer_frame, make_terminal_frame, Fselected_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9214
diff changeset
1756 XSETFRAME (lispy_dummy, f);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1757 return Fcons (lispy_dummy, Fcons (x, y));
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1758 }
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1759
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1760 DEFUN ("set-mouse-position", Fset_mouse_position, Sset_mouse_position, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1761 doc: /* Move the mouse pointer to the center of character cell (X,Y) in FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1762 Coordinates are relative to the frame, not a window,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1763 so the coordinates of the top left character in the frame
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1764 may be nonzero due to left-hand scroll bars or the menu bar.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1765
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1766 This function is a no-op for an X frame that is not visible.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1767 If you have just created a frame, you must wait for it to become visible
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1768 before calling this function on it, like this.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1769 (while (not (frame-visible-p frame)) (sleep-for .5)) */)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1770 (frame, x, y)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1771 Lisp_Object frame, x, y;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1772 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1773 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1774 CHECK_NUMBER (x);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1775 CHECK_NUMBER (y);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1776
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1777 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1778 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1779 if (FRAME_WINDOW_P (XFRAME (frame)))
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1780 /* Warping the mouse will cause enternotify and focus events. */
21524
e4ab93e19658 (Fset_mouse_position, Fset_mouse_pixel_position): Fix
Andreas Schwab <schwab@suse.de>
parents: 21514
diff changeset
1781 x_set_mouse_position (XFRAME (frame), XINT (x), XINT (y));
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1782 #else
15396
fbecc317220d Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 15392
diff changeset
1783 #if defined (MSDOS) && defined (HAVE_MOUSE)
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1784 if (FRAME_MSDOS_P (XFRAME (frame)))
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1785 {
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
1786 Fselect_frame (frame);
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1787 mouse_moveto (XINT (x), XINT (y));
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1788 }
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1789 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1790 #endif
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1791
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1792 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1793 }
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1794
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1795 DEFUN ("set-mouse-pixel-position", Fset_mouse_pixel_position,
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1796 Sset_mouse_pixel_position, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1797 doc: /* Move the mouse pointer to pixel position (X,Y) in FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1798 Note, this is a no-op for an X frame that is not visible.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1799 If you have just created a frame, you must wait for it to become visible
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1800 before calling this function on it, like this.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1801 (while (not (frame-visible-p frame)) (sleep-for .5)) */)
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1802 (frame, x, y)
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1803 Lisp_Object frame, x, y;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1804 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1805 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1806 CHECK_NUMBER (x);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1807 CHECK_NUMBER (y);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1808
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1809 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1810 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1811 if (FRAME_WINDOW_P (XFRAME (frame)))
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1812 /* Warping the mouse will cause enternotify and focus events. */
21524
e4ab93e19658 (Fset_mouse_position, Fset_mouse_pixel_position): Fix
Andreas Schwab <schwab@suse.de>
parents: 21514
diff changeset
1813 x_set_mouse_pixel_position (XFRAME (frame), XINT (x), XINT (y));
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1814 #else
15396
fbecc317220d Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 15392
diff changeset
1815 #if defined (MSDOS) && defined (HAVE_MOUSE)
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1816 if (FRAME_MSDOS_P (XFRAME (frame)))
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1817 {
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
1818 Fselect_frame (frame);
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1819 mouse_moveto (XINT (x), XINT (y));
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1820 }
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
1821 #endif
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1822 #endif
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1823
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1824 return Qnil;
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
1825 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1826
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1827 static void make_frame_visible_1 P_ ((Lisp_Object));
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1828
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1829 DEFUN ("make-frame-visible", Fmake_frame_visible, Smake_frame_visible,
3834
1b2144b795aa * frame.c (Fmake_frame_visible): Make this interactively callable;
Jim Blandy <jimb@redhat.com>
parents: 3763
diff changeset
1830 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1831 doc: /* Make the frame FRAME visible (assuming it is an X window).
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1832 If omitted, FRAME defaults to the currently selected frame. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1833 (frame)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1834 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1835 {
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1836 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1837 frame = selected_frame;
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1838
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1839 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1840
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1841 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1842 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1843 if (FRAME_WINDOW_P (XFRAME (frame)))
5105
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1844 {
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1845 FRAME_SAMPLE_VISIBILITY (XFRAME (frame));
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1846 x_make_frame_visible (XFRAME (frame));
9b41ddf1b5f7 (Fmake_frame_visible): Use FRAME_SAMPLE_VISIBILITY. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 4961
diff changeset
1847 }
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1848 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1849
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1850 make_frame_visible_1 (XFRAME (frame)->root_window);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1851
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1852 /* Make menu bar update for the Buffers and Frames menus. */
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1853 windows_or_buffers_changed++;
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1854
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1855 return frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1856 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1857
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1858 /* Update the display_time slot of the buffers shown in WINDOW
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1859 and all its descendents. */
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1860
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1861 static void
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1862 make_frame_visible_1 (window)
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1863 Lisp_Object window;
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1864 {
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1865 struct window *w;
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1866
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1867 for (;!NILP (window); window = w->next)
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1868 {
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1869 w = XWINDOW (window);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1870
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1871 if (!NILP (w->buffer))
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1872 XBUFFER (w->buffer)->display_time = Fcurrent_time ();
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1873
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1874 if (!NILP (w->vchild))
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1875 make_frame_visible_1 (w->vchild);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1876 if (!NILP (w->hchild))
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1877 make_frame_visible_1 (w->hchild);
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1878 }
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1879 }
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
1880
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1881 DEFUN ("make-frame-invisible", Fmake_frame_invisible, Smake_frame_invisible,
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1882 0, 2, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1883 doc: /* Make the frame FRAME invisible (assuming it is an X window).
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1884 If omitted, FRAME defaults to the currently selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1885 Normally you may not make FRAME invisible if all other frames are invisible,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1886 but if the second optional argument FORCE is non-nil, you may do so. */)
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1887 (frame, force)
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1888 Lisp_Object frame, force;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1889 {
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1890 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1891 frame = selected_frame;
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1892
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1893 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1894
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1895 if (NILP (force) && !other_visible_frames (XFRAME (frame)))
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1896 error ("Attempt to make invisible the sole visible or iconified frame");
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
1897
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1898 #if 0 /* This isn't logically necessary, and it can do GC. */
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1899 /* Don't let the frame remain selected. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1900 if (EQ (frame, selected_frame))
36810
a9485f8e43d6 (do_switch_frame): Remove unused parameter NO_EVENT, add
Gerd Moellmann <gerd@gnu.org>
parents: 36804
diff changeset
1901 do_switch_frame (next_frame (frame, Qt), 0, 0)
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1902 #endif
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1903
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1904 /* Don't allow minibuf_window to remain on a deleted frame. */
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1905 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1906 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1907 struct frame *sf = XFRAME (selected_frame);
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1908 Fset_window_buffer (sf->minibuffer_window,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
1909 XWINDOW (minibuf_window)->buffer, Qnil);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1910 minibuf_window = sf->minibuffer_window;
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1911 }
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1912
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1913 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1914 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1915 if (FRAME_WINDOW_P (XFRAME (frame)))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1916 x_make_frame_invisible (XFRAME (frame));
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1917 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1918
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1919 /* Make menu bar update for the Buffers and Frames menus. */
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1920 windows_or_buffers_changed++;
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1921
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1922 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1923 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1924
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1925 DEFUN ("iconify-frame", Ficonify_frame, Siconify_frame,
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1926 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1927 doc: /* Make the frame FRAME into an icon.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1928 If omitted, FRAME defaults to the currently selected frame. */)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1929 (frame)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1930 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1931 {
872
336ffe2bd537 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 785
diff changeset
1932 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1933 frame = selected_frame;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
1934
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1935 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1936
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1937 #if 0 /* This isn't logically necessary, and it can do GC. */
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1938 /* Don't let the frame remain selected. */
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1939 if (EQ (frame, selected_frame))
63184
1ba4135e8efa (Fhandle_switch_frame, Fselect_frame): Delete unused arg no_enter.
Luc Teirlinck <teirllm@auburn.edu>
parents: 61784
diff changeset
1940 Fhandle_switch_frame (next_frame (frame, Qt));
8586
c78654909acf (Fmake_frame_invisible, Ficonify_frame): Don't switch frames.
Karl Heuer <kwzh@gnu.org>
parents: 8264
diff changeset
1941 #endif
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1942
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1943 /* Don't allow minibuf_window to remain on a deleted frame. */
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1944 if (EQ (XFRAME (frame)->minibuffer_window, minibuf_window))
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1945 {
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1946 struct frame *sf = XFRAME (selected_frame);
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1947 Fset_window_buffer (sf->minibuffer_window,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
1948 XWINDOW (minibuf_window)->buffer, Qnil);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
1949 minibuf_window = sf->minibuffer_window;
3283
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1950 }
e2a40a3baa4b (Ficonify_frame, Fmake_frame_invisible):
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
1951
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
1952 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1953 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
1954 if (FRAME_WINDOW_P (XFRAME (frame)))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1955 x_iconify_frame (XFRAME (frame));
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1956 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1957
39918
fa0407ac162f (Fset_mouse_position): Improve style of comment to follow other comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39748
diff changeset
1958 /* Make menu bar update for the Buffers and Frames menus. */
7900
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1959 windows_or_buffers_changed++;
60795e826dad Put stdio.h after config.h.
Richard M. Stallman <rms@gnu.org>
parents: 7646
diff changeset
1960
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1961 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1962 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1963
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1964 DEFUN ("frame-visible-p", Fframe_visible_p, Sframe_visible_p,
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1965 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1966 doc: /* Return t if FRAME is now \"visible\" (actually in use for display).
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1967 A frame that is not \"visible\" is not updated and, if it works through
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1968 a window system, it may not show at all.
56517
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
1969 Return the symbol `icon' if frame is visible only as an icon.
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
1970
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
1971 On a text-only terminal, all frames are considered visible, whether
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
1972 they are currently being displayed or not, and this function returns t
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
1973 for all frames. */)
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1974 (frame)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1975 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1976 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
1977 CHECK_LIVE_FRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1978
6012
650c0f231d17 (Fframe_visible_p): Do FRAME_SAMPLE_VISIBILITY first.
Richard M. Stallman <rms@gnu.org>
parents: 5925
diff changeset
1979 FRAME_SAMPLE_VISIBILITY (XFRAME (frame));
650c0f231d17 (Fframe_visible_p): Do FRAME_SAMPLE_VISIBILITY first.
Richard M. Stallman <rms@gnu.org>
parents: 5925
diff changeset
1980
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
1981 if (FRAME_VISIBLE_P (XFRAME (frame)))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1982 return Qt;
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
1983 if (FRAME_ICONIFIED_P (XFRAME (frame)))
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
1984 return Qicon;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1985 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1986 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1987
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1988 DEFUN ("visible-frame-list", Fvisible_frame_list, Svisible_frame_list,
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1989 0, 0, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
1990 doc: /* Return a list of all frames now \"visible\" (being updated). */)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1991 ()
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1992 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1993 Lisp_Object tail, frame;
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
1994 struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1995 Lisp_Object value;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1996
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1997 value = Qnil;
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
1998 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1999 {
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26088
diff changeset
2000 frame = XCAR (tail);
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
2001 if (!FRAMEP (frame))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2002 continue;
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2003 f = XFRAME (frame);
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
2004 if (FRAME_VISIBLE_P (f))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2005 value = Fcons (frame, value);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2006 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2007 return value;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2008 }
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2009
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2010
11754
7691dbfc7571 (Fraise_frame, Flower_frame): Make arg FRAME optional.
Richard M. Stallman <rms@gnu.org>
parents: 11535
diff changeset
2011 DEFUN ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2012 doc: /* Bring FRAME to the front, so it occludes any frames it overlaps.
56517
c9c9e7be868f (Fselect_frame, Fset_frame_selected_window)
Luc Teirlinck <teirllm@auburn.edu>
parents: 56453
diff changeset
2013 If FRAME is invisible or iconified, make it visible.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2014 If you don't specify a frame, the selected frame is used.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2015 If Emacs is displaying on an ordinary terminal or some other device which
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2016 doesn't support multiple overlapping frames, this function does nothing. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2017 (frame)
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2018 Lisp_Object frame;
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2019 {
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2020 struct frame *f;
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
2021 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2022 frame = selected_frame;
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
2023
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2024 CHECK_LIVE_FRAME (frame);
4961
dd67510308ae (Fraise_frame): Do like the documentation says, and make
Richard M. Stallman <rms@gnu.org>
parents: 4798
diff changeset
2025
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2026 f = XFRAME (frame);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2027
4961
dd67510308ae (Fraise_frame): Do like the documentation says, and make
Richard M. Stallman <rms@gnu.org>
parents: 4798
diff changeset
2028 /* Do like the documentation says. */
dd67510308ae (Fraise_frame): Do like the documentation says, and make
Richard M. Stallman <rms@gnu.org>
parents: 4798
diff changeset
2029 Fmake_frame_visible (frame);
dd67510308ae (Fraise_frame): Do like the documentation says, and make
Richard M. Stallman <rms@gnu.org>
parents: 4798
diff changeset
2030
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
2031 if (FRAME_DEVICE (f)->frame_raise_lower_hook)
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
2032 (*FRAME_DEVICE (f)->frame_raise_lower_hook) (f, 1);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2033
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2034 return Qnil;
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2035 }
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2036
2282
f727944c11aa * frame.c (Fraise_frame, Flower_frame): Renamed from
Jim Blandy <jimb@redhat.com>
parents: 2207
diff changeset
2037 /* Should we have a corresponding function called Flower_Power? */
11754
7691dbfc7571 (Fraise_frame, Flower_frame): Make arg FRAME optional.
Richard M. Stallman <rms@gnu.org>
parents: 11535
diff changeset
2038 DEFUN ("lower-frame", Flower_frame, Slower_frame, 0, 1, "",
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2039 doc: /* Send FRAME to the back, so it is occluded by any frames that overlap it.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2040 If you don't specify a frame, the selected frame is used.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2041 If Emacs is displaying on an ordinary terminal or some other device which
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2042 doesn't support multiple overlapping frames, this function does nothing. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2043 (frame)
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2044 Lisp_Object frame;
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2045 {
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2046 struct frame *f;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2047
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
2048 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2049 frame = selected_frame;
11211
2f9a24a4c9eb (Fraise_frame, Flower_frame): Now interactive.
Richard M. Stallman <rms@gnu.org>
parents: 11169
diff changeset
2050
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2051 CHECK_LIVE_FRAME (frame);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2052
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2053 f = XFRAME (frame);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2054
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
2055 if (FRAME_DEVICE (f)->frame_raise_lower_hook)
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
2056 (*FRAME_DEVICE (f)->frame_raise_lower_hook) (f, 0);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2057
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2058 return Qnil;
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2059 }
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2060
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2061
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2062 DEFUN ("redirect-frame-focus", Fredirect_frame_focus, Sredirect_frame_focus,
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2063 1, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2064 doc: /* Arrange for keystrokes typed at FRAME to be sent to FOCUS-FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2065 In other words, switch-frame events caused by events in FRAME will
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2066 request a switch to FOCUS-FRAME, and `last-event-frame' will be
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2067 FOCUS-FRAME after reading an event typed at FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2068
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2069 If FOCUS-FRAME is omitted or nil, any existing redirection is
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2070 cancelled, and the frame again receives its own keystrokes.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2071
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2072 Focus redirection is useful for temporarily redirecting keystrokes to
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2073 a surrogate minibuffer frame when a frame doesn't have its own
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2074 minibuffer window.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2075
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
2076 A frame's focus redirection can be changed by `select-frame'. If frame
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2077 FOO is selected, and then a different frame BAR is selected, any
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2078 frames redirecting their focus to FOO are shifted to redirect their
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2079 focus to BAR. This allows focus redirection to work properly when the
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2080 user switches from one frame to another using `select-window'.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2081
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2082 This means that a frame whose focus is redirected to itself is treated
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2083 differently from a frame whose focus is redirected to nil; the former
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
2084 is affected by `select-frame', while the latter is not.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2085
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2086 The redirection lasts until `redirect-frame-focus' is called to change it. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2087 (frame, focus_frame)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2088 Lisp_Object frame, focus_frame;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2089 {
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2090 struct frame *f;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2091
3970
020fe391d5c1 * frame.c (Fredirect_frame_focus): Allow redirection of focus of
Jim Blandy <jimb@redhat.com>
parents: 3834
diff changeset
2092 /* Note that we don't check for a live frame here. It's reasonable
020fe391d5c1 * frame.c (Fredirect_frame_focus): Allow redirection of focus of
Jim Blandy <jimb@redhat.com>
parents: 3834
diff changeset
2093 to redirect the focus of a frame you're about to delete, if you
020fe391d5c1 * frame.c (Fredirect_frame_focus): Allow redirection of focus of
Jim Blandy <jimb@redhat.com>
parents: 3834
diff changeset
2094 know what other frame should receive those keystrokes. */
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2095 CHECK_FRAME (frame);
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
2096
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
2097 if (! NILP (focus_frame))
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2098 CHECK_LIVE_FRAME (focus_frame);
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2099
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2100 f = XFRAME (frame);
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2101
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2102 f->focus_frame = focus_frame;
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
2103
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
2104 if (FRAME_DEVICE (f)->frame_rehighlight_hook)
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
2105 (*FRAME_DEVICE (f)->frame_rehighlight_hook) (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2106
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2107 return Qnil;
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2108 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2109
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2110
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2111 DEFUN ("frame-focus", Fframe_focus, Sframe_focus, 1, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2112 doc: /* Return the frame to which FRAME's keystrokes are currently being sent.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2113 This returns nil if FRAME's focus is not redirected.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2114 See `redirect-frame-focus'. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2115 (frame)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2116 Lisp_Object frame;
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2117 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2118 CHECK_LIVE_FRAME (frame);
1709
b86b3237e017 * frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents: 1691
diff changeset
2119
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2120 return FRAME_FOCUS_FRAME (XFRAME (frame));
363
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2121 }
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2122
f4f9b557d934 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 335
diff changeset
2123
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2124
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2125 /* Return the value of frame parameter PROP in frame FRAME. */
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2126
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2127 Lisp_Object
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2128 get_frame_param (frame, prop)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2129 register struct frame *frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2130 Lisp_Object prop;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2131 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2132 register Lisp_Object tem;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2133
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2134 tem = Fassq (prop, frame->param_alist);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2135 if (EQ (tem, Qnil))
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2136 return tem;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2137 return Fcdr (tem);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2138 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2139
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2140 /* Return the buffer-predicate of the selected frame. */
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2141
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2142 Lisp_Object
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2143 frame_buffer_predicate (frame)
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2144 Lisp_Object frame;
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2145 {
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2146 return XFRAME (frame)->buffer_predicate;
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2147 }
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2148
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2149 /* Return the buffer-list of the selected frame. */
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2150
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2151 Lisp_Object
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2152 frame_buffer_list (frame)
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2153 Lisp_Object frame;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2154 {
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2155 return XFRAME (frame)->buffer_list;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2156 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2157
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2158 /* Set the buffer-list of the selected frame. */
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2159
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2160 void
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2161 set_frame_buffer_list (frame, list)
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2162 Lisp_Object frame, list;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2163 {
22188
9fba463768ec (frame_buffer_predicate): New arg FRAME.
Richard M. Stallman <rms@gnu.org>
parents: 21825
diff changeset
2164 XFRAME (frame)->buffer_list = list;
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2165 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2166
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2167 /* Discard BUFFER from the buffer-list and buried-buffer-list of each frame. */
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2168
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2169 void
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2170 frames_discard_buffer (buffer)
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2171 Lisp_Object buffer;
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2172 {
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2173 Lisp_Object frame, tail;
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2174
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2175 FOR_EACH_FRAME (tail, frame)
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2176 {
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2177 XFRAME (frame)->buffer_list
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2178 = Fdelq (buffer, XFRAME (frame)->buffer_list);
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2179 XFRAME (frame)->buried_buffer_list
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2180 = Fdelq (buffer, XFRAME (frame)->buried_buffer_list);
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2181 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2182 }
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2183
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2184 /* Modify the alist in *ALISTPTR to associate PROP with VAL.
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2185 If the alist already has an element for PROP, we change it. */
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2186
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2187 void
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2188 store_in_alist (alistptr, prop, val)
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2189 Lisp_Object *alistptr, val;
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2190 Lisp_Object prop;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2191 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2192 register Lisp_Object tem;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2193
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2194 tem = Fassq (prop, *alistptr);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2195 if (EQ (tem, Qnil))
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2196 *alistptr = Fcons (Fcons (prop, val), *alistptr);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2197 else
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2198 Fsetcdr (tem, val);
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2199 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2200
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2201 static int
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2202 frame_name_fnn_p (str, len)
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2203 char *str;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2204 int len;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2205 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2206 if (len > 1 && str[0] == 'F')
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2207 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2208 char *end_ptr;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2209
25789
d68642dd5bbf (frame_name_fnn_p): Fix previous change.
Eli Zaretskii <eliz@gnu.org>
parents: 25736
diff changeset
2210 strtol (str + 1, &end_ptr, 10);
d68642dd5bbf (frame_name_fnn_p): Fix previous change.
Eli Zaretskii <eliz@gnu.org>
parents: 25736
diff changeset
2211
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2212 if (end_ptr == str + len)
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2213 return 1;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2214 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2215 return 0;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2216 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2217
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2218 /* Set the name of the terminal frame. Also used by MSDOS frames.
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2219 Modeled after x_set_name which is used for WINDOW frames. */
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2220
65976
c332e9c9e66d (Fredirect_frame_focus): Fix typos in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 64770
diff changeset
2221 static void
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2222 set_term_frame_name (f, name)
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2223 struct frame *f;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2224 Lisp_Object name;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2225 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2226 f->explicit_name = ! NILP (name);
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2227
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2228 /* If NAME is nil, set the name to F<num>. */
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2229 if (NILP (name))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2230 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2231 char namebuf[20];
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2232
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2233 /* Check for no change needed in this very common case
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2234 before we do any consing. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2235 if (frame_name_fnn_p (SDATA (f->name),
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2236 SBYTES (f->name)))
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2237 return;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2238
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2239 terminal_frame_count++;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2240 sprintf (namebuf, "F%d", terminal_frame_count);
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2241 name = build_string (namebuf);
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2242 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2243 else
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2244 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2245 CHECK_STRING (name);
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2246
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2247 /* Don't change the name if it's already NAME. */
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2248 if (! NILP (Fstring_equal (name, f->name)))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2249 return;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2250
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2251 /* Don't allow the user to set the frame name to F<num>, so it
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2252 doesn't clash with the names we generate for terminal frames. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2253 if (frame_name_fnn_p (SDATA (name), SBYTES (name)))
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2254 error ("Frame names of the form F<num> are usurped by Emacs");
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2255 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2256
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2257 f->name = name;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2258 update_mode_lines = 1;
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2259 }
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2260
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2261 void
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2262 store_frame_param (f, prop, val)
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2263 struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2264 Lisp_Object prop, val;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2265 {
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2266 register Lisp_Object old_alist_elt;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2267
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2268 /* The buffer-list parameters are stored in a special place and not
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2269 in the alist. */
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2270 if (EQ (prop, Qbuffer_list))
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2271 {
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2272 f->buffer_list = val;
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2273 return;
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2274 }
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2275 if (EQ (prop, Qburied_buffer_list))
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2276 {
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2277 f->buried_buffer_list = val;
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2278 return;
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2279 }
17221
0530a375eb21 (frame_buffer_list, set_frame_buffer_list): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 17032
diff changeset
2280
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2281 /* If PROP is a symbol which is supposed to have frame-local values,
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2282 and it is set up based on this frame, switch to the global
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2283 binding. That way, we can create or alter the frame-local binding
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2284 without messing up the symbol's status. */
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2285 if (SYMBOLP (prop))
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2286 {
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2287 Lisp_Object valcontents;
39581
6d9fa06012a6 Use SYMBOL_VALUE/SET_SYMBOL_VALUE macros instead of accessing
Gerd Moellmann <gerd@gnu.org>
parents: 39503
diff changeset
2288 valcontents = SYMBOL_VALUE (prop);
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2289 if ((BUFFER_LOCAL_VALUEP (valcontents)
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2290 || SOME_BUFFER_LOCAL_VALUEP (valcontents))
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2291 && XBUFFER_LOCAL_VALUE (valcontents)->check_frame
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2292 && XFRAME (XBUFFER_LOCAL_VALUE (valcontents)->frame) == f)
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2293 swap_in_global_binding (prop);
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2294 }
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2295
42743
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2296 #ifndef WINDOWSNT
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2297 /* The tty color mode needs to be set before the frame's parameter
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2298 alist is updated with the new value, because set_tty_color_mode
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2299 wants to look at the old mode. */
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2300 if (FRAME_TERMCAP_P (f) && EQ (prop, Qtty_color_mode))
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2301 set_tty_color_mode (f, val);
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2302 #endif
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
2303
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2304 /* Update the frame parameter alist. */
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2305 old_alist_elt = Fassq (prop, f->param_alist);
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2306 if (EQ (old_alist_elt, Qnil))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2307 f->param_alist = Fcons (Fcons (prop, val), f->param_alist);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2308 else
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2309 Fsetcdr (old_alist_elt, val);
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2310
29616
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2311 /* Update some other special parameters in their special places
8d7a0f575a0e (Fmodify_frame_parameters): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents: 28930
diff changeset
2312 in addition to the alist. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2313
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2314 if (EQ (prop, Qbuffer_predicate))
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2315 f->buffer_predicate = val;
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2316
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2317 if (! FRAME_WINDOW_P (f))
20280
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2318 {
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2319 if (EQ (prop, Qmenu_bar_lines))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2320 set_menu_bar_lines (f, val, make_number (FRAME_MENU_BAR_LINES (f)));
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2321 else if (EQ (prop, Qname))
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2322 set_term_frame_name (f, val);
7916c0d8f2ae (frame_name_fnn_p, set_term_frame_name): New functions.
Eli Zaretskii <eliz@gnu.org>
parents: 20178
diff changeset
2323 }
12761
bffb5ea6fb43 Move various Q... vars to top of file, unconditional.
Richard M. Stallman <rms@gnu.org>
parents: 12742
diff changeset
2324
9127
0b4836daa8e1 (Fframep, make_frame_without_minibuffer, do_switch_frame, prev_frame,
Karl Heuer <kwzh@gnu.org>
parents: 9032
diff changeset
2325 if (EQ (prop, Qminibuffer) && WINDOWP (val))
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2326 {
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2327 if (! MINI_WINDOW_P (XWINDOW (val)))
53072
8787289602d1 Remove period at end of error message.
Jan Djärv <jan.h.d@swipnet.se>
parents: 52754
diff changeset
2328 error ("Surrogate minibuffer windows must be minibuffer windows");
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2329
25710
ee1da070c50f (Fnext_frame): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents: 25669
diff changeset
2330 if ((FRAME_HAS_MINIBUF_P (f) || FRAME_MINIBUF_ONLY_P (f))
16371
906cef1d36bd (store_frame_param): Allow setting a frame's minibuffer
Karl Heuer <kwzh@gnu.org>
parents: 16280
diff changeset
2331 && !EQ (val, f->minibuffer_window))
906cef1d36bd (store_frame_param): Allow setting a frame's minibuffer
Karl Heuer <kwzh@gnu.org>
parents: 16280
diff changeset
2332 error ("Can't change the surrogate minibuffer of a frame with its own minibuffer");
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2333
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2334 /* Install the chosen minibuffer window, with proper buffer. */
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2335 f->minibuffer_window = val;
539
b99d4eb7ed93 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 485
diff changeset
2336 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2337 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2338
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2339 DEFUN ("frame-parameters", Fframe_parameters, Sframe_parameters, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2340 doc: /* Return the parameters-alist of frame FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2341 It is a list of elements of the form (PARM . VALUE), where PARM is a symbol.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2342 The meaningful PARMs depend on the kind of frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2343 If FRAME is omitted, return information on the currently selected frame. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2344 (frame)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2345 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2346 {
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2347 Lisp_Object alist;
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2348 FRAME_PTR f;
15062
de7528327c39 (Fframe_parameters, both definitions):
Richard M. Stallman <rms@gnu.org>
parents: 15001
diff changeset
2349 int height, width;
27575
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2350 struct gcpro gcpro1;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2351
36804
e4331ae9636d (Fframe_parameters): In the `buffer-list' frame
Gerd Moellmann <gerd@gnu.org>
parents: 36433
diff changeset
2352 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2353 frame = selected_frame;
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2354
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2355 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2356 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2357
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2358 if (!FRAME_LIVE_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2359 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2360
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2361 alist = Fcopy_alist (f->param_alist);
27575
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2362 GCPRO1 (alist);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2363
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2364 if (!FRAME_WINDOW_P (f))
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2365 {
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
2366 int fg = FRAME_FOREGROUND_PIXEL (f);
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
2367 int bg = FRAME_BACKGROUND_PIXEL (f);
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2368 Lisp_Object elt;
25117
f6f34f0bc1af (make_terminal_frame) [MSDOS]: Don't call
Eli Zaretskii <eliz@gnu.org>
parents: 25030
diff changeset
2369
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2370 /* If the frame's parameter alist says the colors are
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2371 unspecified and reversed, take the frame's background pixel
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2372 for foreground and vice versa. */
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2373 elt = Fassq (Qforeground_color, alist);
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2374 if (!NILP (elt) && CONSP (elt) && STRINGP (XCDR (elt)))
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2375 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2376 if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2377 unspecified_bg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2378 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2379 store_in_alist (&alist, Qforeground_color, tty_color_name (f, bg));
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2380 else if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2381 unspecified_fg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2382 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2383 store_in_alist (&alist, Qforeground_color, tty_color_name (f, fg));
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2384 }
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2385 else
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2386 store_in_alist (&alist, Qforeground_color, tty_color_name (f, fg));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2387 elt = Fassq (Qbackground_color, alist);
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2388 if (!NILP (elt) && CONSP (elt) && STRINGP (XCDR (elt)))
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2389 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2390 if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2391 unspecified_fg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2392 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2393 store_in_alist (&alist, Qbackground_color, tty_color_name (f, fg));
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2394 else if (strncmp (SDATA (XCDR (elt)),
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2395 unspecified_bg,
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2396 SCHARS (XCDR (elt))) == 0)
33005
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2397 store_in_alist (&alist, Qbackground_color, tty_color_name (f, bg));
87893013088c (Fframe_parameters): Fix the change from 2000-10-16:
Eli Zaretskii <eliz@gnu.org>
parents: 32909
diff changeset
2398 }
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2399 else
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2400 store_in_alist (&alist, Qbackground_color, tty_color_name (f, bg));
26729
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2401 store_in_alist (&alist, intern ("font"),
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2402 build_string (FRAME_MSDOS_P (f)
f5dded41adcc Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents: 26164
diff changeset
2403 ? "ms-dos"
35003
c6726a1e70ce (make_terminal_frame) [WINDOWSNT]: Make terminal frames
Andrew Innes <andrewi@gnu.org>
parents: 33760
diff changeset
2404 : FRAME_W32_P (f) ? "w32term"
c6726a1e70ce (make_terminal_frame) [WINDOWSNT]: Make terminal frames
Andrew Innes <andrewi@gnu.org>
parents: 33760
diff changeset
2405 :"tty"));
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2406 }
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2407 store_in_alist (&alist, Qname, f->name);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2408 height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
15062
de7528327c39 (Fframe_parameters, both definitions):
Richard M. Stallman <rms@gnu.org>
parents: 15001
diff changeset
2409 store_in_alist (&alist, Qheight, make_number (height));
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2410 width = (f->new_text_cols ? f->new_text_cols : FRAME_COLS (f));
15062
de7528327c39 (Fframe_parameters, both definitions):
Richard M. Stallman <rms@gnu.org>
parents: 15001
diff changeset
2411 store_in_alist (&alist, Qwidth, make_number (width));
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2412 store_in_alist (&alist, Qmodeline, (FRAME_WANTS_MODELINE_P (f) ? Qt : Qnil));
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2413 store_in_alist (&alist, Qminibuffer,
1870
d90e9fecad48 * frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
2414 (! FRAME_HAS_MINIBUF_P (f) ? Qnil
7162
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2415 : FRAME_MINIBUF_ONLY_P (f) ? Qonly
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2416 : FRAME_MINIBUF_WINDOW (f)));
06a13bf36a8c (Fframe_parameters) [!MULTI_FRAME]: Unstub it again.
Karl Heuer <kwzh@gnu.org>
parents: 7134
diff changeset
2417 store_in_alist (&alist, Qunsplittable, (FRAME_NO_SPLIT_P (f) ? Qt : Qnil));
36804
e4331ae9636d (Fframe_parameters): In the `buffer-list' frame
Gerd Moellmann <gerd@gnu.org>
parents: 36433
diff changeset
2418 store_in_alist (&alist, Qbuffer_list, frame_buffer_list (frame));
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
2419 store_in_alist (&alist, Qburied_buffer_list, XFRAME (frame)->buried_buffer_list);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2420
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2421 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2422 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2423 if (FRAME_WINDOW_P (f))
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2424 x_report_frame_params (f, &alist);
8244
15d4c2bd29e6 [MULTI_FRAME] (Fframe_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 8168
diff changeset
2425 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2426 #endif
8904
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2427 {
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2428 /* This ought to be correct in f->param_alist for an X frame. */
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2429 Lisp_Object lines;
9309
27370f65dfa1 (make_frame, Fframe_parameters, Fselected_frame, syms_of_frame): Don't use
Karl Heuer <kwzh@gnu.org>
parents: 9268
diff changeset
2430 XSETFASTINT (lines, FRAME_MENU_BAR_LINES (f));
8904
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2431 store_in_alist (&alist, Qmenu_bar_lines, lines);
af3ff2dbaddd (Fframe_parameters): Fix Lisp_Object vs. int problems.
Karl Heuer <kwzh@gnu.org>
parents: 8685
diff changeset
2432 }
27575
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2433
2344fab04513 (Fframe_parameters): Add GCPRO because tty_color_name can GC.
Gerd Moellmann <gerd@gnu.org>
parents: 26729
diff changeset
2434 UNGCPRO;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2435 return alist;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2436 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2437
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2438
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2439 DEFUN ("frame-parameter", Fframe_parameter, Sframe_parameter, 2, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2440 doc: /* Return FRAME's value for parameter PARAMETER.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2441 If FRAME is nil, describe the currently selected frame. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2442 (frame, parameter)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2443 Lisp_Object frame, parameter;
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2444 {
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2445 struct frame *f;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2446 Lisp_Object value;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2447
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2448 if (NILP (frame))
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2449 frame = selected_frame;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2450 else
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2451 CHECK_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2452 CHECK_SYMBOL (parameter);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2453
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2454 f = XFRAME (frame);
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2455 value = Qnil;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2456
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2457 if (FRAME_LIVE_P (f))
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2458 {
40319
52af99ad587f Resurrect a comment lost in the previous commit.
Eli Zaretskii <eliz@gnu.org>
parents: 40317
diff changeset
2459 /* Avoid consing in frequent cases. */
31442
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2460 if (EQ (parameter, Qname))
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2461 value = f->name;
31448
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2462 #ifdef HAVE_X_WINDOWS
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2463 else if (EQ (parameter, Qdisplay) && FRAME_X_P (f))
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2464 value = XCAR (FRAME_X_DISPLAY_INFO (f)->name_list_element);
70b366918608 (Fframe_parameter): Handle `name' and `background-mode'
Gerd Moellmann <gerd@gnu.org>
parents: 31442
diff changeset
2465 #endif /* HAVE_X_WINDOWS */
40313
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2466 else if (EQ (parameter, Qbackground_color)
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2467 || EQ (parameter, Qforeground_color))
31442
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2468 {
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2469 value = Fassq (parameter, f->param_alist);
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2470 if (CONSP (value))
32254
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2471 {
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2472 value = XCDR (value);
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2473 /* Fframe_parameters puts the actual fg/bg color names,
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2474 even if f->param_alist says otherwise. This is
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2475 important when param_alist's notion of colors is
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2476 "unspecified". We need to do the same here. */
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2477 if (STRINGP (value) && !FRAME_WINDOW_P (f))
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2478 {
46467
1a3b3b66171c (Fframe_parameter): Use const for pointer to lisp
Ken Raeburn <raeburn@raeburn.org>
parents: 46370
diff changeset
2479 const char *color_name;
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2480 EMACS_INT csz;
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2481
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2482 if (EQ (parameter, Qbackground_color))
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2483 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2484 color_name = SDATA (value);
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2485 csz = SCHARS (value);
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2486 if (strncmp (color_name, unspecified_bg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2487 value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2488 else if (strncmp (color_name, unspecified_fg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2489 value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2490 }
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2491 else if (EQ (parameter, Qforeground_color))
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2492 {
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2493 color_name = SDATA (value);
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46285
diff changeset
2494 csz = SCHARS (value);
32545
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2495 if (strncmp (color_name, unspecified_fg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2496 value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2497 else if (strncmp (color_name, unspecified_bg, csz) == 0)
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2498 value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f));
288723d38c06 (Fframe_parameters): If a tty's frame's param_alist says
Eli Zaretskii <eliz@gnu.org>
parents: 32254
diff changeset
2499 }
32254
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2500 }
f93728883f64 (Fframe_parameter): For non-windowed frames, if
Eli Zaretskii <eliz@gnu.org>
parents: 31470
diff changeset
2501 }
40317
dfb2afb0aa8a (Fframe_parameter): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 40313
diff changeset
2502 else
dfb2afb0aa8a (Fframe_parameter): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents: 40313
diff changeset
2503 value = Fcdr (Fassq (parameter, Fframe_parameters (frame)));
31442
cb166d3ac8e7 (Fframe_parameter): Handle `name' specially.
Gerd Moellmann <gerd@gnu.org>
parents: 31399
diff changeset
2504 }
40313
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2505 else if (EQ (parameter, Qdisplay_type)
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2506 || EQ (parameter, Qbackground_mode))
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2507 value = Fcdr (Fassq (parameter, f->param_alist));
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2508 else
b2ff79e90309 (Fframe_parameter): Fix a bug whereby some
Gerd Moellmann <gerd@gnu.org>
parents: 40105
diff changeset
2509 value = Fcdr (Fassq (parameter, Fframe_parameters (frame)));
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2510 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2511
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2512 return value;
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2513 }
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2514
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
2515
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2516 DEFUN ("modify-frame-parameters", Fmodify_frame_parameters,
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2517 Smodify_frame_parameters, 2, 2, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2518 doc: /* Modify the parameters of frame FRAME according to ALIST.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2519 If FRAME is nil, it defaults to the selected frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2520 ALIST is an alist of parameters to change and their new values.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2521 Each element of ALIST has the form (PARM . VALUE), where PARM is a symbol.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2522 The meaningful PARMs depend on the kind of frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2523 Undefined PARMs are ignored, but stored in the frame's parameter list
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2524 so that `frame-parameters' will return them.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2525
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2526 The value of frame parameter FOO can also be accessed
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2527 as a frame-local binding for the variable FOO, if you have
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2528 enabled such bindings for that variable with `make-variable-frame-local'. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2529 (frame, alist)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2530 Lisp_Object frame, alist;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2531 {
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2532 FRAME_PTR f;
25710
ee1da070c50f (Fnext_frame): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents: 25669
diff changeset
2533 register Lisp_Object tail, prop, val;
46285
3f111801efb4 Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents: 46015
diff changeset
2534 int count = SPECPDL_INDEX ();
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2535
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2536 /* Bind this to t to inhibit initialization of the default face from
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2537 X resources in face-set-after-frame-default. If we don't inhibit
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2538 this, modifying the `font' frame parameter, for example, while
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2539 there is a `default.attributeFont' X resource, won't work,
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2540 because `default's font is reset to the value of the X resource
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2541 and that resets the `font' frame parameter. */
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2542 specbind (Qinhibit_default_face_x_resources, Qt);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2543
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2544 if (EQ (frame, Qnil))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2545 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2546 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2547 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2548
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2549 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2550 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2551 if (FRAME_WINDOW_P (f))
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2552 x_set_frame_parameters (f, alist);
10207
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2553 else
e6618f52efe9 (Fmodify_frame_parameters): For non-X frames,
Richard M. Stallman <rms@gnu.org>
parents: 9972
diff changeset
2554 #endif
15391
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2555 #ifdef MSDOS
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2556 if (FRAME_MSDOS_P (f))
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2557 IT_set_frame_parameters (f, alist);
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2558 else
d4cec5d7566d (Fset_mouse_position): Remove the DOS-specific
Richard M. Stallman <rms@gnu.org>
parents: 15062
diff changeset
2559 #endif
25523
9e9eeb68482e (Fframep) [macintosh]: Handle mac frame type.
Richard M. Stallman <rms@gnu.org>
parents: 25350
diff changeset
2560
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2561 {
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2562 int length = XINT (Flength (alist));
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2563 int i;
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2564 Lisp_Object *parms
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2565 = (Lisp_Object *) alloca (length * sizeof (Lisp_Object));
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2566 Lisp_Object *values
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2567 = (Lisp_Object *) alloca (length * sizeof (Lisp_Object));
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2569 /* Extract parm names and values into those vectors. */
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2570
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2571 i = 0;
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2572 for (tail = alist; CONSP (tail); tail = Fcdr (tail))
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2573 {
25710
ee1da070c50f (Fnext_frame): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents: 25669
diff changeset
2574 Lisp_Object elt;
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2575
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2576 elt = Fcar (tail);
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2577 parms[i] = Fcar (elt);
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2578 values[i] = Fcdr (elt);
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2579 i++;
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2580 }
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2581
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2582 /* Now process them in reverse of specified order. */
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2583 for (i--; i >= 0; i--)
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2584 {
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2585 prop = parms[i];
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2586 val = values[i];
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2587 store_frame_param (f, prop, val);
63643
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2588
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2589 /* Changing the background color might change the background
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2590 mode, so that we have to load new defface specs.
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2591 Call frame-set-background-mode to do that. */
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2592 if (EQ (prop, Qbackground_color))
844f9903e3f9 (Fmodify_frame_parameters):
Juri Linkov <juri@jurta.org>
parents: 63184
diff changeset
2593 call1 (Qframe_set_background_mode, frame);
16568
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2594 }
cc6d85f9df0f (Fmodify_frame_parameters): Use alist in reverse order.
Richard M. Stallman <rms@gnu.org>
parents: 16536
diff changeset
2595 }
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2596
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
2597 return unbind_to (count, Qnil);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2598 }
83427
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2599
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2600 DEFUN ("frame-with-environment", Fframe_with_environment, Sframe_with_environment, 0, 1, 0,
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2601 doc: /* Return the frame that has the environment variable list for FRAME.
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2602
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2603 The frame-local environment variable list is normally shared between
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2604 frames that were created in the same Emacsclient session. The
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2605 environment list is stored in a single frame's 'environment parameter;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2606 the other frames' 'environment parameter is set to this frame. This
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2607 function follows to chain of 'environment references to reach the
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2608 frame that stores the actual local environment list, and returns that
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2609 frame. */)
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2610 (frame)
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2611 Lisp_Object frame;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2612 {
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2613 Lisp_Object hare, tortoise;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2614
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2615 if (NILP (frame))
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2616 frame = selected_frame;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2617 CHECK_FRAME (frame);
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2618
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2619 hare = tortoise = get_frame_param (XFRAME (frame), Qenvironment);
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2620 while (!NILP (hare) && FRAMEP (hare))
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2621 {
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2622 frame = hare;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2623 hare = get_frame_param (XFRAME (hare), Qenvironment);
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2624 if (NILP (hare) || !FRAMEP (hare))
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2625 break;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2626 frame = hare;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2627 hare = get_frame_param (XFRAME (hare), Qenvironment);
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2628 tortoise = get_frame_param (XFRAME (tortoise), Qenvironment);
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2629 if (EQ (hare, tortoise))
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2630 error ("Cyclic frame-local environment indirection");
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2631 }
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2632
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2633 return frame;
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2634 }
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
2635
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2636
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2637 DEFUN ("frame-char-height", Fframe_char_height, Sframe_char_height,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2638 0, 1, 0,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2639 doc: /* Height in pixels of a line in the font in frame FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2640 If FRAME is omitted, the selected frame is used.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2641 For a terminal frame, the value is always 1. */)
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2642 (frame)
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2643 Lisp_Object frame;
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2644 {
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2645 struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2646
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2647 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2648 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2649 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2650 f = XFRAME (frame);
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2651
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2652 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2653 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2654 return make_number (x_char_height (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2655 else
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2656 #endif
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2657 return make_number (1);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2658 }
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2659
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2660
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2661 DEFUN ("frame-char-width", Fframe_char_width, Sframe_char_width,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2662 0, 1, 0,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2663 doc: /* Width in pixels of characters in the font in frame FRAME.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2664 If FRAME is omitted, the selected frame is used.
64713
fb0a0e5596b6 (Fframe_char_width): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents: 64084
diff changeset
2665 On a graphical screen, the width is the standard width of the default font.
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2666 For a terminal screen, the value is always 1. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2667 (frame)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2668 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2669 {
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2670 struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2671
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2672 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2673 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2674 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2675 f = XFRAME (frame);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2676
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2677 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2678 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2679 return make_number (x_char_width (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2680 else
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2681 #endif
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2682 return make_number (1);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2683 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2684
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2685 DEFUN ("frame-pixel-height", Fframe_pixel_height,
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2686 Sframe_pixel_height, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2687 doc: /* Return a FRAME's height in pixels.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2688 This counts only the height available for text lines,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2689 not menu bars on window-system Emacs frames.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2690 For a terminal frame, the result really gives the height in characters.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2691 If FRAME is omitted, the selected frame is used. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2692 (frame)
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2693 Lisp_Object frame;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2694 {
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2695 struct frame *f;
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2696
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2697 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2698 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2699 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2700 f = XFRAME (frame);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2701
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2702 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2703 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2704 return make_number (x_pixel_height (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2705 else
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2706 #endif
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2707 return make_number (FRAME_LINES (f));
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2708 }
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2709
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2710 DEFUN ("frame-pixel-width", Fframe_pixel_width,
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2711 Sframe_pixel_width, 0, 1, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2712 doc: /* Return FRAME's width in pixels.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2713 For a terminal frame, the result really gives the width in characters.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2714 If FRAME is omitted, the selected frame is used. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2715 (frame)
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2716 Lisp_Object frame;
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2717 {
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2718 struct frame *f;
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2719
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2720 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2721 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2722 CHECK_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2723 f = XFRAME (frame);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2724
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2725 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2726 if (FRAME_WINDOW_P (f))
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2727 return make_number (x_pixel_width (f));
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2728 else
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2729 #endif
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2730 return make_number (FRAME_COLS (f));
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2731 }
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
2732
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2733 DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2734 doc: /* Specify that the frame FRAME has LINES lines.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2735 Optional third arg non-nil means that redisplay should use LINES lines
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2736 but that the idea of the actual height of the frame should not be changed. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2737 (frame, lines, pretend)
14077
a6d3ce4a2f8e (Fhandle_switch_frame, Fset_frame_height): Harmonize arguments with
Erik Naggum <erik@naggum.no>
parents: 13748
diff changeset
2738 Lisp_Object frame, lines, pretend;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2739 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2740 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2741
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2742 CHECK_NUMBER (lines);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2743 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2744 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2745 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2746 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2747
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2748 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2749 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2750 if (FRAME_WINDOW_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2751 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2752 if (XINT (lines) != FRAME_LINES (f))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2753 x_set_window_size (f, 1, FRAME_COLS (f), XINT (lines));
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2754 do_pending_window_change (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2755 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2756 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2757 #endif
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2758 change_frame_size (f, XINT (lines), 0, !NILP (pretend), 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2759 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2760 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2761
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2762 DEFUN ("set-frame-width", Fset_frame_width, Sset_frame_width, 2, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2763 doc: /* Specify that the frame FRAME has COLS columns.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2764 Optional third arg non-nil means that redisplay should use COLS columns
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2765 but that the idea of the actual width of the frame should not be changed. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2766 (frame, cols, pretend)
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2767 Lisp_Object frame, cols, pretend;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2768 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2769 register struct frame *f;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2770 CHECK_NUMBER (cols);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2771 if (NILP (frame))
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2772 frame = selected_frame;
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2773 CHECK_LIVE_FRAME (frame);
25669
97d5951366cd (Fmake_terminal_frame): Use SELECTED_FRAME.
Gerd Moellmann <gerd@gnu.org>
parents: 25544
diff changeset
2774 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2775
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2776 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2777 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2778 if (FRAME_WINDOW_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2779 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2780 if (XINT (cols) != FRAME_COLS (f))
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2781 x_set_window_size (f, 1, XINT (cols), FRAME_LINES (f));
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2782 do_pending_window_change (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2783 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2784 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2785 #endif
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2786 change_frame_size (f, 0, XINT (cols), !NILP (pretend), 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2787 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2788 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2789
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2790 DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2791 doc: /* Sets size of FRAME to COLS by ROWS, measured in characters. */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2792 (frame, cols, rows)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2793 Lisp_Object frame, cols, rows;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2794 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2795 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2796
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2797 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2798 CHECK_NUMBER (cols);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2799 CHECK_NUMBER (rows);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2800 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2801
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2802 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2803 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2804 if (FRAME_WINDOW_P (f))
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2805 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2806 if (XINT (rows) != FRAME_LINES (f)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2807 || XINT (cols) != FRAME_COLS (f)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2808 || f->new_text_lines || f->new_text_cols)
5925
806e876cacb4 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
Richard M. Stallman <rms@gnu.org>
parents: 5552
diff changeset
2809 x_set_window_size (f, 1, XINT (cols), XINT (rows));
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2810 do_pending_window_change (0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2811 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2812 else
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2813 #endif
25350
f964a1e5b29c Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents: 25209
diff changeset
2814 change_frame_size (f, XINT (rows), XINT (cols), 0, 0, 0);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2815
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2816 return Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2817 }
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2818
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
2819 DEFUN ("set-frame-position", Fset_frame_position,
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2820 Sset_frame_position, 3, 3, 0,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2821 doc: /* Sets position of FRAME in pixels to XOFFSET by YOFFSET.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2822 This is actually the position of the upper left corner of the frame.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2823 Negative values for XOFFSET or YOFFSET are interpreted relative to
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2824 the rightmost or bottommost possible position (that stays within the screen). */)
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
2825 (frame, xoffset, yoffset)
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2826 Lisp_Object frame, xoffset, yoffset;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2827 {
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2828 register struct frame *f;
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2829
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2830 CHECK_LIVE_FRAME (frame);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2831 CHECK_NUMBER (xoffset);
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40568
diff changeset
2832 CHECK_NUMBER (yoffset);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
2833 f = XFRAME (frame);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2834
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
2835 /* I think this should be done with a hook. */
13412
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2836 #ifdef HAVE_WINDOW_SYSTEM
1ed740e9aa64 [HAVE_NTGUI]: Test for a Win32 frame in procedures that test for an X frame.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13396
diff changeset
2837 if (FRAME_WINDOW_P (f))
6921
50060d486c47 (Fset_frame_position): Pass new arg to x_set_offset.
Richard M. Stallman <rms@gnu.org>
parents: 6854
diff changeset
2838 x_set_offset (f, XINT (xoffset), XINT (yoffset), 1);
965
0eb68c6c452a * frame.c (Qheight, Qicon, Qmodeline, Qname, Qnone, Qonly,
Jim Blandy <jimb@redhat.com>
parents: 886
diff changeset
2839 #endif
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2840
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2841 return Qt;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2842 }
777
c99faf9381bb *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
2843
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2844
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2845 /***********************************************************************
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2846 Frame Parameters
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2847 ***********************************************************************/
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2848
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2849 /* Connect the frame-parameter names for X frames
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2850 to the ways of passing the parameter values to the window system.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2851
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2852 The name of a parameter, as a Lisp symbol,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2853 has an `x-frame-parameter' property which is an integer in Lisp
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2854 that is an index in this table. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2855
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2856 struct frame_parm_table {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2857 char *name;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2858 Lisp_Object *variable;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2859 };
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2860
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2861 static struct frame_parm_table frame_parms[] =
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2862 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2863 {"auto-raise", &Qauto_raise},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2864 {"auto-lower", &Qauto_lower},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2865 {"background-color", 0},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2866 {"border-color", &Qborder_color},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2867 {"border-width", &Qborder_width},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2868 {"cursor-color", &Qcursor_color},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2869 {"cursor-type", &Qcursor_type},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2870 {"font", 0},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2871 {"foreground-color", 0},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2872 {"icon-name", &Qicon_name},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2873 {"icon-type", &Qicon_type},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2874 {"internal-border-width", &Qinternal_border_width},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2875 {"menu-bar-lines", &Qmenu_bar_lines},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2876 {"mouse-color", &Qmouse_color},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2877 {"name", &Qname},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2878 {"scroll-bar-width", &Qscroll_bar_width},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2879 {"title", &Qtitle},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2880 {"unsplittable", &Qunsplittable},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2881 {"vertical-scroll-bars", &Qvertical_scroll_bars},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2882 {"visibility", &Qvisibility},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2883 {"tool-bar-lines", &Qtool_bar_lines},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2884 {"scroll-bar-foreground", &Qscroll_bar_foreground},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2885 {"scroll-bar-background", &Qscroll_bar_background},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2886 {"screen-gamma", &Qscreen_gamma},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2887 {"line-spacing", &Qline_spacing},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2888 {"left-fringe", &Qleft_fringe},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2889 {"right-fringe", &Qright_fringe},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2890 {"wait-for-wm", &Qwait_for_wm},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2891 {"fullscreen", &Qfullscreen},
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2892 };
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2893
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2894 #ifdef HAVE_WINDOW_SYSTEM
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2895
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2896 extern Lisp_Object Qbox;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2897 extern Lisp_Object Qtop;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2898
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2899 /* Calculate fullscreen size. Return in *TOP_POS and *LEFT_POS the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2900 wanted positions of the WM window (not emacs window).
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2901 Return in *WIDTH and *HEIGHT the wanted width and height of Emacs
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2902 window (FRAME_X_WINDOW).
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2903 */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2904
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2905 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2906 x_fullscreen_adjust (f, width, height, top_pos, left_pos)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2907 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2908 int *width;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2909 int *height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2910 int *top_pos;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2911 int *left_pos;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2912 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2913 int newwidth = FRAME_COLS (f);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2914 int newheight = FRAME_LINES (f);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2915
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2916 *top_pos = f->top_pos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2917 *left_pos = f->left_pos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2918
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2919 if (f->want_fullscreen & FULLSCREEN_HEIGHT)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2920 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2921 int ph;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2922
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2923 ph = FRAME_X_DISPLAY_INFO (f)->height;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2924 newheight = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, ph);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2925 ph = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, newheight) - f->y_pixels_diff;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2926 newheight = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, ph);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2927 *top_pos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2928 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2929
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2930 if (f->want_fullscreen & FULLSCREEN_WIDTH)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2931 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2932 int pw;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2933
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2934 pw = FRAME_X_DISPLAY_INFO (f)->width;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2935 newwidth = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pw);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2936 pw = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, newwidth) - f->x_pixels_diff;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
2937 newwidth = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pw);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2938 *left_pos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2939 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2940
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2941 *width = newwidth;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2942 *height = newheight;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2943 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2944
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2945
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2946 /* Change the parameters of frame F as specified by ALIST.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2947 If a parameter is not specially recognized, do nothing special;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2948 otherwise call the `x_set_...' function for that parameter.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2949 Except for certain geometry properties, always call store_frame_param
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2950 to store the new value in the parameter alist. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2951
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2952 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2953 x_set_frame_parameters (f, alist)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2954 FRAME_PTR f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2955 Lisp_Object alist;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2956 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2957 Lisp_Object tail;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2958
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2959 /* If both of these parameters are present, it's more efficient to
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2960 set them both at once. So we wait until we've looked at the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2961 entire list before we set them. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2962 int width, height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2963
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2964 /* Same here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2965 Lisp_Object left, top;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2966
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2967 /* Same with these. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2968 Lisp_Object icon_left, icon_top;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2969
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2970 /* Record in these vectors all the parms specified. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2971 Lisp_Object *parms;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2972 Lisp_Object *values;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2973 int i, p;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2974 int left_no_change = 0, top_no_change = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2975 int icon_left_no_change = 0, icon_top_no_change = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2976 int fullscreen_is_being_set = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2977
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2978 struct gcpro gcpro1, gcpro2;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2979
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2980 i = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2981 for (tail = alist; CONSP (tail); tail = Fcdr (tail))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2982 i++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2983
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2984 parms = (Lisp_Object *) alloca (i * sizeof (Lisp_Object));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2985 values = (Lisp_Object *) alloca (i * sizeof (Lisp_Object));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2986
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2987 /* Extract parm names and values into those vectors. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2988
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2989 i = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2990 for (tail = alist; CONSP (tail); tail = Fcdr (tail))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2991 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2992 Lisp_Object elt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2993
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2994 elt = Fcar (tail);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2995 parms[i] = Fcar (elt);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2996 values[i] = Fcdr (elt);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2997 i++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2998 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2999 /* TAIL and ALIST are not used again below here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3000 alist = tail = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3001
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3002 GCPRO2 (*parms, *values);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3003 gcpro1.nvars = i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3004 gcpro2.nvars = i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3005
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3006 /* There is no need to gcpro LEFT, TOP, ICON_LEFT, or ICON_TOP,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3007 because their values appear in VALUES and strings are not valid. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3008 top = left = Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3009 icon_left = icon_top = Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3010
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3011 /* Provide default values for HEIGHT and WIDTH. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3012 width = (f->new_text_cols ? f->new_text_cols : FRAME_COLS (f));
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3013 height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3014
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3015 /* Process foreground_color and background_color before anything else.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3016 They are independent of other properties, but other properties (e.g.,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3017 cursor_color) are dependent upon them. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3018 /* Process default font as well, since fringe widths depends on it. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3019 /* Also, process fullscreen, width and height depend upon that */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3020 for (p = 0; p < i; p++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3021 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3022 Lisp_Object prop, val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3023
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3024 prop = parms[p];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3025 val = values[p];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3026 if (EQ (prop, Qforeground_color)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3027 || EQ (prop, Qbackground_color)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3028 || EQ (prop, Qfont)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3029 || EQ (prop, Qfullscreen))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3030 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3031 register Lisp_Object param_index, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3032
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3033 old_value = get_frame_param (f, prop);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3034 fullscreen_is_being_set |= EQ (prop, Qfullscreen);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3035
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3036 if (NILP (Fequal (val, old_value)))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3037 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3038 store_frame_param (f, prop, val);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3039
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3040 param_index = Fget (prop, Qx_frame_parameter);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3041 if (NATNUMP (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3042 && (XFASTINT (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3043 < sizeof (frame_parms)/sizeof (frame_parms[0]))
82992
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
3044 && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
3045 (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3046 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3047 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3048 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3049
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3050 /* Now process them in reverse of specified order. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3051 for (i--; i >= 0; i--)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3052 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3053 Lisp_Object prop, val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3054
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3055 prop = parms[i];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3056 val = values[i];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3057
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3058 if (EQ (prop, Qwidth) && NUMBERP (val))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3059 width = XFASTINT (val);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3060 else if (EQ (prop, Qheight) && NUMBERP (val))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3061 height = XFASTINT (val);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3062 else if (EQ (prop, Qtop))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3063 top = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3064 else if (EQ (prop, Qleft))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3065 left = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3066 else if (EQ (prop, Qicon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3067 icon_top = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3068 else if (EQ (prop, Qicon_left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3069 icon_left = val;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3070 else if (EQ (prop, Qforeground_color)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3071 || EQ (prop, Qbackground_color)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3072 || EQ (prop, Qfont)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3073 || EQ (prop, Qfullscreen))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3074 /* Processed above. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3075 continue;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3076 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3077 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3078 register Lisp_Object param_index, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3079
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3080 old_value = get_frame_param (f, prop);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3081
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3082 store_frame_param (f, prop, val);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3083
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3084 param_index = Fget (prop, Qx_frame_parameter);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3085 if (NATNUMP (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3086 && (XFASTINT (param_index)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3087 < sizeof (frame_parms)/sizeof (frame_parms[0]))
82992
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
3088 && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
5de4189e659d Got rid of the rif (window-based redisplay interface) global variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 82991
diff changeset
3089 (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3090 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3091 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3092
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3093 /* Don't die if just one of these was set. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3094 if (EQ (left, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3095 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3096 left_no_change = 1;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3097 if (f->left_pos < 0)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3098 left = Fcons (Qplus, Fcons (make_number (f->left_pos), Qnil));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3099 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3100 XSETINT (left, f->left_pos);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3101 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3102 if (EQ (top, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3103 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3104 top_no_change = 1;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3105 if (f->top_pos < 0)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3106 top = Fcons (Qplus, Fcons (make_number (f->top_pos), Qnil));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3107 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3108 XSETINT (top, f->top_pos);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3109 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3110
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3111 /* If one of the icon positions was not set, preserve or default it. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3112 if (EQ (icon_left, Qunbound) || ! INTEGERP (icon_left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3113 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3114 icon_left_no_change = 1;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3115 icon_left = Fcdr (Fassq (Qicon_left, f->param_alist));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3116 if (NILP (icon_left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3117 XSETINT (icon_left, 0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3118 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3119 if (EQ (icon_top, Qunbound) || ! INTEGERP (icon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3120 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3121 icon_top_no_change = 1;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3122 icon_top = Fcdr (Fassq (Qicon_top, f->param_alist));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3123 if (NILP (icon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3124 XSETINT (icon_top, 0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3125 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3126
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3127 if (FRAME_VISIBLE_P (f) && fullscreen_is_being_set)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3128 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3129 /* If the frame is visible already and the fullscreen parameter is
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3130 being set, it is too late to set WM manager hints to specify
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3131 size and position.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3132 Here we first get the width, height and position that applies to
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3133 fullscreen. We then move the frame to the appropriate
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3134 position. Resize of the frame is taken care of in the code after
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3135 this if-statement. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3136 int new_left, new_top;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3137
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3138 x_fullscreen_adjust (f, &width, &height, &new_top, &new_left);
52754
d08832a11cfd * w32term.c (w32_read_socket): Remove call to x_check_fullscreen_move,
Jan Djärv <jan.h.d@swipnet.se>
parents: 52753
diff changeset
3139 if (new_top != f->top_pos || new_left != f->left_pos)
d08832a11cfd * w32term.c (w32_read_socket): Remove call to x_check_fullscreen_move,
Jan Djärv <jan.h.d@swipnet.se>
parents: 52753
diff changeset
3140 x_set_offset (f, new_left, new_top, 1);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3141 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3142
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3143 /* Don't set these parameters unless they've been explicitly
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3144 specified. The window might be mapped or resized while we're in
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3145 this function, and we don't want to override that unless the lisp
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3146 code has asked for it.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3147
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3148 Don't set these parameters unless they actually differ from the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3149 window's current parameters; the window may not actually exist
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3150 yet. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3151 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3152 Lisp_Object frame;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3153
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3154 check_frame_size (f, &height, &width);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3155
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3156 XSETFRAME (frame, f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3157
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3158 if (width != FRAME_COLS (f)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3159 || height != FRAME_LINES (f)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3160 || f->new_text_lines || f->new_text_cols)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3161 Fset_frame_size (frame, make_number (width), make_number (height));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3162
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3163 if ((!NILP (left) || !NILP (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3164 && ! (left_no_change && top_no_change)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3165 && ! (NUMBERP (left) && XINT (left) == f->left_pos
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3166 && NUMBERP (top) && XINT (top) == f->top_pos))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3167 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3168 int leftpos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3169 int toppos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3170
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3171 /* Record the signs. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3172 f->size_hint_flags &= ~ (XNegative | YNegative);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3173 if (EQ (left, Qminus))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3174 f->size_hint_flags |= XNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3175 else if (INTEGERP (left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3176 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3177 leftpos = XINT (left);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3178 if (leftpos < 0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3179 f->size_hint_flags |= XNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3180 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3181 else if (CONSP (left) && EQ (XCAR (left), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3182 && CONSP (XCDR (left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3183 && INTEGERP (XCAR (XCDR (left))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3184 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3185 leftpos = - XINT (XCAR (XCDR (left)));
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3186 f->size_hint_flags |= XNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3187 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3188 else if (CONSP (left) && EQ (XCAR (left), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3189 && CONSP (XCDR (left))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3190 && INTEGERP (XCAR (XCDR (left))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3191 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3192 leftpos = XINT (XCAR (XCDR (left)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3193 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3194
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3195 if (EQ (top, Qminus))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3196 f->size_hint_flags |= YNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3197 else if (INTEGERP (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3198 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3199 toppos = XINT (top);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3200 if (toppos < 0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3201 f->size_hint_flags |= YNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3202 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3203 else if (CONSP (top) && EQ (XCAR (top), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3204 && CONSP (XCDR (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3205 && INTEGERP (XCAR (XCDR (top))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3206 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3207 toppos = - XINT (XCAR (XCDR (top)));
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3208 f->size_hint_flags |= YNegative;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3209 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3210 else if (CONSP (top) && EQ (XCAR (top), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3211 && CONSP (XCDR (top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3212 && INTEGERP (XCAR (XCDR (top))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3213 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3214 toppos = XINT (XCAR (XCDR (top)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3215 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3216
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3217
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3218 /* Store the numeric value of the position. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3219 f->top_pos = toppos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3220 f->left_pos = leftpos;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3221
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3222 f->win_gravity = NorthWestGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3223
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3224 /* Actually set that position, and convert to absolute. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3225 x_set_offset (f, leftpos, toppos, -1);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3226 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3227
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3228 if ((!NILP (icon_left) || !NILP (icon_top))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3229 && ! (icon_left_no_change && icon_top_no_change))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3230 x_wm_set_icon_position (f, XINT (icon_left), XINT (icon_top));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3231 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3232
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3233 UNGCPRO;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3234 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3235
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3236
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3237 /* Insert a description of internally-recorded parameters of frame X
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3238 into the parameter alist *ALISTPTR that is to be given to the user.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3239 Only parameters that are specific to the X window system
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3240 and whose values are not correctly recorded in the frame's
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3241 param_alist need to be considered here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3242
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3243 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3244 x_report_frame_params (f, alistptr)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3245 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3246 Lisp_Object *alistptr;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3247 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3248 char buf[16];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3249 Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3250
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3251 /* Represent negative positions (off the top or left screen edge)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3252 in a way that Fmodify_frame_parameters will understand correctly. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3253 XSETINT (tem, f->left_pos);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3254 if (f->left_pos >= 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3255 store_in_alist (alistptr, Qleft, tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3256 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3257 store_in_alist (alistptr, Qleft, Fcons (Qplus, Fcons (tem, Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3258
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3259 XSETINT (tem, f->top_pos);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3260 if (f->top_pos >= 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3261 store_in_alist (alistptr, Qtop, tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3262 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3263 store_in_alist (alistptr, Qtop, Fcons (Qplus, Fcons (tem, Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3264
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3265 store_in_alist (alistptr, Qborder_width,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3266 make_number (f->border_width));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3267 store_in_alist (alistptr, Qinternal_border_width,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3268 make_number (FRAME_INTERNAL_BORDER_WIDTH (f)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3269 store_in_alist (alistptr, Qleft_fringe,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3270 make_number (FRAME_LEFT_FRINGE_WIDTH (f)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3271 store_in_alist (alistptr, Qright_fringe,
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3272 make_number (FRAME_RIGHT_FRINGE_WIDTH (f)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3273 store_in_alist (alistptr, Qscroll_bar_width,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3274 (! FRAME_HAS_VERTICAL_SCROLL_BARS (f)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3275 ? make_number (0)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3276 : FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3277 ? make_number (FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3278 /* nil means "use default width"
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3279 for non-toolkit scroll bar.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3280 ruler-mode.el depends on this. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3281 : Qnil));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3282 sprintf (buf, "%ld", (long) FRAME_X_WINDOW (f));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3283 store_in_alist (alistptr, Qwindow_id,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3284 build_string (buf));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3285 #ifdef HAVE_X_WINDOWS
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3286 #ifdef USE_X_TOOLKIT
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3287 /* Tooltip frame may not have this widget. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3288 if (FRAME_X_OUTPUT (f)->widget)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3289 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3290 sprintf (buf, "%ld", (long) FRAME_OUTER_WINDOW (f));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3291 store_in_alist (alistptr, Qouter_window_id,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3292 build_string (buf));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3293 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3294 store_in_alist (alistptr, Qicon_name, f->icon_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3295 FRAME_SAMPLE_VISIBILITY (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3296 store_in_alist (alistptr, Qvisibility,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3297 (FRAME_VISIBLE_P (f) ? Qt
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3298 : FRAME_ICONIFIED_P (f) ? Qicon : Qnil));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3299 store_in_alist (alistptr, Qdisplay,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3300 XCAR (FRAME_X_DISPLAY_INFO (f)->name_list_element));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3301
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3302 if (FRAME_X_OUTPUT (f)->parent_desc == FRAME_X_DISPLAY_INFO (f)->root_window)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3303 tem = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3304 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3305 XSETFASTINT (tem, FRAME_X_OUTPUT (f)->parent_desc);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3306 store_in_alist (alistptr, Qparent_id, tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3307 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3308
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3309
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3310 /* Change the `fullscreen' frame parameter of frame F. OLD_VALUE is
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3311 the previous value of that parameter, NEW_VALUE is the new value. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3312
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3313 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3314 x_set_fullscreen (f, new_value, old_value)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3315 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3316 Lisp_Object new_value, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3317 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3318 if (NILP (new_value))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3319 f->want_fullscreen = FULLSCREEN_NONE;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3320 else if (EQ (new_value, Qfullboth))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3321 f->want_fullscreen = FULLSCREEN_BOTH;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3322 else if (EQ (new_value, Qfullwidth))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3323 f->want_fullscreen = FULLSCREEN_WIDTH;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3324 else if (EQ (new_value, Qfullheight))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3325 f->want_fullscreen = FULLSCREEN_HEIGHT;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3326 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3327
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3328
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3329 /* Change the `line-spacing' frame parameter of frame F. OLD_VALUE is
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3330 the previous value of that parameter, NEW_VALUE is the new value. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3331
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3332 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3333 x_set_line_spacing (f, new_value, old_value)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3334 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3335 Lisp_Object new_value, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3336 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3337 if (NILP (new_value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3338 f->extra_line_spacing = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3339 else if (NATNUMP (new_value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3340 f->extra_line_spacing = XFASTINT (new_value);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3341 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3342 Fsignal (Qerror, Fcons (build_string ("Invalid line-spacing"),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3343 Fcons (new_value, Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3344 if (FRAME_VISIBLE_P (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3345 redraw_frame (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3346 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3347
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3348
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3349 /* Change the `screen-gamma' frame parameter of frame F. OLD_VALUE is
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3350 the previous value of that parameter, NEW_VALUE is the new value. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3351
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3352 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3353 x_set_screen_gamma (f, new_value, old_value)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3354 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3355 Lisp_Object new_value, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3356 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3357 if (NILP (new_value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3358 f->gamma = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3359 else if (NUMBERP (new_value) && XFLOATINT (new_value) > 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3360 /* The value 0.4545 is the normal viewing gamma. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3361 f->gamma = 1.0 / (0.4545 * XFLOATINT (new_value));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3362 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3363 Fsignal (Qerror, Fcons (build_string ("Invalid screen-gamma"),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3364 Fcons (new_value, Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3365
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3366 clear_face_cache (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3367 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3368
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3369
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3370 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3371 x_set_font (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3372 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3373 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3374 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3375 Lisp_Object result;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3376 Lisp_Object fontset_name;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3377 Lisp_Object frame;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3378 int old_fontset = FRAME_FONTSET(f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3379
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3380 CHECK_STRING (arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3381
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3382 fontset_name = Fquery_fontset (arg, Qnil);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3383
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3384 BLOCK_INPUT;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3385 result = (STRINGP (fontset_name)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3386 ? x_new_fontset (f, SDATA (fontset_name))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3387 : x_new_font (f, SDATA (arg)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3388 UNBLOCK_INPUT;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3389
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3390 if (EQ (result, Qnil))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3391 error ("Font `%s' is not defined", SDATA (arg));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3392 else if (EQ (result, Qt))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3393 error ("The characters of the given font have varying widths");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3394 else if (STRINGP (result))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3395 {
60512
d82c0ae36f1e (x_set_font): Call set_default_ascii_font if an
Kenichi Handa <handa@m17n.org>
parents: 59146
diff changeset
3396 set_default_ascii_font (result);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3397 if (STRINGP (fontset_name))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3398 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3399 /* Fontset names are built from ASCII font names, so the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3400 names may be equal despite there was a change. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3401 if (old_fontset == FRAME_FONTSET (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3402 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3403 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3404 else if (!NILP (Fequal (result, oldval)))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3405 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3406
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3407 store_frame_param (f, Qfont, result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3408 recompute_basic_faces (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3409 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3410 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3411 abort ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3412
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3413 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3414
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3415 /* Don't call `face-set-after-frame-default' when faces haven't been
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3416 initialized yet. This is the case when called from
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3417 Fx_create_frame. In that case, the X widget or window doesn't
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3418 exist either, and we can end up in x_report_frame_params with a
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3419 null widget which gives a segfault. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3420 if (FRAME_FACE_CACHE (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3421 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3422 XSETFRAME (frame, f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3423 call1 (Qface_set_after_frame_default, frame);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3424 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3425 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3426
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3427
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3428 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3429 x_set_fringe_width (f, new_value, old_value)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3430 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3431 Lisp_Object new_value, old_value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3432 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3433 compute_fringe_widths (f, 1);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3434 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3435
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3436 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3437 x_set_border_width (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3438 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3439 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3440 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3441 CHECK_NUMBER (arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3442
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3443 if (XINT (arg) == f->border_width)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3444 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3445
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 58265
diff changeset
3446 #ifndef MAC_OS
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3447 if (FRAME_X_WINDOW (f) != 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3448 error ("Cannot change the border width of a window");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3449 #endif /* MAC_TODO */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3450
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3451 f->border_width = XINT (arg);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3452 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3453
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3454 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3455 x_set_internal_border_width (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3456 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3457 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3458 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3459 int old = FRAME_INTERNAL_BORDER_WIDTH (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3460
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3461 CHECK_NUMBER (arg);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3462 FRAME_INTERNAL_BORDER_WIDTH (f) = XINT (arg);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3463 if (FRAME_INTERNAL_BORDER_WIDTH (f) < 0)
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3464 FRAME_INTERNAL_BORDER_WIDTH (f) = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3465
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3466 #ifdef USE_X_TOOLKIT
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3467 if (FRAME_X_OUTPUT (f)->edit_widget)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3468 widget_store_internal_border (FRAME_X_OUTPUT (f)->edit_widget);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3469 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3470
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3471 if (FRAME_INTERNAL_BORDER_WIDTH (f) == old)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3472 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3473
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3474 if (FRAME_X_WINDOW (f) != 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3475 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3476 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3477 SET_FRAME_GARBAGED (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3478 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3479 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3480 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3481 SET_FRAME_GARBAGED (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3482 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3483
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3484 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3485 x_set_visibility (f, value, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3486 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3487 Lisp_Object value, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3488 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3489 Lisp_Object frame;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3490 XSETFRAME (frame, f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3491
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3492 if (NILP (value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3493 Fmake_frame_invisible (frame, Qt);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3494 else if (EQ (value, Qicon))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3495 Ficonify_frame (frame);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3496 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3497 Fmake_frame_visible (frame);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3498 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3499
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3500 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3501 x_set_autoraise (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3502 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3503 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3504 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3505 f->auto_raise = !EQ (Qnil, arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3506 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3507
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3508 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3509 x_set_autolower (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3510 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3511 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3512 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3513 f->auto_lower = !EQ (Qnil, arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3514 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3515
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3516 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3517 x_set_unsplittable (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3518 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3519 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3520 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3521 f->no_split = !NILP (arg);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3522 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3523
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3524 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3525 x_set_vertical_scroll_bars (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3526 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3527 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3528 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3529 if ((EQ (arg, Qleft) && FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3530 || (EQ (arg, Qright) && FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3531 || (NILP (arg) && FRAME_HAS_VERTICAL_SCROLL_BARS (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3532 || (!NILP (arg) && ! FRAME_HAS_VERTICAL_SCROLL_BARS (f)))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3533 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3534 FRAME_VERTICAL_SCROLL_BAR_TYPE (f)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3535 = (NILP (arg)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3536 ? vertical_scroll_bar_none
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3537 : EQ (Qleft, arg)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3538 ? vertical_scroll_bar_left
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3539 : EQ (Qright, arg)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3540 ? vertical_scroll_bar_right
52557
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3541 : EQ (Qleft, Vdefault_frame_scroll_bars)
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3542 ? vertical_scroll_bar_left
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3543 : EQ (Qright, Vdefault_frame_scroll_bars)
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3544 ? vertical_scroll_bar_right
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
3545 : vertical_scroll_bar_none);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3546
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3547 /* We set this parameter before creating the X window for the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3548 frame, so we can get the geometry right from the start.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3549 However, if the window hasn't been created yet, we shouldn't
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3550 call x_set_window_size. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3551 if (FRAME_X_WINDOW (f))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3552 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3553 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3554 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3555 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3556
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3557 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3558 x_set_scroll_bar_width (f, arg, oldval)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3559 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3560 Lisp_Object arg, oldval;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3561 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3562 int wid = FRAME_COLUMN_WIDTH (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3563
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3564 if (NILP (arg))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3565 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3566 x_set_scroll_bar_default_width (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3567
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3568 if (FRAME_X_WINDOW (f))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3569 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3570 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3571 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3572 else if (INTEGERP (arg) && XINT (arg) > 0
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3573 && XFASTINT (arg) != FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3574 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3575 if (XFASTINT (arg) <= 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3576 XSETINT (arg, 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM + 1);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3577
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3578 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFASTINT (arg);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3579 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFASTINT (arg) + wid-1) / wid;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3580 if (FRAME_X_WINDOW (f))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3581 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3582 do_pending_window_change (0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3583 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3584
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
3585 change_frame_size (f, 0, FRAME_COLS (f), 0, 0, 0);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3586 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.hpos = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3587 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.x = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3588 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3589
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3590
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3591
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3592 /* Return non-nil if frame F wants a bitmap icon. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3593
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3594 Lisp_Object
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3595 x_icon_type (f)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3596 FRAME_PTR f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3597 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3598 Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3599
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3600 tem = assq_no_quit (Qicon_type, f->param_alist);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3601 if (CONSP (tem))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3602 return XCDR (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3603 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3604 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3605 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3606
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3607
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3608 /* Subroutines of creating an X frame. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3609
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3610 /* Make sure that Vx_resource_name is set to a reasonable value.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3611 Fix it up, or set it to `emacs' if it is too hopeless. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3612
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3613 void
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3614 validate_x_resource_name ()
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3615 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3616 int len = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3617 /* Number of valid characters in the resource name. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3618 int good_count = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3619 /* Number of invalid characters in the resource name. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3620 int bad_count = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3621 Lisp_Object new;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3622 int i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3623
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3624 if (!STRINGP (Vx_resource_class))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3625 Vx_resource_class = build_string (EMACS_CLASS);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3626
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3627 if (STRINGP (Vx_resource_name))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3628 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3629 unsigned char *p = SDATA (Vx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3630 int i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3631
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3632 len = SBYTES (Vx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3633
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3634 /* Only letters, digits, - and _ are valid in resource names.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3635 Count the valid characters and count the invalid ones. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3636 for (i = 0; i < len; i++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3637 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3638 int c = p[i];
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3639 if (! ((c >= 'a' && c <= 'z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3640 || (c >= 'A' && c <= 'Z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3641 || (c >= '0' && c <= '9')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3642 || c == '-' || c == '_'))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3643 bad_count++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3644 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3645 good_count++;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3646 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3647 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3648 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3649 /* Not a string => completely invalid. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3650 bad_count = 5, good_count = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3651
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3652 /* If name is valid already, return. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3653 if (bad_count == 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3654 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3655
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3656 /* If name is entirely invalid, or nearly so, use `emacs'. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3657 if (good_count == 0
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3658 || (good_count == 1 && bad_count > 0))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3659 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3660 Vx_resource_name = build_string ("emacs");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3661 return;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3662 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3663
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3664 /* Name is partly valid. Copy it and replace the invalid characters
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3665 with underscores. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3666
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3667 Vx_resource_name = new = Fcopy_sequence (Vx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3668
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3669 for (i = 0; i < len; i++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3670 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3671 int c = SREF (new, i);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3672 if (! ((c >= 'a' && c <= 'z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3673 || (c >= 'A' && c <= 'Z')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3674 || (c >= '0' && c <= '9')
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3675 || c == '-' || c == '_'))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3676 SSET (new, i, '_');
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3677 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3678 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3679
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3680
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3681 extern char *x_get_string_resource P_ ((XrmDatabase, char *, char *));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3682 extern Display_Info *check_x_display_info P_ ((Lisp_Object));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3683
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3684
63698
e7e58f0947fe (make_frame_without_minibuffer): Follow error conventions.
Juanma Barranquero <lekktu@gmail.com>
parents: 63643
diff changeset
3685 /* Get specified attribute from resource database RDB.
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3686 See Fx_get_resource below for other parameters. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3687
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3688 static Lisp_Object
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3689 xrdb_get_resource (rdb, attribute, class, component, subclass)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3690 XrmDatabase rdb;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3691 Lisp_Object attribute, class, component, subclass;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3692 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3693 register char *value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3694 char *name_key;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3695 char *class_key;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3696
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3697 CHECK_STRING (attribute);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3698 CHECK_STRING (class);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3699
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3700 if (!NILP (component))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3701 CHECK_STRING (component);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3702 if (!NILP (subclass))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3703 CHECK_STRING (subclass);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3704 if (NILP (component) != NILP (subclass))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3705 error ("x-get-resource: must specify both COMPONENT and SUBCLASS or neither");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3706
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3707 validate_x_resource_name ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3708
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3709 /* Allocate space for the components, the dots which separate them,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3710 and the final '\0'. Make them big enough for the worst case. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3711 name_key = (char *) alloca (SBYTES (Vx_resource_name)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3712 + (STRINGP (component)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3713 ? SBYTES (component) : 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3714 + SBYTES (attribute)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3715 + 3);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3716
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3717 class_key = (char *) alloca (SBYTES (Vx_resource_class)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3718 + SBYTES (class)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3719 + (STRINGP (subclass)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3720 ? SBYTES (subclass) : 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3721 + 3);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3722
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3723 /* Start with emacs.FRAMENAME for the name (the specific one)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3724 and with `Emacs' for the class key (the general one). */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3725 strcpy (name_key, SDATA (Vx_resource_name));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3726 strcpy (class_key, SDATA (Vx_resource_class));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3727
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3728 strcat (class_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3729 strcat (class_key, SDATA (class));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3730
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3731 if (!NILP (component))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3732 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3733 strcat (class_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3734 strcat (class_key, SDATA (subclass));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3735
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3736 strcat (name_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3737 strcat (name_key, SDATA (component));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3738 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3739
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3740 strcat (name_key, ".");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3741 strcat (name_key, SDATA (attribute));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3742
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3743 value = x_get_string_resource (rdb, name_key, class_key);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3744
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3745 if (value != (char *) 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3746 return build_string (value);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3747 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3748 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3749 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3750
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3751
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3752 DEFUN ("x-get-resource", Fx_get_resource, Sx_get_resource, 2, 4, 0,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3753 doc: /* Return the value of ATTRIBUTE, of class CLASS, from the X defaults database.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3754 This uses `INSTANCE.ATTRIBUTE' as the key and `Emacs.CLASS' as the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3755 class, where INSTANCE is the name under which Emacs was invoked, or
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3756 the name specified by the `-name' or `-rn' command-line arguments.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3757
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3758 The optional arguments COMPONENT and SUBCLASS add to the key and the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3759 class, respectively. You must specify both of them or neither.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3760 If you specify them, the key is `INSTANCE.COMPONENT.ATTRIBUTE'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3761 and the class is `Emacs.CLASS.SUBCLASS'. */)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3762 (attribute, class, component, subclass)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3763 Lisp_Object attribute, class, component, subclass;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3764 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3765 #ifdef HAVE_X_WINDOWS
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3766 check_x ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3767 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3768
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3769 return xrdb_get_resource (check_x_display_info (Qnil)->xrdb,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3770 attribute, class, component, subclass);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3771 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3772
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3773 /* Get an X resource, like Fx_get_resource, but for display DPYINFO. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3774
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3775 Lisp_Object
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3776 display_x_get_resource (dpyinfo, attribute, class, component, subclass)
50375
8be64cfd36fe (display_x_get_resource): Use Display_Info argument, not x_display_info.
Juanma Barranquero <lekktu@gmail.com>
parents: 50373
diff changeset
3777 Display_Info *dpyinfo;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3778 Lisp_Object attribute, class, component, subclass;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3779 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3780 return xrdb_get_resource (dpyinfo->xrdb,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3781 attribute, class, component, subclass);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3782 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3783
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3784 /* Used when C code wants a resource value. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3785
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3786 char *
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3787 x_get_resource_string (attribute, class)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3788 char *attribute, *class;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3789 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3790 char *name_key;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3791 char *class_key;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3792 struct frame *sf = SELECTED_FRAME ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3793
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3794 /* Allocate space for the components, the dots which separate them,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3795 and the final '\0'. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3796 name_key = (char *) alloca (SBYTES (Vinvocation_name)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3797 + strlen (attribute) + 2);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3798 class_key = (char *) alloca ((sizeof (EMACS_CLASS) - 1)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3799 + strlen (class) + 2);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3800
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3801 sprintf (name_key, "%s.%s", SDATA (Vinvocation_name), attribute);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3802 sprintf (class_key, "%s.%s", EMACS_CLASS, class);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3803
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3804 return x_get_string_resource (FRAME_X_DISPLAY_INFO (sf)->xrdb,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3805 name_key, class_key);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3806 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3807
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3808
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3809 /* Return the value of parameter PARAM.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3810
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3811 First search ALIST, then Vdefault_frame_alist, then the X defaults
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3812 database, using ATTRIBUTE as the attribute name and CLASS as its class.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3813
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3814 Convert the resource to the type specified by desired_type.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3815
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3816 If no default is specified, return Qunbound. If you call
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3817 x_get_arg, make sure you deal with Qunbound in a reasonable way,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3818 and don't let it get stored in any Lisp-visible variables! */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3819
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3820 Lisp_Object
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3821 x_get_arg (dpyinfo, alist, param, attribute, class, type)
63698
e7e58f0947fe (make_frame_without_minibuffer): Follow error conventions.
Juanma Barranquero <lekktu@gmail.com>
parents: 63643
diff changeset
3822 Display_Info *dpyinfo;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3823 Lisp_Object alist, param;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3824 char *attribute;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3825 char *class;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3826 enum resource_types type;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3827 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3828 register Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3829
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3830 tem = Fassq (param, alist);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3831 if (EQ (tem, Qnil))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3832 tem = Fassq (param, Vdefault_frame_alist);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3833 if (EQ (tem, Qnil))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3834 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3835 if (attribute)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3836 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3837 tem = display_x_get_resource (dpyinfo,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3838 build_string (attribute),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3839 build_string (class),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3840 Qnil, Qnil);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3841
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3842 if (NILP (tem))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3843 return Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3844
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3845 switch (type)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3846 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3847 case RES_TYPE_NUMBER:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3848 return make_number (atoi (SDATA (tem)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3849
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3850 case RES_TYPE_FLOAT:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3851 return make_float (atof (SDATA (tem)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3852
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3853 case RES_TYPE_BOOLEAN:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3854 tem = Fdowncase (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3855 if (!strcmp (SDATA (tem), "on")
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3856 || !strcmp (SDATA (tem), "true"))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3857 return Qt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3858 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3859 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3860
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3861 case RES_TYPE_STRING:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3862 return tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3863
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3864 case RES_TYPE_SYMBOL:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3865 /* As a special case, we map the values `true' and `on'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3866 to Qt, and `false' and `off' to Qnil. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3867 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3868 Lisp_Object lower;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3869 lower = Fdowncase (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3870 if (!strcmp (SDATA (lower), "on")
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3871 || !strcmp (SDATA (lower), "true"))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3872 return Qt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3873 else if (!strcmp (SDATA (lower), "off")
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3874 || !strcmp (SDATA (lower), "false"))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3875 return Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3876 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3877 return Fintern (tem, Qnil);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3878 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3879
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3880 default:
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3881 abort ();
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3882 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3883 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3884 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3885 return Qunbound;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3886 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3887 return Fcdr (tem);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3888 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3889
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3890 Lisp_Object
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3891 x_frame_get_arg (f, alist, param, attribute, class, type)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3892 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3893 Lisp_Object alist, param;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3894 char *attribute;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3895 char *class;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3896 enum resource_types type;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3897 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3898 return x_get_arg (FRAME_X_DISPLAY_INFO (f),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3899 alist, param, attribute, class, type);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3900 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3901
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3902 /* Like x_frame_get_arg, but also record the value in f->param_alist. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3903
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3904 Lisp_Object
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3905 x_frame_get_and_record_arg (f, alist, param, attribute, class, type)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3906 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3907 Lisp_Object alist, param;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3908 char *attribute;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3909 char *class;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3910 enum resource_types type;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3911 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3912 Lisp_Object value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3913
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3914 value = x_get_arg (FRAME_X_DISPLAY_INFO (f), alist, param,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3915 attribute, class, type);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3916 if (! NILP (value))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3917 store_frame_param (f, param, value);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3918
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3919 return value;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3920 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3921
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3922
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3923 /* Record in frame F the specified or default value according to ALIST
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3924 of the parameter named PROP (a Lisp symbol).
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3925 If no value is specified for PROP, look for an X default for XPROP
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3926 on the frame named NAME.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3927 If that is not found either, use the value DEFLT. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3928
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3929 Lisp_Object
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3930 x_default_parameter (f, alist, prop, deflt, xprop, xclass, type)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3931 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3932 Lisp_Object alist;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3933 Lisp_Object prop;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3934 Lisp_Object deflt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3935 char *xprop;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3936 char *xclass;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3937 enum resource_types type;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3938 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3939 Lisp_Object tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3940
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3941 tem = x_frame_get_arg (f, alist, prop, xprop, xclass, type);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3942 if (EQ (tem, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3943 tem = deflt;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3944 x_set_frame_parameters (f, Fcons (Fcons (prop, tem), Qnil));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3945 return tem;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3946 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3947
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3948
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3949
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3950
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3951 DEFUN ("x-parse-geometry", Fx_parse_geometry, Sx_parse_geometry, 1, 1, 0,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3952 doc: /* Parse an X-style geometry string STRING.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3953 Returns an alist of the form ((top . TOP), (left . LEFT) ... ).
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3954 The properties returned may include `top', `left', `height', and `width'.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3955 The value of `left' or `top' may be an integer,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3956 or a list (+ N) meaning N pixels relative to top/left corner,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3957 or a list (- N) meaning -N pixels relative to bottom/right corner. */)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3958 (string)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3959 Lisp_Object string;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3960 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3961 int geometry, x, y;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3962 unsigned int width, height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3963 Lisp_Object result;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3964
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3965 CHECK_STRING (string);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3966
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3967 geometry = XParseGeometry ((char *) SDATA (string),
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3968 &x, &y, &width, &height);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3969
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3970 #if 0
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3971 if (!!(geometry & XValue) != !!(geometry & YValue))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3972 error ("Must specify both x and y position, or neither");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3973 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3974
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3975 result = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3976 if (geometry & XValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3977 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3978 Lisp_Object element;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3979
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3980 if (x >= 0 && (geometry & XNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3981 element = Fcons (Qleft, Fcons (Qminus, Fcons (make_number (-x), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3982 else if (x < 0 && ! (geometry & XNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3983 element = Fcons (Qleft, Fcons (Qplus, Fcons (make_number (x), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3984 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3985 element = Fcons (Qleft, make_number (x));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3986 result = Fcons (element, result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3987 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3988
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3989 if (geometry & YValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3990 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3991 Lisp_Object element;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3992
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3993 if (y >= 0 && (geometry & YNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3994 element = Fcons (Qtop, Fcons (Qminus, Fcons (make_number (-y), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3995 else if (y < 0 && ! (geometry & YNegative))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3996 element = Fcons (Qtop, Fcons (Qplus, Fcons (make_number (y), Qnil)));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3997 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3998 element = Fcons (Qtop, make_number (y));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
3999 result = Fcons (element, result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4000 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4001
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4002 if (geometry & WidthValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4003 result = Fcons (Fcons (Qwidth, make_number (width)), result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4004 if (geometry & HeightValue)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4005 result = Fcons (Fcons (Qheight, make_number (height)), result);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4006
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4007 return result;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4008 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4009
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4010 /* Calculate the desired size and position of frame F.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4011 Return the flags saying which aspects were specified.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4012
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4013 Also set the win_gravity and size_hint_flags of F.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4014
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4015 Adjust height for toolbar if TOOLBAR_P is 1.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4016
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4017 This function does not make the coordinates positive. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4018
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4019 #define DEFAULT_ROWS 40
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4020 #define DEFAULT_COLS 80
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4021
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4022 int
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4023 x_figure_window_size (f, parms, toolbar_p)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4024 struct frame *f;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4025 Lisp_Object parms;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4026 int toolbar_p;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4027 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4028 register Lisp_Object tem0, tem1, tem2;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4029 long window_prompting = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4030 Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4031
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4032 /* Default values if we fall through.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4033 Actually, if that happens we should get
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4034 window manager prompting. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4035 SET_FRAME_COLS (f, DEFAULT_COLS);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4036 FRAME_LINES (f) = DEFAULT_ROWS;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4037 /* Window managers expect that if program-specified
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4038 positions are not (0,0), they're intentional, not defaults. */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4039 f->top_pos = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4040 f->left_pos = 0;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4041
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4042 /* Ensure that old new_text_cols and new_text_lines will not override the
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4043 values set here. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4044 /* ++KFS: This was specific to W32, but seems ok for all platforms */
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4045 f->new_text_cols = f->new_text_lines = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4046
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4047 tem0 = x_get_arg (dpyinfo, parms, Qheight, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4048 tem1 = x_get_arg (dpyinfo, parms, Qwidth, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4049 tem2 = x_get_arg (dpyinfo, parms, Quser_size, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4050 if (! EQ (tem0, Qunbound) || ! EQ (tem1, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4051 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4052 if (!EQ (tem0, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4053 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4054 CHECK_NUMBER (tem0);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4055 FRAME_LINES (f) = XINT (tem0);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4056 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4057 if (!EQ (tem1, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4058 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4059 CHECK_NUMBER (tem1);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4060 SET_FRAME_COLS (f, XINT (tem1));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4061 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4062 if (!NILP (tem2) && !EQ (tem2, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4063 window_prompting |= USSize;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4064 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4065 window_prompting |= PSize;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4066 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4067
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4068 f->scroll_bar_actual_width
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4069 = FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4070
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4071 /* This used to be done _before_ calling x_figure_window_size, but
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4072 since the height is reset here, this was really a no-op. I
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4073 assume that moving it here does what Gerd intended (although he
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4074 no longer can remember what that was... ++KFS, 2003-03-25. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4075
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4076 /* Add the tool-bar height to the initial frame height so that the
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4077 user gets a text display area of the size he specified with -g or
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4078 via .Xdefaults. Later changes of the tool-bar height don't
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4079 change the frame size. This is done so that users can create
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4080 tall Emacs frames without having to guess how tall the tool-bar
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4081 will get. */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4082 if (toolbar_p && FRAME_TOOL_BAR_LINES (f))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4083 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4084 int margin, relief, bar_height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4085
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4086 relief = (tool_bar_button_relief >= 0
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4087 ? tool_bar_button_relief
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4088 : DEFAULT_TOOL_BAR_BUTTON_RELIEF);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4089
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4090 if (INTEGERP (Vtool_bar_button_margin)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4091 && XINT (Vtool_bar_button_margin) > 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4092 margin = XFASTINT (Vtool_bar_button_margin);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4093 else if (CONSP (Vtool_bar_button_margin)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4094 && INTEGERP (XCDR (Vtool_bar_button_margin))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4095 && XINT (XCDR (Vtool_bar_button_margin)) > 0)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4096 margin = XFASTINT (XCDR (Vtool_bar_button_margin));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4097 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4098 margin = 0;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4099
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4100 bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief;
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4101 FRAME_LINES (f) += (bar_height + FRAME_LINE_HEIGHT (f) - 1) / FRAME_LINE_HEIGHT (f);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4102 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4103
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4104 compute_fringe_widths (f, 0);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4105
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4106 FRAME_PIXEL_WIDTH (f) = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, FRAME_COLS (f));
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4107 FRAME_PIXEL_HEIGHT (f) = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4108
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4109 tem0 = x_get_arg (dpyinfo, parms, Qtop, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4110 tem1 = x_get_arg (dpyinfo, parms, Qleft, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4111 tem2 = x_get_arg (dpyinfo, parms, Quser_position, 0, 0, RES_TYPE_NUMBER);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4112 if (! EQ (tem0, Qunbound) || ! EQ (tem1, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4113 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4114 if (EQ (tem0, Qminus))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4115 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4116 f->top_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4117 window_prompting |= YNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4118 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4119 else if (CONSP (tem0) && EQ (XCAR (tem0), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4120 && CONSP (XCDR (tem0))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4121 && INTEGERP (XCAR (XCDR (tem0))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4122 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4123 f->top_pos = - XINT (XCAR (XCDR (tem0)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4124 window_prompting |= YNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4125 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4126 else if (CONSP (tem0) && EQ (XCAR (tem0), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4127 && CONSP (XCDR (tem0))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4128 && INTEGERP (XCAR (XCDR (tem0))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4129 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4130 f->top_pos = XINT (XCAR (XCDR (tem0)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4131 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4132 else if (EQ (tem0, Qunbound))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4133 f->top_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4134 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4135 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4136 CHECK_NUMBER (tem0);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4137 f->top_pos = XINT (tem0);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4138 if (f->top_pos < 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4139 window_prompting |= YNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4140 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4141
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4142 if (EQ (tem1, Qminus))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4143 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4144 f->left_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4145 window_prompting |= XNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4146 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4147 else if (CONSP (tem1) && EQ (XCAR (tem1), Qminus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4148 && CONSP (XCDR (tem1))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4149 && INTEGERP (XCAR (XCDR (tem1))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4150 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4151 f->left_pos = - XINT (XCAR (XCDR (tem1)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4152 window_prompting |= XNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4153 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4154 else if (CONSP (tem1) && EQ (XCAR (tem1), Qplus)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4155 && CONSP (XCDR (tem1))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4156 && INTEGERP (XCAR (XCDR (tem1))))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4157 {
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4158 f->left_pos = XINT (XCAR (XCDR (tem1)));
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4159 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4160 else if (EQ (tem1, Qunbound))
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4161 f->left_pos = 0;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4162 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4163 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4164 CHECK_NUMBER (tem1);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4165 f->left_pos = XINT (tem1);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4166 if (f->left_pos < 0)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4167 window_prompting |= XNegative;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4168 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4169
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4170 if (!NILP (tem2) && ! EQ (tem2, Qunbound))
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4171 window_prompting |= USPosition;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4172 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4173 window_prompting |= PPosition;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4174 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4175
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4176 if (f->want_fullscreen != FULLSCREEN_NONE)
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4177 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4178 int left, top;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4179 int width, height;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4180
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4181 /* It takes both for some WM:s to place it where we want */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4182 window_prompting = USPosition | PPosition;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4183 x_fullscreen_adjust (f, &width, &height, &top, &left);
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4184 FRAME_COLS (f) = width;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4185 FRAME_LINES (f) = height;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4186 FRAME_PIXEL_WIDTH (f) = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4187 FRAME_PIXEL_HEIGHT (f) = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height);
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4188 f->left_pos = left;
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4189 f->top_pos = top;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4190 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4191
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4192 if (window_prompting & XNegative)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4193 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4194 if (window_prompting & YNegative)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4195 f->win_gravity = SouthEastGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4196 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4197 f->win_gravity = NorthEastGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4198 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4199 else
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4200 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4201 if (window_prompting & YNegative)
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4202 f->win_gravity = SouthWestGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4203 else
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4204 f->win_gravity = NorthWestGravity;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4205 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4206
51194
a873867ba3d2 Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51091
diff changeset
4207 f->size_hint_flags = window_prompting;
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4208
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4209 return window_prompting;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4210 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4211
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4212
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4213
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4214 #endif /* HAVE_WINDOW_SYSTEM */
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4215
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4216
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4217
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4218 /***********************************************************************
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4219 Initialization
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4220 ***********************************************************************/
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4221
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21359
diff changeset
4222 void
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4223 syms_of_frame ()
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4224 {
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4225 Qframep = intern ("framep");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4226 staticpro (&Qframep);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4227 Qframe_live_p = intern ("frame-live-p");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4228 staticpro (&Qframe_live_p);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4229 Qheight = intern ("height");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4230 staticpro (&Qheight);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4231 Qicon = intern ("icon");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4232 staticpro (&Qicon);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4233 Qminibuffer = intern ("minibuffer");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4234 staticpro (&Qminibuffer);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4235 Qmodeline = intern ("modeline");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4236 staticpro (&Qmodeline);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4237 Qonly = intern ("only");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4238 staticpro (&Qonly);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4239 Qwidth = intern ("width");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4240 staticpro (&Qwidth);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4241 Qgeometry = intern ("geometry");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4242 staticpro (&Qgeometry);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4243 Qicon_left = intern ("icon-left");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4244 staticpro (&Qicon_left);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4245 Qicon_top = intern ("icon-top");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4246 staticpro (&Qicon_top);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4247 Qleft = intern ("left");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4248 staticpro (&Qleft);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4249 Qright = intern ("right");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4250 staticpro (&Qright);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4251 Quser_position = intern ("user-position");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4252 staticpro (&Quser_position);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4253 Quser_size = intern ("user-size");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4254 staticpro (&Quser_size);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4255 Qwindow_id = intern ("window-id");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4256 staticpro (&Qwindow_id);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4257 #ifdef HAVE_X_WINDOWS
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4258 Qouter_window_id = intern ("outer-window-id");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4259 staticpro (&Qouter_window_id);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4260 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4261 Qparent_id = intern ("parent-id");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4262 staticpro (&Qparent_id);
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4263 Qx = intern ("x");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4264 staticpro (&Qx);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4265 Qw32 = intern ("w32");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4266 staticpro (&Qw32);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4267 Qpc = intern ("pc");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4268 staticpro (&Qpc);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4269 Qmac = intern ("mac");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4270 staticpro (&Qmac);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4271 Qvisible = intern ("visible");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4272 staticpro (&Qvisible);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4273 Qbuffer_predicate = intern ("buffer-predicate");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4274 staticpro (&Qbuffer_predicate);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4275 Qbuffer_list = intern ("buffer-list");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4276 staticpro (&Qbuffer_list);
83415
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
4277 Qburied_buffer_list = intern ("buried-buffer-list");
d2c799f58129 Implement full support for frame-local `next-buffer' and `previous-buffer'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83384
diff changeset
4278 staticpro (&Qburied_buffer_list);
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4279 Qdisplay_type = intern ("display-type");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4280 staticpro (&Qdisplay_type);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4281 Qbackground_mode = intern ("background-mode");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4282 staticpro (&Qbackground_mode);
42743
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
4283 Qtty_color_mode = intern ("tty-color-mode");
1e6231c9c359 (store_frame_param): Call set_tty_color_mode for termcap
Eli Zaretskii <eliz@gnu.org>
parents: 41718
diff changeset
4284 staticpro (&Qtty_color_mode);
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
4285 Qtty = intern ("tty");
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
4286 staticpro (&Qtty);
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
4287 Qtty_type = intern ("tty-type");
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
4288 staticpro (&Qtty_type);
83016
1d7467694692 Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 83009
diff changeset
4289 Qwindow_system = intern ("window-system");
1d7467694692 Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 83009
diff changeset
4290 staticpro (&Qwindow_system);
83427
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
4291 Qenvironment = intern ("environment");
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
4292 staticpro (&Qenvironment);
83016
1d7467694692 Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents: 83009
diff changeset
4293
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4294 Qface_set_after_frame_default = intern ("face-set-after-frame-default");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4295 staticpro (&Qface_set_after_frame_default);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4296
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4297 Qfullwidth = intern ("fullwidth");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4298 staticpro (&Qfullwidth);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4299 Qfullheight = intern ("fullheight");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4300 staticpro (&Qfullheight);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4301 Qfullboth = intern ("fullboth");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4302 staticpro (&Qfullboth);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4303 Qx_resource_name = intern ("x-resource-name");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4304 staticpro (&Qx_resource_name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4305
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4306 Qx_frame_parameter = intern ("x-frame-parameter");
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4307 staticpro (&Qx_frame_parameter);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4308
83342
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
4309 Qdevice = intern ("device");
9216636c02fc Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents: 83341
diff changeset
4310 staticpro (&Qdevice);
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
4311 Qdisplay_live_p = intern ("display-live-p");
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
4312 staticpro (&Qdisplay_live_p);
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
4313
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4314 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4315 int i;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4316
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4317 for (i = 0; i < sizeof (frame_parms) / sizeof (frame_parms[0]); i++)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4318 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4319 Lisp_Object v = intern (frame_parms[i].name);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4320 if (frame_parms[i].variable)
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4321 {
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4322 *frame_parms[i].variable = v;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4323 staticpro (frame_parms[i].variable);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4324 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4325 Fput (v, Qx_frame_parameter, make_number (i));
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4326 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4327 }
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4328
50373
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
4329 #ifdef HAVE_WINDOW_SYSTEM
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4330 DEFVAR_LISP ("x-resource-name", &Vx_resource_name,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4331 doc: /* The name Emacs uses to look up X resources.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4332 `x-get-resource' uses this as the first component of the instance name
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4333 when requesting resource values.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4334 Emacs initially sets `x-resource-name' to the name under which Emacs
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4335 was invoked, or to the value specified with the `-name' or `-rn'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4336 switches, if present.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4337
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4338 It may be useful to bind this variable locally around a call
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4339 to `x-get-resource'. See also the variable `x-resource-class'. */);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4340 Vx_resource_name = Qnil;
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4341
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4342 DEFVAR_LISP ("x-resource-class", &Vx_resource_class,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4343 doc: /* The class Emacs uses to look up X resources.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4344 `x-get-resource' uses this as the first component of the instance class
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4345 when requesting resource values.
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4346
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4347 Emacs initially sets `x-resource-class' to "Emacs".
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4348
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4349 Setting this variable permanently is not a reasonable thing to do,
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4350 but binding this variable locally around a call to `x-get-resource'
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4351 is a reasonable practice. See also the variable `x-resource-name'. */);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4352 Vx_resource_class = build_string (EMACS_CLASS);
50373
6defa3317421 Fix compilation for --with-x=no.
Kim F. Storm <storm@cua.dk>
parents: 50357
diff changeset
4353 #endif
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4354
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4355 DEFVAR_LISP ("default-frame-alist", &Vdefault_frame_alist,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4356 doc: /* Alist of default values for frame creation.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4357 These may be set in your init file, like this:
57971
c6da09b5384b (syms_of_frame): Fix the example in the doc string.
Eli Zaretskii <eliz@gnu.org>
parents: 56517
diff changeset
4358 (setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1)))
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4359 These override values given in window system configuration data,
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4360 including X Windows' defaults database.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4361 For values specific to the first Emacs frame, see `initial-frame-alist'.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4362 For values specific to the separate minibuffer frame, see
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4363 `minibuffer-frame-alist'.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4364 The `menu-bar-lines' element of the list controls whether new frames
43716
bb64514bd572 2002-03-05 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents: 43442
diff changeset
4365 have menu bars; `menu-bar-mode' works by altering this element.
43717
a459b58a6d95 Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents: 43716
diff changeset
4366 Setting this variable does not affect existing frames, only new ones. */);
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4367 Vdefault_frame_alist = Qnil;
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4368
52557
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4369 DEFVAR_LISP ("default-frame-scroll-bars", &Vdefault_frame_scroll_bars,
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4370 doc: /* Default position of scroll bars on this window-system. */);
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4371 #ifdef HAVE_WINDOW_SYSTEM
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 58265
diff changeset
4372 #if defined(HAVE_NTGUI) || defined(MAC_OS)
52557
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4373 /* MS-Windows has scroll bars on the right by default. */
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4374 Vdefault_frame_scroll_bars = Qright;
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4375 #else
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4376 Vdefault_frame_scroll_bars = Qleft;
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4377 #endif
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4378 #else
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4379 Vdefault_frame_scroll_bars = Qnil;
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4380 #endif
4a93216e6678 (Vdefault_frame_scroll_bars): New variable.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
4381
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4382 Qinhibit_default_face_x_resources
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4383 = intern ("inhibit-default-face-x-resources");
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4384 staticpro (&Qinhibit_default_face_x_resources);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4385
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4386 DEFVAR_LISP ("terminal-frame", &Vterminal_frame,
82990
2ecd1f669db9 Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents: 82989
diff changeset
4387 doc: /* The initial frame-object, which represents Emacs's stdout. */);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4388
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4389 DEFVAR_LISP ("emacs-iconified", &Vemacs_iconified,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4390 doc: /* Non-nil if all of emacs is iconified and frame updates are not needed. */);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4391 Vemacs_iconified = Qnil;
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4392
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
4393 DEFVAR_LISP ("mouse-position-function", &Vmouse_position_function,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4394 doc: /* If non-nil, function to transform normal value of `mouse-position'.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4395 `mouse-position' calls this function, passing its usual return value as
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4396 argument, and returns whatever this function returns.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4397 This abnormal hook exists for the benefit of packages like `xt-mouse.el'
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4398 which need to do mouse handling at the Lisp level. */);
27795
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
4399 Vmouse_position_function = Qnil;
83292274bbd4 (Vmouse_position_function): New variable.
Dave Love <fx@gnu.org>
parents: 27725
diff changeset
4400
43366
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4401 DEFVAR_LISP ("mouse-highlight", &Vmouse_highlight,
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 47731
diff changeset
4402 doc: /* If non-nil, clickable text is highlighted when mouse is over it.
43366
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4403 If the value is an integer, highlighting is only shown after moving the
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4404 mouse, while keyboard input turns off the highlight even when the mouse
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4405 is over the clickable text. However, the mouse shape still indicates
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4406 when the mouse is over clickable text. */);
43442
400971c52790 (syms_of_frame): Change mouse-highlight default to t.
Kim F. Storm <storm@cua.dk>
parents: 43366
diff changeset
4407 Vmouse_highlight = Qt;
43366
512ab477b395 (Vmouse_highlight): New variable.
Kim F. Storm <storm@cua.dk>
parents: 42743
diff changeset
4408
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4409 DEFVAR_LISP ("delete-frame-functions", &Vdelete_frame_functions,
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4410 doc: /* Functions to be run before deleting a frame.
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4411 The functions are run with one arg, the frame to be deleted.
83335
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4412 See `delete-frame'.
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4413
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4414 Note that functions in this list may be called twice on the same
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4415 frame. In the second invocation, the frame is already deleted, and
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4416 the function should do nothing. (You can use `frame-live-p' to check
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4417 for this.) This wrinkle happens when an earlier function in
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4418 `delete-frame-functions' (indirectly) calls delete-frame
60208d3a0bb1 Handle and document that `delete-frame' may call functions in `delete-frame-functions' twice.
Karoly Lorentey <lorentey@elte.hu>
parents: 83332
diff changeset
4419 recursively. */);
47731
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4420 Vdelete_frame_functions = Qnil;
755c4233cfba * frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 47036
diff changeset
4421
11779
6234b3610a6f Vdefault_minibuffer_frame is now part of KBOARD instead
Karl Heuer <kwzh@gnu.org>
parents: 11775
diff changeset
4422 DEFVAR_KBOARD ("default-minibuffer-frame", Vdefault_minibuffer_frame,
40105
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4423 doc: /* Minibufferless frames use this frame's minibuffer.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4424
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4425 Emacs cannot create minibufferless frames unless this is set to an
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4426 appropriate surrogate.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4427
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4428 Emacs consults this variable only when creating minibufferless
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4429 frames; once the frame is created, it sticks with its assigned
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4430 minibuffer, no matter what this variable is set to. This means that
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4431 this variable doesn't necessarily say anything meaningful about the
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4432 current set of frames, or where the minibuffer is currently being
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4433 displayed.
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4434
bb56bafcdcc7 Change doc-string comments to `new style' [w/`doc:' keyword].
Pavel Janík <Pavel@Janik.cz>
parents: 39973
diff changeset
4435 This variable is local to the current terminal and cannot be buffer-local. */);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4436
33509
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4437 staticpro (&Vframe_list);
a7d245e080d1 (syms_of_frame_1): Removed; code moved to syms_of_frame.
Gerd Moellmann <gerd@gnu.org>
parents: 33005
diff changeset
4438
11169
d0550c056e5b [MULTI_FRAME] (Factive_minibuffer_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 11126
diff changeset
4439 defsubr (&Sactive_minibuffer_window);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4440 defsubr (&Sframep);
1821
04fb1d3d6992 JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents: 1809
diff changeset
4441 defsubr (&Sframe_live_p);
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83003
diff changeset
4442 defsubr (&Swindow_system);
10768
938451cf1b10 (Fmake_terminal_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents: 10676
diff changeset
4443 defsubr (&Smake_terminal_frame);
2298
872a3a2c3fed * frame.c (Fhandle_switch_frame): Renamed from Fselect_frame.
Jim Blandy <jimb@redhat.com>
parents: 2282
diff changeset
4444 defsubr (&Shandle_switch_frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4445 defsubr (&Sselect_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4446 defsubr (&Sselected_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4447 defsubr (&Swindow_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4448 defsubr (&Sframe_root_window);
7570
20cbb114367b (syms_of_frame): Set up frame-first-window as Lisp fn.
Richard M. Stallman <rms@gnu.org>
parents: 7307
diff changeset
4449 defsubr (&Sframe_first_window);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4450 defsubr (&Sframe_selected_window);
7055
5e4906d964b8 (Fset_frame_selected_window): New function.
Richard M. Stallman <rms@gnu.org>
parents: 7025
diff changeset
4451 defsubr (&Sset_frame_selected_window);
83167
69ebc75cb461 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 83074
diff changeset
4452 defsubr (&Sframe_display);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4453 defsubr (&Sframe_list);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4454 defsubr (&Snext_frame);
4424
027d3affb2f8 (Fprevious_frame): New function, for parity with Fnext_frame.
Roland McGrath <roland@gnu.org>
parents: 4412
diff changeset
4455 defsubr (&Sprevious_frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4456 defsubr (&Sdelete_frame);
454
ca410e0b4797 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 386
diff changeset
4457 defsubr (&Smouse_position);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
4458 defsubr (&Smouse_pixel_position);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4459 defsubr (&Sset_mouse_position);
7025
24e759919770 (Fmouse_pixel_position, Fset_mouse_pixel_position): New functions.
Richard M. Stallman <rms@gnu.org>
parents: 6986
diff changeset
4460 defsubr (&Sset_mouse_pixel_position);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4461 #if 0
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4462 defsubr (&Sframe_configuration);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4463 defsubr (&Srestore_frame_configuration);
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4464 #endif
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4465 defsubr (&Smake_frame_visible);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4466 defsubr (&Smake_frame_invisible);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4467 defsubr (&Siconify_frame);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4468 defsubr (&Sframe_visible_p);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4469 defsubr (&Svisible_frame_list);
2282
f727944c11aa * frame.c (Fraise_frame, Flower_frame): Renamed from
Jim Blandy <jimb@redhat.com>
parents: 2207
diff changeset
4470 defsubr (&Sraise_frame);
f727944c11aa * frame.c (Fraise_frame, Flower_frame): Renamed from
Jim Blandy <jimb@redhat.com>
parents: 2207
diff changeset
4471 defsubr (&Slower_frame);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4472 defsubr (&Sredirect_frame_focus);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4473 defsubr (&Sframe_focus);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4474 defsubr (&Sframe_parameters);
31399
db831ffcd565 (Qdisplay_type): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 31102
diff changeset
4475 defsubr (&Sframe_parameter);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4476 defsubr (&Smodify_frame_parameters);
83427
2afc49c9f0c0 Store local environment in frame (not terminal) parameters.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
4477 defsubr (&Sframe_with_environment);
2068
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4478 defsubr (&Sframe_char_height);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4479 defsubr (&Sframe_char_width);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4480 defsubr (&Sframe_pixel_height);
6357ea40643c (Fframe_char_height, Fframe_char_width):
Richard M. Stallman <rms@gnu.org>
parents: 1989
diff changeset
4481 defsubr (&Sframe_pixel_width);
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4482 defsubr (&Sset_frame_height);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4483 defsubr (&Sset_frame_width);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4484 defsubr (&Sset_frame_size);
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 756
diff changeset
4485 defsubr (&Sset_frame_position);
50357
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4486
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4487 #ifdef HAVE_WINDOW_SYSTEM
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4488 defsubr (&Sx_get_resource);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4489 defsubr (&Sx_parse_geometry);
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4490 #endif
e5a09c97e444 Include blockinput.h.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
4491
286
8a40ab4a424f Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4492 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51665
diff changeset
4493
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51665
diff changeset
4494 /* arch-tag: 7dbf2c69-9aad-45f8-8296-db893d6dd039
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51665
diff changeset
4495 (do not change this comment) */