Mercurial > emacs
annotate src/xfns.c @ 57902:2cc8d9bbb72b
* configure.in (HAVE_GTK): Only set with_toolkit_scroll_bars if not
explicitly set to no.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Tue, 02 Nov 2004 16:26:46 +0000 |
parents | c955f6add62a |
children | 68ea73fe257b e24e2e78deda |
rev | line source |
---|---|
389 | 1 /* Functions for the X window system. |
54142
5a9638c2c889
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-114
Miles Bader <miles@gnu.org>
parents:
53825
diff
changeset
|
2 Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000,01,02,03,04 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3 Free Software Foundation. |
389 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
7 GNU Emacs is free software; you can redistribute it and/or modify | |
8 it under the terms of the GNU General Public License as published by | |
708 | 9 the Free Software Foundation; either version 2, or (at your option) |
389 | 10 any later version. |
11 | |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with GNU Emacs; see the file COPYING. If not, write to | |
14186
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13867
diff
changeset
|
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
13867
diff
changeset
|
20 Boston, MA 02111-1307, USA. */ |
389 | 21 |
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
26032
diff
changeset
|
22 #include <config.h> |
7899 | 23 #include <signal.h> |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
24 #include <stdio.h> |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
25 #include <math.h> |
7899 | 26 |
40700
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
27 #ifdef HAVE_UNISTD_H |
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
28 #include <unistd.h> |
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
29 #endif |
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
30 |
8091
f40cbe50c74f
(XLIB_ILLEGAL_ACCESS): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8090
diff
changeset
|
31 /* This makes the fields of a Display accessible, in Xlib header files. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
32 |
8091
f40cbe50c74f
(XLIB_ILLEGAL_ACCESS): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8090
diff
changeset
|
33 #define XLIB_ILLEGAL_ACCESS |
f40cbe50c74f
(XLIB_ILLEGAL_ACCESS): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8090
diff
changeset
|
34 |
389 | 35 #include "lisp.h" |
36 #include "xterm.h" | |
771 | 37 #include "frame.h" |
389 | 38 #include "window.h" |
39 #include "buffer.h" | |
26876 | 40 #include "intervals.h" |
389 | 41 #include "dispextern.h" |
515 | 42 #include "keyboard.h" |
2439
b6c62e4abf59
Put interrupt input blocking in a separate file from xterm.h.
Jim Blandy <jimb@redhat.com>
parents:
2355
diff
changeset
|
43 #include "blockinput.h" |
24412
d11ac02f9d6a
Use epaths.h istead of paths.h.
Richard M. Stallman <rms@gnu.org>
parents:
24170
diff
changeset
|
44 #include <epaths.h> |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
45 #include "charset.h" |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
46 #include "coding.h" |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
47 #include "fontset.h" |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
48 #include "systime.h" |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
49 #include "termhooks.h" |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
50 #include "atimer.h" |
389 | 51 |
52 #ifdef HAVE_X_WINDOWS | |
25451
786ab5197e4b
Include <stdlib.h> if available, and declare abort only if not. Include
Andreas Schwab <schwab@suse.de>
parents:
25390
diff
changeset
|
53 |
786ab5197e4b
Include <stdlib.h> if available, and declare abort only if not. Include
Andreas Schwab <schwab@suse.de>
parents:
25390
diff
changeset
|
54 #include <ctype.h> |
27069
b2934c683b5e
(gif_load): Avoid sign extension and thus out of bounds
Gerd Moellmann <gerd@gnu.org>
parents:
27066
diff
changeset
|
55 #include <sys/types.h> |
b2934c683b5e
(gif_load): Avoid sign extension and thus out of bounds
Gerd Moellmann <gerd@gnu.org>
parents:
27066
diff
changeset
|
56 #include <sys/stat.h> |
389 | 57 |
2355
cec8c9490d8a
* xfns.c [VMS]: Get the gray_bits from [.bitmaps]gray.xbm.
Jim Blandy <jimb@redhat.com>
parents:
2341
diff
changeset
|
58 #ifndef VMS |
3821
8f353c2491d0
* xfns.c: Always #include "bitmaps/gray.xbm"; the bitmaps seem to
Jim Blandy <jimb@redhat.com>
parents:
3692
diff
changeset
|
59 #if 1 /* Used to be #ifdef EMACS_BITMAP_FILES, but this should always work. */ |
3512
2657b04dd324
[EMACS_BIT_MAPS]: Include gray.xbm from ./bitmaps.
Richard M. Stallman <rms@gnu.org>
parents:
3507
diff
changeset
|
60 #include "bitmaps/gray.xbm" |
2657b04dd324
[EMACS_BIT_MAPS]: Include gray.xbm from ./bitmaps.
Richard M. Stallman <rms@gnu.org>
parents:
3507
diff
changeset
|
61 #else |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
62 #include <X11/bitmaps/gray> |
3512
2657b04dd324
[EMACS_BIT_MAPS]: Include gray.xbm from ./bitmaps.
Richard M. Stallman <rms@gnu.org>
parents:
3507
diff
changeset
|
63 #endif |
2355
cec8c9490d8a
* xfns.c [VMS]: Get the gray_bits from [.bitmaps]gray.xbm.
Jim Blandy <jimb@redhat.com>
parents:
2341
diff
changeset
|
64 #else |
cec8c9490d8a
* xfns.c [VMS]: Get the gray_bits from [.bitmaps]gray.xbm.
Jim Blandy <jimb@redhat.com>
parents:
2341
diff
changeset
|
65 #include "[.bitmaps]gray.xbm" |
cec8c9490d8a
* xfns.c [VMS]: Get the gray_bits from [.bitmaps]gray.xbm.
Jim Blandy <jimb@redhat.com>
parents:
2341
diff
changeset
|
66 #endif |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
67 |
49322 | 68 #ifdef USE_GTK |
69 #include "gtkutil.h" | |
70 #endif | |
71 | |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
72 #ifdef USE_X_TOOLKIT |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
73 #include <X11/Shell.h> |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
74 |
12616
ca170048a679
[USE_MOTIF]: Don't include X11/Xaw/Paned.h, X11/Xaw/Label.h.
Richard M. Stallman <rms@gnu.org>
parents:
12546
diff
changeset
|
75 #ifndef USE_MOTIF |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
76 #include <X11/Xaw/Paned.h> |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
77 #include <X11/Xaw/Label.h> |
12616
ca170048a679
[USE_MOTIF]: Don't include X11/Xaw/Paned.h, X11/Xaw/Label.h.
Richard M. Stallman <rms@gnu.org>
parents:
12546
diff
changeset
|
78 #endif /* USE_MOTIF */ |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
79 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
80 #ifdef USG |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
81 #undef USG /* ####KLUDGE for Solaris 2.2 and up */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
82 #include <X11/Xos.h> |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
83 #define USG |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
84 #else |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
85 #include <X11/Xos.h> |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
86 #endif |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
87 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
88 #include "widget.h" |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
89 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
90 #include "../lwlib/lwlib.h" |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
91 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
92 #ifdef USE_MOTIF |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
93 #include <Xm/Xm.h> |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
94 #include <Xm/DialogS.h> |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
95 #include <Xm/FileSB.h> |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
96 #endif |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
97 |
13508
b64345cf1ee9
(HACK_EDITRES): Don't define if NO_EDITRES is defined.
Richard M. Stallman <rms@gnu.org>
parents:
13227
diff
changeset
|
98 /* Do the EDITRES protocol if running X11R5 |
b64345cf1ee9
(HACK_EDITRES): Don't define if NO_EDITRES is defined.
Richard M. Stallman <rms@gnu.org>
parents:
13227
diff
changeset
|
99 Exception: HP-UX (at least version A.09.05) has X11R5 without EditRes */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
100 |
13508
b64345cf1ee9
(HACK_EDITRES): Don't define if NO_EDITRES is defined.
Richard M. Stallman <rms@gnu.org>
parents:
13227
diff
changeset
|
101 #if (XtSpecificationRelease >= 5) && !defined(NO_EDITRES) |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
102 #define HACK_EDITRES |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
103 extern void _XEditResCheckMessages (); |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
104 #endif /* R5 + Athena */ |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
105 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
106 /* Unique id counter for widgets created by the Lucid Widget Library. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
107 |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
108 extern LWLIB_ID widget_id_tick; |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
109 |
15720
f1549b7501af
(Fx_create_frame): Do xlwmenu hack only if USE_LUCID.
Karl Heuer <kwzh@gnu.org>
parents:
15706
diff
changeset
|
110 #ifdef USE_LUCID |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
111 /* This is part of a kludge--see lwlib/xlwmenu.c. */ |
15706
bf891f379d9f
(xlwmenu_default_font): Declare, but don't define.
Karl Heuer <kwzh@gnu.org>
parents:
15704
diff
changeset
|
112 extern XFontStruct *xlwmenu_default_font; |
15720
f1549b7501af
(Fx_create_frame): Do xlwmenu hack only if USE_LUCID.
Karl Heuer <kwzh@gnu.org>
parents:
15706
diff
changeset
|
113 #endif |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
114 |
5900
284c0d70a50a
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: Dont Call XtDestroyWidget but
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5899
diff
changeset
|
115 extern void free_frame_menubar (); |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
116 extern double atof (); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
117 |
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
118 #ifdef USE_MOTIF |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
119 |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
120 /* LessTif/Motif version info. */ |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
121 |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
122 static Lisp_Object Vmotif_version_string; |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
123 |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
124 #endif /* USE_MOTIF */ |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
125 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
126 #endif /* USE_X_TOOLKIT */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
127 |
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
128 #ifdef USE_GTK |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
129 |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
130 /* GTK+ version info */ |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
131 |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
132 static Lisp_Object Vgtk_version_string; |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
133 |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
134 #endif /* USE_GTK */ |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
135 |
4279 | 136 #ifdef HAVE_X11R4 |
137 #define MAXREQUEST(dpy) (XMaxRequestSize (dpy)) | |
138 #else | |
139 #define MAXREQUEST(dpy) ((dpy)->max_request_size) | |
140 #endif | |
141 | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
142 /* The gray bitmap `bitmaps/gray'. This is done because xterm.c uses |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
143 it, and including `bitmaps/gray' more than once is a problem when |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
144 config.h defines `static' as an empty replacement string. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
145 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
146 int gray_bitmap_width = gray_width; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
147 int gray_bitmap_height = gray_height; |
34512
d069886667e6
(gray_bitmap_bits): Declare `char *'.
Gerd Moellmann <gerd@gnu.org>
parents:
34476
diff
changeset
|
148 char *gray_bitmap_bits = gray_bits; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
149 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
150 /* Non-zero means we're allowed to display an hourglass cursor. */ |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
151 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
152 int display_hourglass_p; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
153 |
389 | 154 /* The background and shape of the mouse pointer, and shape when not |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
155 over text or in the modeline. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
156 |
389 | 157 Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
158 Lisp_Object Vx_hourglass_pointer_shape; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
159 |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
160 /* The shape when over mouse-sensitive text. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
161 |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
162 Lisp_Object Vx_sensitive_text_pointer_shape; |
389 | 163 |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
164 /* If non-nil, the pointer shape to indicate that windows can be |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
165 dragged horizontally. */ |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
166 |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
167 Lisp_Object Vx_window_horizontal_drag_shape; |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
168 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
169 /* Color of chars displayed in cursor box. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
170 |
389 | 171 Lisp_Object Vx_cursor_fore_pixel; |
172 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
173 /* Nonzero if using X. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
174 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
175 static int x_in_use; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
176 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
177 /* Non nil if no window manager is in use. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
178 |
389 | 179 Lisp_Object Vx_no_window_manager; |
180 | |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
181 /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
182 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
183 Lisp_Object Vx_pixel_size_width_font_regexp; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
184 |
1874
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
185 Lisp_Object Qnone; |
2328
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
186 Lisp_Object Qsuppress_icon; |
389 | 187 Lisp_Object Qundefined_color; |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
188 Lisp_Object Qcompound_text, Qcancel_timer; |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
189 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
190 /* In dispnew.c */ |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
191 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
192 extern Lisp_Object Vwindow_system_version; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
193 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
194 /* The below are defined in frame.c. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
195 |
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
196 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
197 int image_cache_refcount, dpyinfo_refcount; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
198 #endif |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
199 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
200 |
389 | 201 |
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
202 /* Error if we are not connected to X. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
203 |
5948 | 204 void |
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
205 check_x () |
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
206 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
207 if (! x_in_use) |
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
208 error ("X windows are not in use or not initialized"); |
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
209 } |
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
210 |
13867
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
211 /* Nonzero if we can use mouse menus. |
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
212 You should not call this unless HAVE_MENUS is defined. */ |
7791
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
213 |
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
214 int |
13867
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
215 have_menus_p () |
7791
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
216 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
217 return x_in_use; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
218 } |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
219 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
220 /* Extract a frame as a FRAME_PTR, defaulting to the selected frame |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
221 and checking validity for X. */ |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
222 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
223 FRAME_PTR |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
224 check_x_frame (frame) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
225 Lisp_Object frame; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
226 { |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
227 FRAME_PTR f; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
228 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
229 if (NILP (frame)) |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
230 frame = selected_frame; |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
231 CHECK_LIVE_FRAME (frame); |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
232 f = XFRAME (frame); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
233 if (! FRAME_X_P (f)) |
13867
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
234 error ("Non-X frame used"); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
235 return f; |
7791
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
236 } |
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
237 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
238 /* Let the user specify an X display with a frame. |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
239 nil stands for the selected frame--or, if that is not an X frame, |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
240 the first X display on the list. */ |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
241 |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
242 struct x_display_info * |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
243 check_x_display_info (frame) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
244 Lisp_Object frame; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
245 { |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
246 struct x_display_info *dpyinfo = NULL; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
247 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
248 if (NILP (frame)) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
249 { |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
250 struct frame *sf = XFRAME (selected_frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
251 |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
252 if (FRAME_X_P (sf) && FRAME_LIVE_P (sf)) |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
253 dpyinfo = FRAME_X_DISPLAY_INFO (sf); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
254 else if (x_display_list != 0) |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
255 dpyinfo = x_display_list; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
256 else |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
257 error ("X windows are not in use or not initialized"); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
258 } |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
259 else if (STRINGP (frame)) |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
260 dpyinfo = x_display_info_for_name (frame); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
261 else |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
262 { |
45968
6bf20f37b7c7
(check_x_display_info): Use check_x_frame.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
45603
diff
changeset
|
263 FRAME_PTR f = check_x_frame (frame); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
264 dpyinfo = FRAME_X_DISPLAY_INFO (f); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
265 } |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
266 |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
267 return dpyinfo; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
268 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
269 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
270 |
771 | 271 /* Return the Emacs frame-object corresponding to an X window. |
272 It could be the frame's main window or an icon window. */ | |
273 | |
9948
982820033564
(x_window_to_frame, x_any_window_to_frame, x_top_window_to_frame): Use the new
Karl Heuer <kwzh@gnu.org>
parents:
9813
diff
changeset
|
274 /* This function can be called during GC, so use GC_xxx type test macros. */ |
2964
a0ff2bc5dd05
(x_window_to_frame): Use XGCTYPE.
Richard M. Stallman <rms@gnu.org>
parents:
2936
diff
changeset
|
275 |
771 | 276 struct frame * |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
277 x_window_to_frame (dpyinfo, wdesc) |
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
278 struct x_display_info *dpyinfo; |
389 | 279 int wdesc; |
280 { | |
771 | 281 Lisp_Object tail, frame; |
282 struct frame *f; | |
283 | |
56781
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
284 if (wdesc == None) return 0; |
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
285 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
286 for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail)) |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
287 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
288 frame = XCAR (tail); |
9948
982820033564
(x_window_to_frame, x_any_window_to_frame, x_top_window_to_frame): Use the new
Karl Heuer <kwzh@gnu.org>
parents:
9813
diff
changeset
|
289 if (!GC_FRAMEP (frame)) |
389 | 290 continue; |
771 | 291 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
292 if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo) |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
293 continue; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
294 if (f->output_data.x->hourglass_window == wdesc) |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
295 return f; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
296 #ifdef USE_X_TOOLKIT |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
297 if ((f->output_data.x->edit_widget |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
298 && XtWindow (f->output_data.x->edit_widget) == wdesc) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
299 /* A tooltip frame? */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
300 || (!f->output_data.x->edit_widget |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
301 && FRAME_X_WINDOW (f) == wdesc) |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
302 || f->output_data.x->icon_desc == wdesc) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
303 return f; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
304 #else /* not USE_X_TOOLKIT */ |
49322 | 305 #ifdef USE_GTK |
306 if (f->output_data.x->edit_widget) | |
307 { | |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
308 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 309 struct x_output *x = f->output_data.x; |
310 if (gwdesc != 0 && gwdesc == x->edit_widget) | |
311 return f; | |
312 } | |
313 #endif /* USE_GTK */ | |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
314 if (FRAME_X_WINDOW (f) == wdesc |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
315 || f->output_data.x->icon_desc == wdesc) |
771 | 316 return f; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
317 #endif /* not USE_X_TOOLKIT */ |
389 | 318 } |
319 return 0; | |
320 } | |
321 | |
49322 | 322 #if defined (USE_X_TOOLKIT) || defined (USE_GTK) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
323 /* Like x_window_to_frame but also compares the window with the widget's |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
324 windows. */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
325 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
326 struct frame * |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
327 x_any_window_to_frame (dpyinfo, wdesc) |
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
328 struct x_display_info *dpyinfo; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
329 int wdesc; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
330 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
331 Lisp_Object tail, frame; |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
332 struct frame *f, *found; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
333 struct x_output *x; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
334 |
56781
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
335 if (wdesc == None) return NULL; |
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
336 |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
337 found = NULL; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
338 for (tail = Vframe_list; GC_CONSP (tail) && !found; tail = XCDR (tail)) |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
339 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
340 frame = XCAR (tail); |
9948
982820033564
(x_window_to_frame, x_any_window_to_frame, x_top_window_to_frame): Use the new
Karl Heuer <kwzh@gnu.org>
parents:
9813
diff
changeset
|
341 if (!GC_FRAMEP (frame)) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
342 continue; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
343 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
344 f = XFRAME (frame); |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
345 if (FRAME_X_P (f) && FRAME_X_DISPLAY_INFO (f) == dpyinfo) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
346 { |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
347 /* This frame matches if the window is any of its widgets. */ |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
348 x = f->output_data.x; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
349 if (x->hourglass_window == wdesc) |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
350 found = f; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
351 else if (x->widget) |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
352 { |
49322 | 353 #ifdef USE_GTK |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
354 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 355 if (gwdesc != 0 |
356 && (gwdesc == x->widget | |
357 || gwdesc == x->edit_widget | |
358 || gwdesc == x->vbox_widget | |
359 || gwdesc == x->menubar_widget)) | |
360 found = f; | |
361 #else | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
362 if (wdesc == XtWindow (x->widget) |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
363 || wdesc == XtWindow (x->column_widget) |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
364 || wdesc == XtWindow (x->edit_widget)) |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
365 found = f; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
366 /* Match if the window is this frame's menubar. */ |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
367 else if (lw_window_is_in_menubar (wdesc, x->menubar_widget)) |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
368 found = f; |
49322 | 369 #endif |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
370 } |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
371 else if (FRAME_X_WINDOW (f) == wdesc) |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
372 /* A tooltip frame. */ |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
373 found = f; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
374 } |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
375 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
376 |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
377 return found; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
378 } |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
379 |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
380 /* Likewise, but exclude the menu bar widget. */ |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
381 |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
382 struct frame * |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
383 x_non_menubar_window_to_frame (dpyinfo, wdesc) |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
384 struct x_display_info *dpyinfo; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
385 int wdesc; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
386 { |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
387 Lisp_Object tail, frame; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
388 struct frame *f; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
389 struct x_output *x; |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
390 |
56781
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
391 if (wdesc == None) return 0; |
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
392 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
393 for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail)) |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
394 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
395 frame = XCAR (tail); |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
396 if (!GC_FRAMEP (frame)) |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
397 continue; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
398 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
399 if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo) |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
400 continue; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
401 x = f->output_data.x; |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
402 /* This frame matches if the window is any of its widgets. */ |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
403 if (x->hourglass_window == wdesc) |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
404 return f; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
405 else if (x->widget) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
406 { |
49322 | 407 #ifdef USE_GTK |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
408 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 409 if (gwdesc != 0 |
410 && (gwdesc == x->widget | |
411 || gwdesc == x->edit_widget | |
412 || gwdesc == x->vbox_widget)) | |
413 return f; | |
414 #else | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
415 if (wdesc == XtWindow (x->widget) |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
416 || wdesc == XtWindow (x->column_widget) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
417 || wdesc == XtWindow (x->edit_widget)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
418 return f; |
49322 | 419 #endif |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
420 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
421 else if (FRAME_X_WINDOW (f) == wdesc) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
422 /* A tooltip frame. */ |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
423 return f; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
424 } |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
425 return 0; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
426 } |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
427 |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
428 /* Likewise, but consider only the menu bar widget. */ |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
429 |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
430 struct frame * |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
431 x_menubar_window_to_frame (dpyinfo, wdesc) |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
432 struct x_display_info *dpyinfo; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
433 int wdesc; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
434 { |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
435 Lisp_Object tail, frame; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
436 struct frame *f; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
437 struct x_output *x; |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
438 |
56781
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
439 if (wdesc == None) return 0; |
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
440 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
441 for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail)) |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
442 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
443 frame = XCAR (tail); |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
444 if (!GC_FRAMEP (frame)) |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
445 continue; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
446 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
447 if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo) |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
448 continue; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
449 x = f->output_data.x; |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
450 /* Match if the window is this frame's menubar. */ |
49322 | 451 #ifdef USE_GTK |
452 if (x->menubar_widget) | |
453 { | |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
454 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 455 int found = 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
456 |
49322 | 457 BLOCK_INPUT; |
458 if (gwdesc != 0 | |
459 && (gwdesc == x->menubar_widget | |
460 || gtk_widget_get_parent (gwdesc) == x->menubar_widget)) | |
461 found = 1; | |
462 UNBLOCK_INPUT; | |
463 if (found) return f; | |
464 } | |
465 #else | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
466 if (x->menubar_widget |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
467 && lw_window_is_in_menubar (wdesc, x->menubar_widget)) |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
468 return f; |
49322 | 469 #endif |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
470 } |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
471 return 0; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
472 } |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
473 |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
474 /* Return the frame whose principal (outermost) window is WDESC. |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
475 If WDESC is some other (smaller) window, we return 0. */ |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
476 |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
477 struct frame * |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
478 x_top_window_to_frame (dpyinfo, wdesc) |
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
479 struct x_display_info *dpyinfo; |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
480 int wdesc; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
481 { |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
482 Lisp_Object tail, frame; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
483 struct frame *f; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
484 struct x_output *x; |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
485 |
56781
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
486 if (wdesc == None) return 0; |
c54fa35b4ded
* xfns.c (x_window_to_frame, x_any_window_to_frame)
Jan Djärv <jan.h.d@swipnet.se>
parents:
56718
diff
changeset
|
487 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
488 for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail)) |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
489 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
490 frame = XCAR (tail); |
9948
982820033564
(x_window_to_frame, x_any_window_to_frame, x_top_window_to_frame): Use the new
Karl Heuer <kwzh@gnu.org>
parents:
9813
diff
changeset
|
491 if (!GC_FRAMEP (frame)) |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
492 continue; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
493 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
494 if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo) |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
495 continue; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
496 x = f->output_data.x; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
497 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
498 if (x->widget) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
499 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
500 /* This frame matches if the window is its topmost widget. */ |
49322 | 501 #ifdef USE_GTK |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
502 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 503 if (gwdesc == x->widget) |
504 return f; | |
505 #else | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
506 if (wdesc == XtWindow (x->widget)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
507 return f; |
12019
63ee64941021
(x_top_window_to_frame): Don't match menu-bar widget.
Karl Heuer <kwzh@gnu.org>
parents:
12011
diff
changeset
|
508 #if 0 /* I don't know why it did this, |
63ee64941021
(x_top_window_to_frame): Don't match menu-bar widget.
Karl Heuer <kwzh@gnu.org>
parents:
12011
diff
changeset
|
509 but it seems logically wrong, |
63ee64941021
(x_top_window_to_frame): Don't match menu-bar widget.
Karl Heuer <kwzh@gnu.org>
parents:
12011
diff
changeset
|
510 and it causes trouble for MapNotify events. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
511 /* Match if the window is this frame's menubar. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
512 if (x->menubar_widget |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
513 && wdesc == XtWindow (x->menubar_widget)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
514 return f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
515 #endif |
49322 | 516 #endif |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
517 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
518 else if (FRAME_X_WINDOW (f) == wdesc) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
519 /* Tooltip frame. */ |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
520 return f; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
521 } |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
522 return 0; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
523 } |
49322 | 524 #endif /* USE_X_TOOLKIT || USE_GTK */ |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
525 |
389 | 526 |
9543
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
527 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
528 static Lisp_Object unwind_create_frame P_ ((Lisp_Object)); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
529 static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object)); |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
530 |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
531 void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
532 static void x_set_wait_for_wm P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
533 void x_set_background_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
534 void x_set_mouse_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
535 void x_set_cursor_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
536 void x_set_border_color P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
537 void x_set_cursor_type P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
538 void x_set_icon_type P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
539 void x_set_icon_name P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
540 void x_explicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
541 void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
542 void x_set_title P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
543 void x_set_tool_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
544 void x_set_scroll_bar_foreground P_ ((struct frame *, Lisp_Object, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
545 Lisp_Object)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
546 void x_set_scroll_bar_background P_ ((struct frame *, Lisp_Object, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
547 Lisp_Object)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
548 static Lisp_Object x_default_scroll_bar_color_parameter P_ ((struct frame *, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
549 Lisp_Object, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
550 Lisp_Object, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
551 char *, char *, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
552 int)); |
389 | 553 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
554 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
555 /* Store the screen positions of frame F into XPTR and YPTR. |
7408
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
556 These are the positions of the containing window manager window, |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
557 not Emacs's own window. */ |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
558 |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
559 void |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
560 x_real_positions (f, xptr, yptr) |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
561 FRAME_PTR f; |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
562 int *xptr, *yptr; |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
563 { |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
564 int win_x, win_y, outer_x, outer_y; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
565 int real_x = 0, real_y = 0; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
566 int had_errors = 0; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
567 Window win = f->output_data.x->parent_desc; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
568 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
569 int count; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
570 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
571 BLOCK_INPUT; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
572 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
573 count = x_catch_errors (FRAME_X_DISPLAY (f)); |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
574 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
575 if (win == FRAME_X_DISPLAY_INFO (f)->root_window) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
576 win = FRAME_OUTER_WINDOW (f); |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
577 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
578 /* This loop traverses up the containment tree until we hit the root |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
579 window. Window managers may intersect many windows between our window |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
580 and the root window. The window we find just before the root window |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
581 should be the outer WM window. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
582 for (;;) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
583 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
584 Window wm_window, rootw; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
585 Window *tmp_children; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
586 unsigned int tmp_nchildren; |
43914
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
587 int success; |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
588 |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
589 success = XQueryTree (FRAME_X_DISPLAY (f), win, &rootw, |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
590 &wm_window, &tmp_children, &tmp_nchildren); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
591 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
592 had_errors = x_had_errors_p (FRAME_X_DISPLAY (f)); |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
593 |
43914
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
594 /* Don't free tmp_children if XQueryTree failed. */ |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
595 if (! success) |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
596 break; |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
597 |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
598 XFree ((char *) tmp_children); |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
599 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
600 if (wm_window == rootw || had_errors) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
601 break; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
602 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
603 win = wm_window; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
604 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
605 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
606 if (! had_errors) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
607 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
608 int ign; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
609 Window child, rootw; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
610 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
611 /* Get the real coordinates for the WM window upper left corner */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
612 XGetGeometry (FRAME_X_DISPLAY (f), win, |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
613 &rootw, &real_x, &real_y, &ign, &ign, &ign, &ign); |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
614 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
615 /* Translate real coordinates to coordinates relative to our |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
616 window. For our window, the upper left corner is 0, 0. |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
617 Since the upper left corner of the WM window is outside |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
618 our window, win_x and win_y will be negative: |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
619 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
620 ------------------ ---> x |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
621 | title | |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
622 | ----------------- v y |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
623 | | our window |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
624 */ |
17954
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
625 XTranslateCoordinates (FRAME_X_DISPLAY (f), |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
626 |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
627 /* From-window, to-window. */ |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
628 FRAME_X_DISPLAY_INFO (f)->root_window, |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
629 FRAME_X_WINDOW (f), |
17954
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
630 |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
631 /* From-position, to-position. */ |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
632 real_x, real_y, &win_x, &win_y, |
17954
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
633 |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
634 /* Child of win. */ |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
635 &child); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
636 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
637 if (FRAME_X_WINDOW (f) == FRAME_OUTER_WINDOW (f)) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
638 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
639 outer_x = win_x; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
640 outer_y = win_y; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
641 } |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
642 else |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
643 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
644 XTranslateCoordinates (FRAME_X_DISPLAY (f), |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
645 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
646 /* From-window, to-window. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
647 FRAME_X_DISPLAY_INFO (f)->root_window, |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
648 FRAME_OUTER_WINDOW (f), |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
649 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
650 /* From-position, to-position. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
651 real_x, real_y, &outer_x, &outer_y, |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
652 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
653 /* Child of win. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
654 &child); |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
655 } |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
656 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
657 had_errors = x_had_errors_p (FRAME_X_DISPLAY (f)); |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
658 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
659 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
660 x_uncatch_errors (FRAME_X_DISPLAY (f), count); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
661 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
662 UNBLOCK_INPUT; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
663 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
664 if (had_errors) return; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
665 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
666 f->x_pixels_diff = -win_x; |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
667 f->y_pixels_diff = -win_y; |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
668 |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
669 FRAME_X_OUTPUT (f)->x_pixels_outer_diff = -outer_x; |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
670 FRAME_X_OUTPUT (f)->y_pixels_outer_diff = -outer_y; |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
671 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
672 *xptr = real_x; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
673 *yptr = real_y; |
7408
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
674 } |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
675 |
389 | 676 |
10920
bb3f9aaf0e46
(defined_color): If colormap is full, find closest match.
Richard M. Stallman <rms@gnu.org>
parents:
10742
diff
changeset
|
677 |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
678 |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
679 /* Gamma-correct COLOR on frame F. */ |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
680 |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
681 void |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
682 gamma_correct (f, color) |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
683 struct frame *f; |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
684 XColor *color; |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
685 { |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
686 if (f->gamma) |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
687 { |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
688 color->red = pow (color->red / 65535.0, f->gamma) * 65535.0 + 0.5; |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
689 color->green = pow (color->green / 65535.0, f->gamma) * 65535.0 + 0.5; |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
690 color->blue = pow (color->blue / 65535.0, f->gamma) * 65535.0 + 0.5; |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
691 } |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
692 } |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
693 |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
694 |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
695 /* Decide if color named COLOR_NAME is valid for use on frame F. If |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
696 so, return the RGB values in COLOR. If ALLOC_P is non-zero, |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
697 allocate the color. Value is zero if COLOR_NAME is invalid, or |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
698 no color could be allocated. */ |
8675
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
699 |
389 | 700 int |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
701 x_defined_color (f, color_name, color, alloc_p) |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
702 struct frame *f; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
703 char *color_name; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
704 XColor *color; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
705 int alloc_p; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
706 { |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
707 int success_p; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
708 Display *dpy = FRAME_X_DISPLAY (f); |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
709 Colormap cmap = FRAME_X_COLORMAP (f); |
389 | 710 |
711 BLOCK_INPUT; | |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
712 success_p = XParseColor (dpy, cmap, color_name, color); |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
713 if (success_p && alloc_p) |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
714 success_p = x_alloc_nearest_color (f, cmap, color); |
389 | 715 UNBLOCK_INPUT; |
716 | |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
717 return success_p; |
389 | 718 } |
719 | |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
720 |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
721 /* Return the pixel color value for color COLOR_NAME on frame F. If F |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
722 is a monochrome frame, return MONO_COLOR regardless of what ARG says. |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
723 Signal an error if color can't be allocated. */ |
389 | 724 |
725 int | |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
726 x_decode_color (f, color_name, mono_color) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
727 FRAME_PTR f; |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
728 Lisp_Object color_name; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
729 int mono_color; |
389 | 730 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
731 XColor cdef; |
389 | 732 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
733 CHECK_STRING (color_name); |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
734 |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
735 #if 0 /* Don't do this. It's wrong when we're not using the default |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
736 colormap, it makes freeing difficult, and it's probably not |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
737 an important optimization. */ |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
738 if (strcmp (SDATA (color_name), "black") == 0) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
739 return BLACK_PIX_DEFAULT (f); |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
740 else if (strcmp (SDATA (color_name), "white") == 0) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
741 return WHITE_PIX_DEFAULT (f); |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
742 #endif |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
743 |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
744 /* Return MONO_COLOR for monochrome frames. */ |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
745 if (FRAME_X_DISPLAY_INFO (f)->n_planes == 1) |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
746 return mono_color; |
389 | 747 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
748 /* x_defined_color is responsible for coping with failures |
11060
0a7048d331e6
(x_decode_color): Don't use cdef if defined_color failed.
Richard M. Stallman <rms@gnu.org>
parents:
11014
diff
changeset
|
749 by looking for a near-miss. */ |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
750 if (x_defined_color (f, SDATA (color_name), &cdef, 1)) |
11060
0a7048d331e6
(x_decode_color): Don't use cdef if defined_color failed.
Richard M. Stallman <rms@gnu.org>
parents:
11014
diff
changeset
|
751 return cdef.pixel; |
0a7048d331e6
(x_decode_color): Don't use cdef if defined_color failed.
Richard M. Stallman <rms@gnu.org>
parents:
11014
diff
changeset
|
752 |
31902
f526f6f002d7
(x_decode_color): Don't return a Lisp_Object.
Gerd Moellmann <gerd@gnu.org>
parents:
31824
diff
changeset
|
753 Fsignal (Qerror, Fcons (build_string ("Undefined color"), |
f526f6f002d7
(x_decode_color): Don't return a Lisp_Object.
Gerd Moellmann <gerd@gnu.org>
parents:
31824
diff
changeset
|
754 Fcons (color_name, Qnil))); |
f526f6f002d7
(x_decode_color): Don't return a Lisp_Object.
Gerd Moellmann <gerd@gnu.org>
parents:
31824
diff
changeset
|
755 return 0; |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
756 } |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
757 |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
758 |
389 | 759 |
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
760 /* Change the `wait-for-wm' frame parameter of frame F. OLD_VALUE is |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
761 the previous value of that parameter, NEW_VALUE is the new value. |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
762 See also the comment of wait_for_wm in struct x_output. */ |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
763 |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
764 static void |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
765 x_set_wait_for_wm (f, new_value, old_value) |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
766 struct frame *f; |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
767 Lisp_Object new_value, old_value; |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
768 { |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
769 f->output_data.x->wait_for_wm = !NILP (new_value); |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
770 } |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
771 |
51898
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
772 #ifdef USE_GTK |
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
773 |
52095
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
774 /* Set icon from FILE for frame F. By using GTK functions the icon |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
775 may be any format that GdkPixbuf knows about, i.e. not just bitmaps. */ |
51898
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
776 |
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
777 int |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
778 xg_set_icon (f, file) |
52095
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
779 FRAME_PTR f; |
51898
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
780 Lisp_Object file; |
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
781 { |
52095
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
782 struct gcpro gcpro1; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
783 int result = 0; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
784 Lisp_Object found; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
785 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
786 GCPRO1 (found); |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
787 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
788 found = x_find_image_file (file); |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
789 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
790 if (! NILP (found)) |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
791 { |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
792 GdkPixbuf *pixbuf; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
793 GError *err = NULL; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
794 char *filename; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
795 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
796 filename = SDATA (found); |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
797 BLOCK_INPUT; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
798 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
799 pixbuf = gdk_pixbuf_new_from_file (filename, &err); |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
800 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
801 if (pixbuf) |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
802 { |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
803 gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
804 pixbuf); |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
805 g_object_unref (pixbuf); |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
806 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
807 result = 1; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
808 } |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
809 else |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
810 g_error_free (err); |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
811 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
812 UNBLOCK_INPUT; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
813 } |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
814 |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
815 UNGCPRO; |
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Djärv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
816 return result; |
51898
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
817 } |
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
818 #endif /* USE_GTK */ |
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
819 |
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
820 |
771 | 821 /* Functions called only from `x_set_frame_param' |
389 | 822 to set individual parameters. |
823 | |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
824 If FRAME_X_WINDOW (f) is 0, |
771 | 825 the frame is being created and its X-window does not exist yet. |
389 | 826 In that case, just record the parameter's new value |
827 in the standard place; do not attempt to change the window. */ | |
828 | |
829 void | |
771 | 830 x_set_foreground_color (f, arg, oldval) |
831 struct frame *f; | |
389 | 832 Lisp_Object arg, oldval; |
833 { | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
834 struct x_output *x = f->output_data.x; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
835 unsigned long fg, old_fg; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
836 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
837 fg = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
838 old_fg = x->foreground_pixel; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
839 x->foreground_pixel = fg; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
840 |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
841 if (FRAME_X_WINDOW (f) != 0) |
389 | 842 { |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
843 Display *dpy = FRAME_X_DISPLAY (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
844 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
845 BLOCK_INPUT; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
846 XSetForeground (dpy, x->normal_gc, fg); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
847 XSetBackground (dpy, x->reverse_gc, fg); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
848 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
849 if (x->cursor_pixel == old_fg) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
850 { |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
851 unload_color (f, x->cursor_pixel); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
852 x->cursor_pixel = x_copy_color (f, fg); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
853 XSetBackground (dpy, x->cursor_gc, x->cursor_pixel); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
854 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
855 |
389 | 856 UNBLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
857 |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
858 update_face_from_frame_parameter (f, Qforeground_color, arg); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
859 |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
860 if (FRAME_VISIBLE_P (f)) |
771 | 861 redraw_frame (f); |
389 | 862 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
863 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
864 unload_color (f, old_fg); |
389 | 865 } |
866 | |
867 void | |
771 | 868 x_set_background_color (f, arg, oldval) |
869 struct frame *f; | |
389 | 870 Lisp_Object arg, oldval; |
871 { | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
872 struct x_output *x = f->output_data.x; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
873 unsigned long bg; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
874 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
875 bg = x_decode_color (f, arg, WHITE_PIX_DEFAULT (f)); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
876 unload_color (f, x->background_pixel); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
877 x->background_pixel = bg; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
878 |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
879 if (FRAME_X_WINDOW (f) != 0) |
389 | 880 { |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
881 Display *dpy = FRAME_X_DISPLAY (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
882 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
883 BLOCK_INPUT; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
884 XSetBackground (dpy, x->normal_gc, bg); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
885 XSetForeground (dpy, x->reverse_gc, bg); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
886 XSetWindowBackground (dpy, FRAME_X_WINDOW (f), bg); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
887 XSetForeground (dpy, x->cursor_gc, bg); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
888 |
49322 | 889 #ifdef USE_GTK |
890 xg_set_background_color (f, bg); | |
891 #endif | |
892 | |
39159
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
893 #ifndef USE_TOOLKIT_SCROLL_BARS /* Turns out to be annoying with |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
894 toolkit scroll bars. */ |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
895 { |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
896 Lisp_Object bar; |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
897 for (bar = FRAME_SCROLL_BARS (f); |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
898 !NILP (bar); |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
899 bar = XSCROLL_BAR (bar)->next) |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
900 { |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
901 Window window = SCROLL_BAR_X_WINDOW (XSCROLL_BAR (bar)); |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
902 XSetWindowBackground (dpy, window, bg); |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
903 } |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
904 } |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
905 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
906 |
389 | 907 UNBLOCK_INPUT; |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
908 update_face_from_frame_parameter (f, Qbackground_color, arg); |
3075
878381e48b0d
* xfns.c: Clear out the old face stuff.
Jim Blandy <jimb@redhat.com>
parents:
3048
diff
changeset
|
909 |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
910 if (FRAME_VISIBLE_P (f)) |
771 | 911 redraw_frame (f); |
389 | 912 } |
913 } | |
914 | |
915 void | |
771 | 916 x_set_mouse_color (f, arg, oldval) |
917 struct frame *f; | |
389 | 918 Lisp_Object arg, oldval; |
919 { | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
920 struct x_output *x = f->output_data.x; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
921 Display *dpy = FRAME_X_DISPLAY (f); |
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
922 Cursor cursor, nontext_cursor, mode_cursor, hand_cursor; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
923 Cursor hourglass_cursor, horizontal_drag_cursor; |
17609
8c878d76d6a4
(x_real_positions, x_set_mouse_color, Fx_list_fonts):
Richard M. Stallman <rms@gnu.org>
parents:
17579
diff
changeset
|
924 int count; |
25075
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
925 unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
926 unsigned long mask_color = x->background_pixel; |
25075
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
927 |
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
928 /* Don't let pointers be invisible. */ |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
929 if (mask_color == pixel) |
35261
ba1f849f9381
(x_set_mouse_color): Fix color allocation.
Gerd Moellmann <gerd@gnu.org>
parents:
35191
diff
changeset
|
930 { |
ba1f849f9381
(x_set_mouse_color): Fix color allocation.
Gerd Moellmann <gerd@gnu.org>
parents:
35191
diff
changeset
|
931 x_free_colors (f, &pixel, 1); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
932 pixel = x_copy_color (f, x->foreground_pixel); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
933 } |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
934 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
935 unload_color (f, x->mouse_pixel); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
936 x->mouse_pixel = pixel; |
389 | 937 |
938 BLOCK_INPUT; | |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
939 |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3512
diff
changeset
|
940 /* It's not okay to crash if the user selects a screwy cursor. */ |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
941 count = x_catch_errors (dpy); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
942 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
943 if (!NILP (Vx_pointer_shape)) |
389 | 944 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
945 CHECK_NUMBER (Vx_pointer_shape); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
946 cursor = XCreateFontCursor (dpy, XINT (Vx_pointer_shape)); |
389 | 947 } |
948 else | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
949 cursor = XCreateFontCursor (dpy, XC_xterm); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
950 x_check_errors (dpy, "bad text pointer cursor: %s"); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
951 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
952 if (!NILP (Vx_nontext_pointer_shape)) |
389 | 953 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
954 CHECK_NUMBER (Vx_nontext_pointer_shape); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
955 nontext_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
956 = XCreateFontCursor (dpy, XINT (Vx_nontext_pointer_shape)); |
389 | 957 } |
958 else | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
959 nontext_cursor = XCreateFontCursor (dpy, XC_left_ptr); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
960 x_check_errors (dpy, "bad nontext pointer cursor: %s"); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
961 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
962 if (!NILP (Vx_hourglass_pointer_shape)) |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
963 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
964 CHECK_NUMBER (Vx_hourglass_pointer_shape); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
965 hourglass_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
966 = XCreateFontCursor (dpy, XINT (Vx_hourglass_pointer_shape)); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
967 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
968 else |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
969 hourglass_cursor = XCreateFontCursor (dpy, XC_watch); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
970 x_check_errors (dpy, "bad hourglass pointer cursor: %s"); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
971 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
972 if (!NILP (Vx_mode_pointer_shape)) |
389 | 973 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
974 CHECK_NUMBER (Vx_mode_pointer_shape); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
975 mode_cursor = XCreateFontCursor (dpy, XINT (Vx_mode_pointer_shape)); |
389 | 976 } |
977 else | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
978 mode_cursor = XCreateFontCursor (dpy, XC_xterm); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
979 x_check_errors (dpy, "bad modeline pointer cursor: %s"); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
980 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
981 if (!NILP (Vx_sensitive_text_pointer_shape)) |
6759
e0938c42218c
(syms_of_xfns): Define Vx_cross_pointer_shape.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6610
diff
changeset
|
982 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
983 CHECK_NUMBER (Vx_sensitive_text_pointer_shape); |
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
984 hand_cursor |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
985 = XCreateFontCursor (dpy, XINT (Vx_sensitive_text_pointer_shape)); |
6759
e0938c42218c
(syms_of_xfns): Define Vx_cross_pointer_shape.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6610
diff
changeset
|
986 } |
e0938c42218c
(syms_of_xfns): Define Vx_cross_pointer_shape.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6610
diff
changeset
|
987 else |
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
988 hand_cursor = XCreateFontCursor (dpy, XC_hand2); |
389 | 989 |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
990 if (!NILP (Vx_window_horizontal_drag_shape)) |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
991 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
992 CHECK_NUMBER (Vx_window_horizontal_drag_shape); |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
993 horizontal_drag_cursor |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
994 = XCreateFontCursor (dpy, XINT (Vx_window_horizontal_drag_shape)); |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
995 } |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
996 else |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
997 horizontal_drag_cursor |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
998 = XCreateFontCursor (dpy, XC_sb_h_double_arrow); |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
999 |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
1000 /* Check and report errors with the above calls. */ |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1001 x_check_errors (dpy, "can't set cursor shape: %s"); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1002 x_uncatch_errors (dpy, count); |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
1003 |
389 | 1004 { |
1005 XColor fore_color, back_color; | |
1006 | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1007 fore_color.pixel = x->mouse_pixel; |
32606
78b4e9f31087
(x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
Gerd Moellmann <gerd@gnu.org>
parents:
32549
diff
changeset
|
1008 x_query_color (f, &fore_color); |
389 | 1009 back_color.pixel = mask_color; |
32606
78b4e9f31087
(x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
Gerd Moellmann <gerd@gnu.org>
parents:
32549
diff
changeset
|
1010 x_query_color (f, &back_color); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1011 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1012 XRecolorCursor (dpy, cursor, &fore_color, &back_color); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1013 XRecolorCursor (dpy, nontext_cursor, &fore_color, &back_color); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1014 XRecolorCursor (dpy, mode_cursor, &fore_color, &back_color); |
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1015 XRecolorCursor (dpy, hand_cursor, &fore_color, &back_color); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1016 XRecolorCursor (dpy, hourglass_cursor, &fore_color, &back_color); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1017 XRecolorCursor (dpy, horizontal_drag_cursor, &fore_color, &back_color); |
389 | 1018 } |
1019 | |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
1020 if (FRAME_X_WINDOW (f) != 0) |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1021 XDefineCursor (dpy, FRAME_X_WINDOW (f), cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1022 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1023 if (cursor != x->text_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1024 && x->text_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1025 XFreeCursor (dpy, x->text_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1026 x->text_cursor = cursor; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1027 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1028 if (nontext_cursor != x->nontext_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1029 && x->nontext_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1030 XFreeCursor (dpy, x->nontext_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1031 x->nontext_cursor = nontext_cursor; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1032 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1033 if (hourglass_cursor != x->hourglass_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1034 && x->hourglass_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1035 XFreeCursor (dpy, x->hourglass_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1036 x->hourglass_cursor = hourglass_cursor; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1037 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1038 if (mode_cursor != x->modeline_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1039 && x->modeline_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1040 XFreeCursor (dpy, f->output_data.x->modeline_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1041 x->modeline_cursor = mode_cursor; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1042 |
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1043 if (hand_cursor != x->hand_cursor |
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1044 && x->hand_cursor != 0) |
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1045 XFreeCursor (dpy, x->hand_cursor); |
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1046 x->hand_cursor = hand_cursor; |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1047 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1048 if (horizontal_drag_cursor != x->horizontal_drag_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1049 && x->horizontal_drag_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1050 XFreeCursor (dpy, x->horizontal_drag_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1051 x->horizontal_drag_cursor = horizontal_drag_cursor; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1052 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1053 XFlush (dpy); |
389 | 1054 UNBLOCK_INPUT; |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1055 |
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1056 update_face_from_frame_parameter (f, Qmouse_color, arg); |
389 | 1057 } |
1058 | |
1059 void | |
771 | 1060 x_set_cursor_color (f, arg, oldval) |
1061 struct frame *f; | |
389 | 1062 Lisp_Object arg, oldval; |
1063 { | |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1064 unsigned long fore_pixel, pixel; |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1065 int fore_pixel_allocated_p = 0, pixel_allocated_p = 0; |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1066 struct x_output *x = f->output_data.x; |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1067 |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1068 if (!NILP (Vx_cursor_fore_pixel)) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1069 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1070 fore_pixel = x_decode_color (f, Vx_cursor_fore_pixel, |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1071 WHITE_PIX_DEFAULT (f)); |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1072 fore_pixel_allocated_p = 1; |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1073 } |
389 | 1074 else |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1075 fore_pixel = x->background_pixel; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1076 |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1077 pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1078 pixel_allocated_p = 1; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1079 |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
1080 /* Make sure that the cursor color differs from the background color. */ |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1081 if (pixel == x->background_pixel) |
389 | 1082 { |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1083 if (pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1084 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1085 x_free_colors (f, &pixel, 1); |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1086 pixel_allocated_p = 0; |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1087 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1088 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1089 pixel = x->mouse_pixel; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1090 if (pixel == fore_pixel) |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1091 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1092 if (fore_pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1093 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1094 x_free_colors (f, &fore_pixel, 1); |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1095 fore_pixel_allocated_p = 0; |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1096 } |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1097 fore_pixel = x->background_pixel; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1098 } |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1099 } |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1100 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1101 unload_color (f, x->cursor_foreground_pixel); |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1102 if (!fore_pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1103 fore_pixel = x_copy_color (f, fore_pixel); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1104 x->cursor_foreground_pixel = fore_pixel; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1105 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1106 unload_color (f, x->cursor_pixel); |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1107 if (!pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1108 pixel = x_copy_color (f, pixel); |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1109 x->cursor_pixel = pixel; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1110 |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
1111 if (FRAME_X_WINDOW (f) != 0) |
389 | 1112 { |
1113 BLOCK_INPUT; | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1114 XSetBackground (FRAME_X_DISPLAY (f), x->cursor_gc, x->cursor_pixel); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1115 XSetForeground (FRAME_X_DISPLAY (f), x->cursor_gc, fore_pixel); |
389 | 1116 UNBLOCK_INPUT; |
1117 | |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
1118 if (FRAME_VISIBLE_P (f)) |
389 | 1119 { |
15999
0e148af7d4ec
(x_set_cursor_color): Use x_update_cursor.
Richard M. Stallman <rms@gnu.org>
parents:
15942
diff
changeset
|
1120 x_update_cursor (f, 0); |
0e148af7d4ec
(x_set_cursor_color): Use x_update_cursor.
Richard M. Stallman <rms@gnu.org>
parents:
15942
diff
changeset
|
1121 x_update_cursor (f, 1); |
389 | 1122 } |
1123 } | |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1124 |
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1125 update_face_from_frame_parameter (f, Qcursor_color, arg); |
389 | 1126 } |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1127 |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1128 /* Set the border-color of frame F to pixel value PIX. |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1129 Note that this does not fully take effect if done before |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1130 F has an x-window. */ |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1131 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1132 void |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1133 x_set_border_pixel (f, pix) |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1134 struct frame *f; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1135 int pix; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1136 { |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1137 unload_color (f, f->output_data.x->border_pixel); |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1138 f->output_data.x->border_pixel = pix; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1139 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1140 if (FRAME_X_WINDOW (f) != 0 && f->border_width > 0) |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1141 { |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1142 BLOCK_INPUT; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1143 XSetWindowBorder (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1144 (unsigned long)pix); |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1145 UNBLOCK_INPUT; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1146 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1147 if (FRAME_VISIBLE_P (f)) |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1148 redraw_frame (f); |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1149 } |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1150 } |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1151 |
771 | 1152 /* Set the border-color of frame F to value described by ARG. |
389 | 1153 ARG can be a string naming a color. |
1154 The border-color is used for the border that is drawn by the X server. | |
1155 Note that this does not fully take effect if done before | |
771 | 1156 F has an x-window; it must be redone when the window is created. |
389 | 1157 |
1158 Note: this is done in two routines because of the way X10 works. | |
1159 | |
1160 Note: under X11, this is normally the province of the window manager, | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1161 and so emacs' border colors may be overridden. */ |
389 | 1162 |
1163 void | |
771 | 1164 x_set_border_color (f, arg, oldval) |
1165 struct frame *f; | |
389 | 1166 Lisp_Object arg, oldval; |
1167 { | |
1168 int pix; | |
1169 | |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1170 CHECK_STRING (arg); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1171 pix = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
771 | 1172 x_set_border_pixel (f, pix); |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1173 update_face_from_frame_parameter (f, Qborder_color, arg); |
389 | 1174 } |
1175 | |
28347
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1176 |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1177 void |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1178 x_set_cursor_type (f, arg, oldval) |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1179 FRAME_PTR f; |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1180 Lisp_Object arg, oldval; |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1181 { |
47142
21cac7a2dcb9
(Vblink_cursor_alist): Removed.
Kim F. Storm <storm@cua.dk>
parents:
47086
diff
changeset
|
1182 set_frame_cursor_types (f, arg); |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1183 |
43987
ea6530f23937
(x_set_cursor_type): Set cursor_type_changed,
Richard M. Stallman <rms@gnu.org>
parents:
43917
diff
changeset
|
1184 /* Make sure the cursor gets redrawn. */ |
ea6530f23937
(x_set_cursor_type): Set cursor_type_changed,
Richard M. Stallman <rms@gnu.org>
parents:
43917
diff
changeset
|
1185 cursor_type_changed = 1; |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1186 } |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1187 |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1188 void |
771 | 1189 x_set_icon_type (f, arg, oldval) |
1190 struct frame *f; | |
389 | 1191 Lisp_Object arg, oldval; |
1192 { | |
1193 int result; | |
1194 | |
9543
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1195 if (STRINGP (arg)) |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1196 { |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1197 if (STRINGP (oldval) && EQ (Fstring_equal (oldval, arg), Qt)) |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1198 return; |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1199 } |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1200 else if (!STRINGP (oldval) && EQ (oldval, Qnil) == EQ (arg, Qnil)) |
389 | 1201 return; |
1202 | |
1203 BLOCK_INPUT; | |
485 | 1204 if (NILP (arg)) |
12073 | 1205 result = x_text_icon (f, |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1206 (char *) SDATA ((!NILP (f->icon_name) |
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
1207 ? f->icon_name |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1208 : f->name))); |
9563 | 1209 else |
1210 result = x_bitmap_icon (f, arg); | |
389 | 1211 |
1212 if (result) | |
1213 { | |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
1214 UNBLOCK_INPUT; |
9353
30659ed71a1b
(x_set_icon_type): Remove period from error message.
Richard M. Stallman <rms@gnu.org>
parents:
9329
diff
changeset
|
1215 error ("No icon window available"); |
389 | 1216 } |
1217 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1218 XFlush (FRAME_X_DISPLAY (f)); |
389 | 1219 UNBLOCK_INPUT; |
1220 } | |
1221 | |
12073 | 1222 void |
1223 x_set_icon_name (f, arg, oldval) | |
1224 struct frame *f; | |
1225 Lisp_Object arg, oldval; | |
1226 { | |
1227 int result; | |
1228 | |
1229 if (STRINGP (arg)) | |
1230 { | |
1231 if (STRINGP (oldval) && EQ (Fstring_equal (oldval, arg), Qt)) | |
1232 return; | |
1233 } | |
1234 else if (!STRINGP (oldval) && EQ (oldval, Qnil) == EQ (arg, Qnil)) | |
1235 return; | |
1236 | |
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
1237 f->icon_name = arg; |
12073 | 1238 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
1239 if (f->output_data.x->icon_bitmap != 0) |
12073 | 1240 return; |
1241 | |
1242 BLOCK_INPUT; | |
1243 | |
1244 result = x_text_icon (f, | |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1245 (char *) SDATA ((!NILP (f->icon_name) |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1246 ? f->icon_name |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1247 : !NILP (f->title) |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1248 ? f->title |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1249 : f->name))); |
12073 | 1250 |
1251 if (result) | |
1252 { | |
1253 UNBLOCK_INPUT; | |
1254 error ("No icon window available"); | |
1255 } | |
1256 | |
1257 XFlush (FRAME_X_DISPLAY (f)); | |
1258 UNBLOCK_INPUT; | |
1259 } | |
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1260 |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1261 |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1262 void |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1263 x_set_menu_bar_lines (f, value, oldval) |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1264 struct frame *f; |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1265 Lisp_Object value, oldval; |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1266 { |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1267 int nlines; |
53825
6635e77a2c09
* xfns.c (x_create_bitmap_mask): Removed unused variable depth.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53787
diff
changeset
|
1268 #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK) |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1269 int olines = FRAME_MENU_BAR_LINES (f); |
25715
feaedc03dbc8
(x_set_background_color): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents:
25691
diff
changeset
|
1270 #endif |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1271 |
2880
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1272 /* Right now, menu bars don't work properly in minibuf-only frames; |
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1273 most of the commands try to apply themselves to the minibuffer |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1274 frame itself, and get an error because you can't switch buffers |
2880
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1275 in or split the minibuffer window. */ |
2885
cb1709f302e9
(x_set_menu_bar_lines): Fix typo in last change.
Richard M. Stallman <rms@gnu.org>
parents:
2880
diff
changeset
|
1276 if (FRAME_MINIBUF_ONLY_P (f)) |
2880
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1277 return; |
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1278 |
9103
948e8acb6990
(x_set_frame_parameters, x_set_menu_bar_lines, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
9022
diff
changeset
|
1279 if (INTEGERP (value)) |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1280 nlines = XINT (value); |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1281 else |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1282 nlines = 0; |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1283 |
17556
c0f8f4264f7a
(x_set_menu_bar_lines): Increment windows_or_buffers_changed.
Richard M. Stallman <rms@gnu.org>
parents:
17106
diff
changeset
|
1284 /* Make sure we redisplay all windows in this frame. */ |
c0f8f4264f7a
(x_set_menu_bar_lines): Increment windows_or_buffers_changed.
Richard M. Stallman <rms@gnu.org>
parents:
17106
diff
changeset
|
1285 windows_or_buffers_changed++; |
c0f8f4264f7a
(x_set_menu_bar_lines): Increment windows_or_buffers_changed.
Richard M. Stallman <rms@gnu.org>
parents:
17106
diff
changeset
|
1286 |
49322 | 1287 #if defined (USE_X_TOOLKIT) || defined (USE_GTK) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1288 FRAME_MENU_BAR_LINES (f) = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1289 if (nlines) |
12832
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1290 { |
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1291 FRAME_EXTERNAL_MENU_BAR (f) = 1; |
13734
714433bead7f
(x_set_menu_bar_lines) [USE_X_TOOLKIT]:
Richard M. Stallman <rms@gnu.org>
parents:
13508
diff
changeset
|
1292 if (FRAME_X_P (f) && f->output_data.x->menubar_widget == 0) |
12832
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1293 /* Make sure next redisplay shows the menu bar. */ |
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1294 XWINDOW (FRAME_SELECTED_WINDOW (f))->update_mode_line = Qt; |
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1295 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1296 else |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1297 { |
5900
284c0d70a50a
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: Dont Call XtDestroyWidget but
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5899
diff
changeset
|
1298 if (FRAME_EXTERNAL_MENU_BAR (f) == 1) |
284c0d70a50a
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: Dont Call XtDestroyWidget but
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5899
diff
changeset
|
1299 free_frame_menubar (f); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1300 FRAME_EXTERNAL_MENU_BAR (f) = 0; |
13734
714433bead7f
(x_set_menu_bar_lines) [USE_X_TOOLKIT]:
Richard M. Stallman <rms@gnu.org>
parents:
13508
diff
changeset
|
1301 if (FRAME_X_P (f)) |
714433bead7f
(x_set_menu_bar_lines) [USE_X_TOOLKIT]:
Richard M. Stallman <rms@gnu.org>
parents:
13508
diff
changeset
|
1302 f->output_data.x->menubar_widget = 0; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1303 } |
49322 | 1304 #else /* not USE_X_TOOLKIT && not USE_GTK */ |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1305 FRAME_MENU_BAR_LINES (f) = nlines; |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1306 change_window_heights (f->root_window, nlines - olines); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1307 #endif /* not USE_X_TOOLKIT */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1308 adjust_glyphs (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1309 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1310 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1311 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1312 /* Set the number of lines used for the tool bar of frame F to VALUE. |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1313 VALUE not an integer, or < 0 means set the lines to zero. OLDVAL |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1314 is the old number of tool bar lines. This function changes the |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1315 height of all windows on frame F to match the new tool bar height. |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1316 The frame's height doesn't change. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1317 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1318 void |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1319 x_set_tool_bar_lines (f, value, oldval) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1320 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1321 Lisp_Object value, oldval; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1322 { |
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1323 int delta, nlines, root_height; |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1324 Lisp_Object root_window; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1325 |
35819
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1326 /* Treat tool bars like menu bars. */ |
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1327 if (FRAME_MINIBUF_ONLY_P (f)) |
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1328 return; |
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1329 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1330 /* Use VALUE only if an integer >= 0. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1331 if (INTEGERP (value) && XINT (value) >= 0) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1332 nlines = XFASTINT (value); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1333 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1334 nlines = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1335 |
49322 | 1336 #ifdef USE_GTK |
1337 FRAME_TOOL_BAR_LINES (f) = 0; | |
1338 if (nlines) | |
1339 { | |
1340 FRAME_EXTERNAL_TOOL_BAR (f) = 1; | |
1341 if (FRAME_X_P (f) && f->output_data.x->toolbar_widget == 0) | |
1342 /* Make sure next redisplay shows the tool bar. */ | |
1343 XWINDOW (FRAME_SELECTED_WINDOW (f))->update_mode_line = Qt; | |
1344 update_frame_tool_bar (f); | |
1345 } | |
1346 else | |
1347 { | |
1348 if (FRAME_EXTERNAL_TOOL_BAR (f)) | |
1349 free_frame_tool_bar (f); | |
1350 FRAME_EXTERNAL_TOOL_BAR (f) = 0; | |
1351 } | |
1352 | |
1353 return; | |
1354 #endif | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1355 |
49322 | 1356 /* Make sure we redisplay all windows in this frame. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1357 ++windows_or_buffers_changed; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1358 |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1359 delta = nlines - FRAME_TOOL_BAR_LINES (f); |
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1360 |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1361 /* Don't resize the tool-bar to more than we have room for. */ |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1362 root_window = FRAME_ROOT_WINDOW (f); |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1363 root_height = WINDOW_TOTAL_LINES (XWINDOW (root_window)); |
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1364 if (root_height - delta < 1) |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1365 { |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1366 delta = root_height - 1; |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1367 nlines = FRAME_TOOL_BAR_LINES (f) + delta; |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1368 } |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1369 |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1370 FRAME_TOOL_BAR_LINES (f) = nlines; |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1371 change_window_heights (root_window, delta); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1372 adjust_glyphs (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1373 |
31999
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1374 /* We also have to make sure that the internal border at the top of |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1375 the frame, below the menu bar or tool bar, is redrawn when the |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1376 tool bar disappears. This is so because the internal border is |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1377 below the tool bar if one is displayed, but is below the menu bar |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1378 if there isn't a tool bar. The tool bar draws into the area |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1379 below the menu bar. */ |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1380 if (FRAME_X_WINDOW (f) && FRAME_TOOL_BAR_LINES (f) == 0) |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1381 { |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1382 updating_frame = f; |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1383 clear_frame (); |
33601
1ee8ea329b7b
(x_set_tool_bar_lines): When clearing the frame, also
Gerd Moellmann <gerd@gnu.org>
parents:
33589
diff
changeset
|
1384 clear_current_matrices (f); |
31999
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1385 updating_frame = NULL; |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1386 } |
33747
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1387 |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1388 /* If the tool bar gets smaller, the internal border below it |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1389 has to be cleared. It was formerly part of the display |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1390 of the larger tool bar, and updating windows won't clear it. */ |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1391 if (delta < 0) |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1392 { |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1393 int height = FRAME_INTERNAL_BORDER_WIDTH (f); |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1394 int width = FRAME_PIXEL_WIDTH (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1395 int y = nlines * FRAME_LINE_HEIGHT (f); |
33747
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1396 |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1397 BLOCK_INPUT; |
35579
65c31f59048a
* xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
Gerd Moellmann <gerd@gnu.org>
parents:
35566
diff
changeset
|
1398 x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
65c31f59048a
* xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
Gerd Moellmann <gerd@gnu.org>
parents:
35566
diff
changeset
|
1399 0, y, width, height, False); |
33747
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1400 UNBLOCK_INPUT; |
38625
0bfdfd449f4a
(x_set_tool_bar_lines): Clear the tool bar window's
Gerd Moellmann <gerd@gnu.org>
parents:
38575
diff
changeset
|
1401 |
0bfdfd449f4a
(x_set_tool_bar_lines): Clear the tool bar window's
Gerd Moellmann <gerd@gnu.org>
parents:
38575
diff
changeset
|
1402 if (WINDOWP (f->tool_bar_window)) |
0bfdfd449f4a
(x_set_tool_bar_lines): Clear the tool bar window's
Gerd Moellmann <gerd@gnu.org>
parents:
38575
diff
changeset
|
1403 clear_glyph_matrix (XWINDOW (f->tool_bar_window)->current_matrix); |
33747
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1404 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1405 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1406 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1407 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1408 /* Set the foreground color for scroll bars on frame F to VALUE. |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1409 VALUE should be a string, a color name. If it isn't a string or |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1410 isn't a valid color name, do nothing. OLDVAL is the old value of |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1411 the frame parameter. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1412 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1413 void |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1414 x_set_scroll_bar_foreground (f, value, oldval) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1415 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1416 Lisp_Object value, oldval; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1417 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1418 unsigned long pixel; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1419 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1420 if (STRINGP (value)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1421 pixel = x_decode_color (f, value, BLACK_PIX_DEFAULT (f)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1422 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1423 pixel = -1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1424 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1425 if (f->output_data.x->scroll_bar_foreground_pixel != -1) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1426 unload_color (f, f->output_data.x->scroll_bar_foreground_pixel); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1427 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1428 f->output_data.x->scroll_bar_foreground_pixel = pixel; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1429 if (FRAME_X_WINDOW (f) && FRAME_VISIBLE_P (f)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1430 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1431 /* Remove all scroll bars because they have wrong colors. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1432 if (condemn_scroll_bars_hook) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1433 (*condemn_scroll_bars_hook) (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1434 if (judge_scroll_bars_hook) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1435 (*judge_scroll_bars_hook) (f); |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1436 |
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1437 update_face_from_frame_parameter (f, Qscroll_bar_foreground, value); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1438 redraw_frame (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1439 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1440 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1441 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1442 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1443 /* Set the background color for scroll bars on frame F to VALUE VALUE |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1444 should be a string, a color name. If it isn't a string or isn't a |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1445 valid color name, do nothing. OLDVAL is the old value of the frame |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1446 parameter. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1447 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1448 void |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1449 x_set_scroll_bar_background (f, value, oldval) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1450 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1451 Lisp_Object value, oldval; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1452 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1453 unsigned long pixel; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1454 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1455 if (STRINGP (value)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1456 pixel = x_decode_color (f, value, WHITE_PIX_DEFAULT (f)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1457 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1458 pixel = -1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1459 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1460 if (f->output_data.x->scroll_bar_background_pixel != -1) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1461 unload_color (f, f->output_data.x->scroll_bar_background_pixel); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1462 |
39619
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1463 #ifdef USE_TOOLKIT_SCROLL_BARS |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1464 /* Scrollbar shadow colors. */ |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1465 if (f->output_data.x->scroll_bar_top_shadow_pixel != -1) |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1466 { |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1467 unload_color (f, f->output_data.x->scroll_bar_top_shadow_pixel); |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1468 f->output_data.x->scroll_bar_top_shadow_pixel = -1; |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1469 } |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1470 if (f->output_data.x->scroll_bar_bottom_shadow_pixel != -1) |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1471 { |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1472 unload_color (f, f->output_data.x->scroll_bar_bottom_shadow_pixel); |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1473 f->output_data.x->scroll_bar_bottom_shadow_pixel = -1; |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1474 } |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1475 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1476 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1477 f->output_data.x->scroll_bar_background_pixel = pixel; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1478 if (FRAME_X_WINDOW (f) && FRAME_VISIBLE_P (f)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1479 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1480 /* Remove all scroll bars because they have wrong colors. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1481 if (condemn_scroll_bars_hook) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1482 (*condemn_scroll_bars_hook) (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1483 if (judge_scroll_bars_hook) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1484 (*judge_scroll_bars_hook) (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1485 |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1486 update_face_from_frame_parameter (f, Qscroll_bar_background, value); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1487 redraw_frame (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1488 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1489 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1490 |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1491 |
30383 | 1492 /* Encode Lisp string STRING as a text in a format appropriate for |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1493 XICCC (X Inter Client Communication Conventions). |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1494 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1495 If STRING contains only ASCII characters, do no conversion and |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1496 return the string data of STRING. Otherwise, encode the text by |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1497 CODING_SYSTEM, and return a newly allocated memory area which |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1498 should be freed by `xfree' by a caller. |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1499 |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1500 SELECTIONP non-zero means the string is being encoded for an X |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1501 selection, so it is safe to run pre-write conversions (which |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1502 may run Lisp code). |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1503 |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1504 Store the byte length of resulting text in *TEXT_BYTES. |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1505 |
30354 | 1506 If the text contains only ASCII and Latin-1, store 1 in *STRING_P, |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1507 which means that the `encoding' of the result can be `STRING'. |
30354 | 1508 Otherwise store 0 in *STRINGP, which means that the `encoding' of |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1509 the result should be `COMPOUND_TEXT'. */ |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1510 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1511 unsigned char * |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1512 x_encode_text (string, coding_system, selectionp, text_bytes, stringp) |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1513 Lisp_Object string, coding_system; |
30354 | 1514 int *text_bytes, *stringp; |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1515 int selectionp; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1516 { |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1517 unsigned char *str = SDATA (string); |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1518 int chars = SCHARS (string); |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1519 int bytes = SBYTES (string); |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1520 int charset_info; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1521 int bufsize; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1522 unsigned char *buf; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1523 struct coding_system coding; |
45603
97212b1039e9
(x_encode_text): Return stringp non-NULL if coding_system
Eli Zaretskii <eliz@gnu.org>
parents:
45413
diff
changeset
|
1524 extern Lisp_Object Qcompound_text_with_extensions; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1525 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1526 charset_info = find_charset_in_text (str, chars, bytes, NULL, Qnil); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1527 if (charset_info == 0) |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1528 { |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1529 /* No multibyte character in OBJ. We need not encode it. */ |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1530 *text_bytes = bytes; |
30354 | 1531 *stringp = 1; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1532 return str; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1533 } |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1534 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1535 setup_coding_system (coding_system, &coding); |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1536 if (selectionp |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1537 && SYMBOLP (coding.pre_write_conversion) |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1538 && !NILP (Ffboundp (coding.pre_write_conversion))) |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1539 { |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1540 string = run_pre_post_conversion_on_str (string, &coding, 1); |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1541 str = SDATA (string); |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1542 chars = SCHARS (string); |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1543 bytes = SBYTES (string); |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1544 } |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1545 coding.src_multibyte = 1; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1546 coding.dst_multibyte = 0; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1547 coding.mode |= CODING_MODE_LAST_BLOCK; |
30354 | 1548 if (coding.type == coding_type_iso2022) |
1549 coding.flags |= CODING_FLAG_ISO_SAFE; | |
33242
421e3db4e24e
(x_encode_text): Suppress producing escape sequences for composition.
Kenichi Handa <handa@m17n.org>
parents:
32606
diff
changeset
|
1550 /* We suppress producing escape sequences for composition. */ |
421e3db4e24e
(x_encode_text): Suppress producing escape sequences for composition.
Kenichi Handa <handa@m17n.org>
parents:
32606
diff
changeset
|
1551 coding.composing = COMPOSITION_DISABLED; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1552 bufsize = encoding_buffer_size (&coding, bytes); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1553 buf = (unsigned char *) xmalloc (bufsize); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1554 encode_coding (&coding, str, buf, bytes, bufsize); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1555 *text_bytes = coding.produced; |
45603
97212b1039e9
(x_encode_text): Return stringp non-NULL if coding_system
Eli Zaretskii <eliz@gnu.org>
parents:
45413
diff
changeset
|
1556 *stringp = (charset_info == 1 |
97212b1039e9
(x_encode_text): Return stringp non-NULL if coding_system
Eli Zaretskii <eliz@gnu.org>
parents:
45413
diff
changeset
|
1557 || (!EQ (coding_system, Qcompound_text) |
97212b1039e9
(x_encode_text): Return stringp non-NULL if coding_system
Eli Zaretskii <eliz@gnu.org>
parents:
45413
diff
changeset
|
1558 && !EQ (coding_system, Qcompound_text_with_extensions))); |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1559 return buf; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1560 } |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1561 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1562 |
56879
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1563 /* Set the WM name to NAME for frame F. Also set the icon name. |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1564 If the frame already has an icon name, use that, otherwise set the |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1565 icon name to NAME. */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1566 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1567 static void |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1568 x_set_name_internal (f, name) |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1569 FRAME_PTR f; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1570 Lisp_Object name; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1571 { |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1572 if (FRAME_X_WINDOW (f)) |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1573 { |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1574 BLOCK_INPUT; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1575 #ifdef HAVE_X11R4 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1576 { |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1577 XTextProperty text, icon; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1578 int bytes, stringp; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1579 int do_free_icon_value = 0, do_free_text_value = 0; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1580 Lisp_Object coding_system; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1581 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1582 coding_system = Qcompound_text; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1583 /* Note: Encoding strategy |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1584 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1585 We encode NAME by compound-text and use "COMPOUND-TEXT" in |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1586 text.encoding. But, there are non-internationalized window |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1587 managers which don't support that encoding. So, if NAME |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1588 contains only ASCII and 8859-1 characters, encode it by |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1589 iso-latin-1, and use "STRING" in text.encoding hoping that |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1590 such window managers at least analyze this format correctly, |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1591 i.e. treat 8-bit bytes as 8859-1 characters. |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1592 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1593 We may also be able to use "UTF8_STRING" in text.encoding |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1594 in the future which can encode all Unicode characters. |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1595 But, for the moment, there's no way to know that the |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1596 current window manager supports it or not. */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1597 text.value = x_encode_text (name, coding_system, 0, &bytes, &stringp); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1598 text.encoding = (stringp ? XA_STRING |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1599 : FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1600 text.format = 8; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1601 text.nitems = bytes; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1602 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1603 /* Check early, because ENCODE_UTF_8 below may GC and name may be |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1604 relocated. */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1605 do_free_text_value = text.value != SDATA (name); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1606 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1607 if (NILP (f->icon_name)) |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1608 { |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1609 icon = text; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1610 } |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1611 else |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1612 { |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1613 /* See the above comment "Note: Encoding strategy". */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1614 icon.value = x_encode_text (f->icon_name, coding_system, 0, |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1615 &bytes, &stringp); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1616 icon.encoding = (stringp ? XA_STRING |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1617 : FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1618 icon.format = 8; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1619 icon.nitems = bytes; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1620 do_free_icon_value = icon.value != SDATA (f->icon_name); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1621 } |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1622 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1623 #ifdef USE_GTK |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1624 gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1625 SDATA (ENCODE_UTF_8 (name))); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1626 #else /* not USE_GTK */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1627 XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1628 #endif /* not USE_GTK */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1629 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1630 XSetWMIconName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &icon); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1631 |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1632 if (do_free_icon_value) |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1633 xfree (icon.value); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1634 if (do_free_text_value) |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1635 xfree (text.value); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1636 } |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1637 #else /* not HAVE_X11R4 */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1638 XSetIconName (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1639 SDATA (name)); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1640 XStoreName (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1641 SDATA (name)); |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1642 #endif /* not HAVE_X11R4 */ |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1643 UNBLOCK_INPUT; |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1644 } |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1645 } |
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1646 |
4650 | 1647 /* Change the name of frame F to NAME. If NAME is nil, set F's name to |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1648 x_id_name. |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1649 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1650 If EXPLICIT is non-zero, that indicates that lisp code is setting the |
4650 | 1651 name; if NAME is a string, set F's name to NAME and set |
1652 F->explicit_name; if NAME is Qnil, then clear F->explicit_name. | |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1653 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1654 If EXPLICIT is zero, that indicates that Emacs redisplay code is |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1655 suggesting a new name, which lisp code should override; if |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1656 F->explicit_name is set, ignore the new name; otherwise, set it. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1657 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1658 void |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1659 x_set_name (f, name, explicit) |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1660 struct frame *f; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1661 Lisp_Object name; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1662 int explicit; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1663 { |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1664 /* Make sure that requests from lisp code override requests from |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1665 Emacs redisplay code. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1666 if (explicit) |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1667 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1668 /* If we're switching from explicit to implicit, we had better |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1669 update the mode lines and thereby update the title. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1670 if (f->explicit_name && NILP (name)) |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
1671 update_mode_lines = 1; |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1672 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1673 f->explicit_name = ! NILP (name); |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1674 } |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1675 else if (f->explicit_name) |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1676 return; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1677 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1678 /* If NAME is nil, set the name to the x_id_name. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1679 if (NILP (name)) |
8090
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1680 { |
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1681 /* Check for no change needed in this very common case |
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1682 before we do any consing. */ |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
1683 if (!strcmp (FRAME_X_DISPLAY_INFO (f)->x_id_name, |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1684 SDATA (f->name))) |
8090
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1685 return; |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
1686 name = build_string (FRAME_X_DISPLAY_INFO (f)->x_id_name); |
8090
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1687 } |
833 | 1688 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1689 CHECK_STRING (name); |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1690 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1691 /* Don't change the name if it's already NAME. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1692 if (! NILP (Fstring_equal (name, f->name))) |
727 | 1693 return; |
1694 | |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1695 f->name = name; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1696 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1697 /* For setting the frame title, the title parameter should override |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1698 the name parameter. */ |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1699 if (! NILP (f->title)) |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1700 name = f->title; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1701 |
56879
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1702 x_set_name_internal (f, name); |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1703 } |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1704 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1705 /* This function should be called when the user's lisp code has |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1706 specified a name for the frame; the name will override any set by the |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1707 redisplay code. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1708 void |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1709 x_explicitly_set_name (f, arg, oldval) |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1710 FRAME_PTR f; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1711 Lisp_Object arg, oldval; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1712 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1713 x_set_name (f, arg, 1); |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1714 } |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1715 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1716 /* This function should be called by Emacs redisplay code to set the |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1717 name; names set this way will never override names set by the user's |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1718 lisp code. */ |
1125
059624bf9bf0
Declare x_implicitly_set_name to be void.
Jim Blandy <jimb@redhat.com>
parents:
1096
diff
changeset
|
1719 void |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1720 x_implicitly_set_name (f, arg, oldval) |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1721 FRAME_PTR f; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1722 Lisp_Object arg, oldval; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1723 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1724 x_set_name (f, arg, 0); |
389 | 1725 } |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1726 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1727 /* Change the title of frame F to NAME. |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1728 If NAME is nil, use the frame name as the title. |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1729 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1730 If EXPLICIT is non-zero, that indicates that lisp code is setting the |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1731 name; if NAME is a string, set F's name to NAME and set |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1732 F->explicit_name; if NAME is Qnil, then clear F->explicit_name. |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1733 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1734 If EXPLICIT is zero, that indicates that Emacs redisplay code is |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1735 suggesting a new name, which lisp code should override; if |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1736 F->explicit_name is set, ignore the new name; otherwise, set it. */ |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1737 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1738 void |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
1739 x_set_title (f, name, old_name) |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1740 struct frame *f; |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
1741 Lisp_Object name, old_name; |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1742 { |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1743 /* Don't change the title if it's already NAME. */ |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1744 if (EQ (name, f->title)) |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1745 return; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1746 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1747 update_mode_lines = 1; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1748 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1749 f->title = name; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1750 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1751 if (NILP (name)) |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1752 name = f->name; |
16732
f52c4fd47f03
(x_set_title): Check data type of NAME.
Richard M. Stallman <rms@gnu.org>
parents:
16682
diff
changeset
|
1753 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1754 CHECK_STRING (name); |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1755 |
56879
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Djärv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1756 x_set_name_internal (f, name); |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1757 } |
9580
bcc9342cf633
(x_set_unsplittable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
9563
diff
changeset
|
1758 |
bcc9342cf633
(x_set_unsplittable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
9563
diff
changeset
|
1759 void |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1760 x_set_scroll_bar_default_width (f) |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
1761 struct frame *f; |
8942
a43f3b56ed47
(x_set_scroll_bar_width): New function.
Karl Heuer <kwzh@gnu.org>
parents:
8845
diff
changeset
|
1762 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1763 int wid = FRAME_COLUMN_WIDTH (f); |
18594
5ca5ff1c74eb
(x_set_scroll_bar_width): By default, use enough
Richard M. Stallman <rms@gnu.org>
parents:
18114
diff
changeset
|
1764 |
25511
9bc9d4d6c716
(x_set_scroll_bar_width): Change conditional compilation
Gerd Moellmann <gerd@gnu.org>
parents:
25464
diff
changeset
|
1765 #ifdef USE_TOOLKIT_SCROLL_BARS |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1766 /* A minimum width of 14 doesn't look good for toolkit scroll bars. */ |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1767 int width = 16 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1768 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (width + wid - 1) / wid; |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1769 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = width; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1770 #else |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1771 /* Make the actual width at least 14 pixels and a multiple of a |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1772 character width. */ |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1773 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid; |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1774 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1775 /* Use all of that space (aside from required margins) for the |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1776 scroll bar. */ |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1777 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = 0; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1778 #endif |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1779 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1780 |
389 | 1781 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1782 /* Record in frame F the specified or default value according to ALIST |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1783 of the parameter named PROP (a Lisp symbol). If no value is |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1784 specified for PROP, look for an X default for XPROP on the frame |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1785 named NAME. If that is not found either, use the value DEFLT. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1786 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1787 static Lisp_Object |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1788 x_default_scroll_bar_color_parameter (f, alist, prop, xprop, xclass, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1789 foreground_p) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1790 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1791 Lisp_Object alist; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1792 Lisp_Object prop; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1793 char *xprop; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1794 char *xclass; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1795 int foreground_p; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1796 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1797 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1798 Lisp_Object tem; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1799 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1800 tem = x_get_arg (dpyinfo, alist, prop, xprop, xclass, RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1801 if (EQ (tem, Qunbound)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1802 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1803 #ifdef USE_TOOLKIT_SCROLL_BARS |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1804 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1805 /* See if an X resource for the scroll bar color has been |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1806 specified. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1807 tem = display_x_get_resource (dpyinfo, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1808 build_string (foreground_p |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1809 ? "foreground" |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1810 : "background"), |
39812
66e0816837a8
Update calls to openp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39682
diff
changeset
|
1811 empty_string, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1812 build_string ("verticalScrollBar"), |
39812
66e0816837a8
Update calls to openp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39682
diff
changeset
|
1813 empty_string); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1814 if (!STRINGP (tem)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1815 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1816 /* If nothing has been specified, scroll bars will use a |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1817 toolkit-dependent default. Because these defaults are |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1818 difficult to get at without actually creating a scroll |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1819 bar, use nil to indicate that no color has been |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1820 specified. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1821 tem = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1822 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1823 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1824 #else /* not USE_TOOLKIT_SCROLL_BARS */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1825 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1826 tem = Qnil; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1827 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1828 #endif /* not USE_TOOLKIT_SCROLL_BARS */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1829 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1830 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1831 x_set_frame_parameters (f, Fcons (Fcons (prop, tem), Qnil)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1832 return tem; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1833 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1834 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1835 |
389 | 1836 |
5229
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1837 #if !defined (HAVE_X11R4) && !defined (HAVE_XSETWMPROTOCOLS) |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1838 |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1839 Status |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1840 XSetWMProtocols (dpy, w, protocols, count) |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1841 Display *dpy; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1842 Window w; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1843 Atom *protocols; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1844 int count; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1845 { |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1846 Atom prop; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1847 prop = XInternAtom (dpy, "WM_PROTOCOLS", False); |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1848 if (prop == None) return False; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1849 XChangeProperty (dpy, w, prop, XA_ATOM, 32, PropModeReplace, |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1850 (unsigned char *) protocols, count); |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1851 return True; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1852 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1853 #endif /* not HAVE_X11R4 && not HAVE_XSETWMPROTOCOLS */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1854 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1855 #ifdef USE_X_TOOLKIT |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1856 |
9528
db02bc274f20
(Fx_create_frame): Init the FRAME_X_SCREEN as soon as can be done.
Richard M. Stallman <rms@gnu.org>
parents:
9353
diff
changeset
|
1857 /* If the WM_PROTOCOLS property does not already contain WM_TAKE_FOCUS, |
db02bc274f20
(Fx_create_frame): Init the FRAME_X_SCREEN as soon as can be done.
Richard M. Stallman <rms@gnu.org>
parents:
9353
diff
changeset
|
1858 WM_DELETE_WINDOW, and WM_SAVE_YOURSELF, then add them. (They may |
8845
c4b7fda8f611
(hack_wm_protocols): Arrange to handle WM_SAVE_YOURSELF.
Richard M. Stallman <rms@gnu.org>
parents:
8782
diff
changeset
|
1859 already be present because of the toolkit (Motif adds some of them, |
c4b7fda8f611
(hack_wm_protocols): Arrange to handle WM_SAVE_YOURSELF.
Richard M. Stallman <rms@gnu.org>
parents:
8782
diff
changeset
|
1860 for example, but Xt doesn't). */ |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1861 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1862 static void |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1863 hack_wm_protocols (f, widget) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1864 FRAME_PTR f; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1865 Widget widget; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1866 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1867 Display *dpy = XtDisplay (widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1868 Window w = XtWindow (widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1869 int need_delete = 1; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1870 int need_focus = 1; |
8845
c4b7fda8f611
(hack_wm_protocols): Arrange to handle WM_SAVE_YOURSELF.
Richard M. Stallman <rms@gnu.org>
parents:
8782
diff
changeset
|
1871 int need_save = 1; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1872 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1873 BLOCK_INPUT; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1874 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1875 Atom type, *atoms = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1876 int format = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1877 unsigned long nitems = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1878 unsigned long bytes_after; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1879 |
11882
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1880 if ((XGetWindowProperty (dpy, w, |
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1881 FRAME_X_DISPLAY_INFO (f)->Xatom_wm_protocols, |
11894
b20c45d49063
(hack_wm_protocols): Use cast instead of suffix.
Karl Heuer <kwzh@gnu.org>
parents:
11893
diff
changeset
|
1882 (long)0, (long)100, False, XA_ATOM, |
11882
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1883 &type, &format, &nitems, &bytes_after, |
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1884 (unsigned char **) &atoms) |
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1885 == Success) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1886 && format == 32 && type == XA_ATOM) |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1887 while (nitems > 0) |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1888 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1889 nitems--; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1890 if (atoms[nitems] == FRAME_X_DISPLAY_INFO (f)->Xatom_wm_delete_window) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1891 need_delete = 0; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1892 else if (atoms[nitems] == FRAME_X_DISPLAY_INFO (f)->Xatom_wm_take_focus) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1893 need_focus = 0; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1894 else if (atoms[nitems] == FRAME_X_DISPLAY_INFO (f)->Xatom_wm_save_yourself) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1895 need_save = 0; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1896 } |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1897 if (atoms) XFree ((char *) atoms); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1898 } |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1899 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1900 Atom props [10]; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1901 int count = 0; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1902 if (need_delete) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1903 props[count++] = FRAME_X_DISPLAY_INFO (f)->Xatom_wm_delete_window; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1904 if (need_focus) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1905 props[count++] = FRAME_X_DISPLAY_INFO (f)->Xatom_wm_take_focus; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1906 if (need_save) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1907 props[count++] = FRAME_X_DISPLAY_INFO (f)->Xatom_wm_save_yourself; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1908 if (count) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1909 XChangeProperty (dpy, w, FRAME_X_DISPLAY_INFO (f)->Xatom_wm_protocols, |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1910 XA_ATOM, 32, PropModeAppend, |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1911 (unsigned char *) props, count); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1912 } |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1913 UNBLOCK_INPUT; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1914 } |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1915 #endif |
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
1916 |
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
1917 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1918 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1919 /* Support routines for XIC (X Input Context). */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1920 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1921 #ifdef HAVE_X_I18N |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1922 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1923 static XFontSet xic_create_xfontset P_ ((struct frame *, char *)); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1924 static XIMStyle best_xim_style P_ ((XIMStyles *, XIMStyles *)); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1925 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1926 |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
1927 /* Supported XIM styles, ordered by preference. */ |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1928 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1929 static XIMStyle supported_xim_styles[] = |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1930 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1931 XIMPreeditPosition | XIMStatusArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1932 XIMPreeditPosition | XIMStatusNothing, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1933 XIMPreeditPosition | XIMStatusNone, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1934 XIMPreeditNothing | XIMStatusArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1935 XIMPreeditNothing | XIMStatusNothing, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1936 XIMPreeditNothing | XIMStatusNone, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1937 XIMPreeditNone | XIMStatusArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1938 XIMPreeditNone | XIMStatusNothing, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1939 XIMPreeditNone | XIMStatusNone, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1940 0, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1941 }; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1942 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1943 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1944 /* Create an X fontset on frame F with base font name BASE_FONTNAME. */ |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1945 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1946 static XFontSet |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1947 xic_create_xfontset (f, base_fontname) |
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
1948 struct frame *f; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1949 char *base_fontname; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1950 { |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1951 XFontSet xfs = NULL; |
57643
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1952 char **missing_list = NULL; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1953 int missing_count; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1954 char *def_string; |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1955 Lisp_Object rest, frame; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1956 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1957 /* See if there is another frame already using same fontset. */ |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1958 FOR_EACH_FRAME (rest, frame) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1959 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1960 struct frame *cf = XFRAME (frame); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1961 if (cf != f && FRAME_LIVE_P (f) && FRAME_X_P (cf) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1962 && FRAME_X_DISPLAY_INFO (cf) == FRAME_X_DISPLAY_INFO (f) |
57714
7920b90a583c
* xfns.c (xic_create_xfontset): Check that FRAME_XIC_BASE_FONTNAME
Jan Djärv <jan.h.d@swipnet.se>
parents:
57643
diff
changeset
|
1963 && FRAME_XIC_BASE_FONTNAME (cf) |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1964 && !strcmp (FRAME_XIC_BASE_FONTNAME (cf), base_fontname)) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1965 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1966 xfs = FRAME_XIC_FONTSET (cf); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1967 break; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1968 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1969 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1970 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1971 if (!xfs) |
57643
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1972 { |
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1973 /* New fontset. */ |
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1974 xfs = XCreateFontSet (FRAME_X_DISPLAY (f), |
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1975 base_fontname, &missing_list, |
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1976 &missing_count, &def_string); |
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1977 if (missing_list) |
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1978 XFreeStringList (missing_list); |
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
1979 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1980 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1981 if (FRAME_XIC_BASE_FONTNAME (f)) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1982 xfree (FRAME_XIC_BASE_FONTNAME (f)); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1983 FRAME_XIC_BASE_FONTNAME (f) = xstrdup (base_fontname); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1984 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1985 /* No need to free def_string. */ |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1986 return xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1987 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1988 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1989 /* Free the X fontset of frame F if it is the last frame using it. */ |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1990 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1991 void |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1992 xic_free_xfontset (f) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1993 struct frame *f; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1994 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1995 Lisp_Object rest, frame; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1996 int shared_p = 0; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1997 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1998 if (!FRAME_XIC_FONTSET (f)) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1999 return; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2000 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2001 /* See if there is another frame sharing the same fontset. */ |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2002 FOR_EACH_FRAME (rest, frame) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2003 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2004 struct frame *cf = XFRAME (frame); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2005 if (cf != f && FRAME_LIVE_P (f) && FRAME_X_P (cf) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2006 && FRAME_X_DISPLAY_INFO (cf) == FRAME_X_DISPLAY_INFO (f) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2007 && FRAME_XIC_FONTSET (cf) == FRAME_XIC_FONTSET (f)) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2008 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2009 shared_p = 1; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2010 break; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2011 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2012 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2013 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2014 if (!shared_p) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2015 /* The fontset is not used anymore. It is safe to free it. */ |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2016 XFreeFontSet (FRAME_X_DISPLAY (f), FRAME_XIC_FONTSET (f)); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2017 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2018 if (FRAME_XIC_BASE_FONTNAME (f)) |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2019 xfree (FRAME_XIC_BASE_FONTNAME (f)); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2020 FRAME_XIC_BASE_FONTNAME (f) = NULL; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2021 FRAME_XIC_FONTSET (f) = NULL; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2022 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2023 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2024 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2025 /* Value is the best input style, given user preferences USER (already |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2026 checked to be supported by Emacs), and styles supported by the |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2027 input method XIM. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2028 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2029 static XIMStyle |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2030 best_xim_style (user, xim) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2031 XIMStyles *user; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2032 XIMStyles *xim; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2033 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2034 int i, j; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2035 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2036 for (i = 0; i < user->count_styles; ++i) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2037 for (j = 0; j < xim->count_styles; ++j) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2038 if (user->supported_styles[i] == xim->supported_styles[j]) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2039 return user->supported_styles[i]; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2040 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2041 /* Return the default style. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2042 return XIMPreeditNothing | XIMStatusNothing; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2043 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2044 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2045 /* Create XIC for frame F. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2046 |
35592 | 2047 static XIMStyle xic_style; |
2048 | |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2049 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2050 create_frame_xic (f) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2051 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2052 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2053 XIM xim; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2054 XIC xic = NULL; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2055 XFontSet xfs = NULL; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2056 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2057 if (FRAME_XIC (f)) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2058 return; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2059 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2060 xim = FRAME_X_XIM (f); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2061 if (xim) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2062 { |
27659
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2063 XRectangle s_area; |
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2064 XPoint spot; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2065 XVaNestedList preedit_attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2066 XVaNestedList status_attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2067 char *base_fontname; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2068 int fontset; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2069 |
27659
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2070 s_area.x = 0; s_area.y = 0; s_area.width = 1; s_area.height = 1; |
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2071 spot.x = 0; spot.y = 1; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2072 /* Create X fontset. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2073 fontset = FRAME_FONTSET (f); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2074 if (fontset < 0) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2075 base_fontname = "-*-*-*-r-normal--14-*-*-*-*-*-*-*"; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2076 else |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2077 { |
28229
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2078 /* Determine the base fontname from the ASCII font name of |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2079 FONTSET. */ |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2080 char *ascii_font = (char *) SDATA (fontset_ascii (fontset)); |
28229
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2081 char *p = ascii_font; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2082 int i; |
28229
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2083 |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2084 for (i = 0; *p; p++) |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2085 if (*p == '-') i++; |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2086 if (i != 14) |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2087 /* As the font name doesn't conform to XLFD, we can't |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2088 modify it to get a suitable base fontname for the |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2089 frame. */ |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2090 base_fontname = "-*-*-*-r-normal--14-*-*-*-*-*-*-*"; |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2091 else |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2092 { |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2093 int len = strlen (ascii_font) + 1; |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
2094 char *p1 = NULL; |
28229
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2095 |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2096 for (i = 0, p = ascii_font; i < 8; p++) |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2097 { |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2098 if (*p == '-') |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2099 { |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2100 i++; |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2101 if (i == 3) |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2102 p1 = p + 1; |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2103 } |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2104 } |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2105 base_fontname = (char *) alloca (len); |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2106 bzero (base_fontname, len); |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2107 strcpy (base_fontname, "-*-*-"); |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2108 bcopy (p1, base_fontname + 5, p - p1); |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2109 strcat (base_fontname, "*-*-*-*-*-*-*"); |
5a0af67169a7
(Fx_create_frame): Don't cal fs_register_fontset.
Kenichi Handa <handa@m17n.org>
parents:
28199
diff
changeset
|
2110 } |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2111 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2112 xfs = xic_create_xfontset (f, base_fontname); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2113 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2114 /* Determine XIC style. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2115 if (xic_style == 0) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2116 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2117 XIMStyles supported_list; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2118 supported_list.count_styles = (sizeof supported_xim_styles |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2119 / sizeof supported_xim_styles[0]); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2120 supported_list.supported_styles = supported_xim_styles; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2121 xic_style = best_xim_style (&supported_list, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2122 FRAME_X_XIM_STYLES (f)); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2123 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2124 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2125 preedit_attr = XVaCreateNestedList (0, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2126 XNFontSet, xfs, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2127 XNForeground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2128 FRAME_FOREGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2129 XNBackground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2130 FRAME_BACKGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2131 (xic_style & XIMPreeditPosition |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2132 ? XNSpotLocation |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2133 : NULL), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2134 &spot, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2135 NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2136 status_attr = XVaCreateNestedList (0, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2137 XNArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2138 &s_area, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2139 XNFontSet, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2140 xfs, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2141 XNForeground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2142 FRAME_FOREGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2143 XNBackground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2144 FRAME_BACKGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2145 NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2146 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2147 xic = XCreateIC (xim, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2148 XNInputStyle, xic_style, |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2149 XNClientWindow, FRAME_X_WINDOW (f), |
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2150 XNFocusWindow, FRAME_X_WINDOW (f), |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2151 XNStatusAttributes, status_attr, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2152 XNPreeditAttributes, preedit_attr, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2153 NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2154 XFree (preedit_attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2155 XFree (status_attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2156 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2157 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2158 FRAME_XIC (f) = xic; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2159 FRAME_XIC_STYLE (f) = xic_style; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2160 FRAME_XIC_FONTSET (f) = xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2161 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2162 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2163 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2164 /* Destroy XIC and free XIC fontset of frame F, if any. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2165 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2166 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2167 free_frame_xic (f) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2168 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2169 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2170 if (FRAME_XIC (f) == NULL) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2171 return; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2172 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2173 XDestroyIC (FRAME_XIC (f)); |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2174 xic_free_xfontset (f); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2175 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2176 FRAME_XIC (f) = NULL; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2177 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2178 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2179 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2180 /* Place preedit area for XIC of window W's frame to specified |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2181 pixel position X/Y. X and Y are relative to window W. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2182 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2183 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2184 xic_set_preeditarea (w, x, y) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2185 struct window *w; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2186 int x, y; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2187 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2188 struct frame *f = XFRAME (w->frame); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2189 XVaNestedList attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2190 XPoint spot; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2191 |
52059
4b5692f6703a
(xic_set_preeditarea): Add the left fringe width to spot.x.
Kenichi Handa <handa@m17n.org>
parents:
52015
diff
changeset
|
2192 spot.x = WINDOW_TO_FRAME_PIXEL_X (w, x) + WINDOW_LEFT_FRINGE_WIDTH (w); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2193 spot.y = WINDOW_TO_FRAME_PIXEL_Y (w, y) + FONT_BASE (FRAME_FONT (f)); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2194 attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2195 XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2196 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2197 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2198 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2199 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2200 /* Place status area for XIC in bottom right corner of frame F.. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2201 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2202 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2203 xic_set_statusarea (f) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2204 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2205 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2206 XIC xic = FRAME_XIC (f); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2207 XVaNestedList attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2208 XRectangle area; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2209 XRectangle *needed; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2210 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2211 /* Negotiate geometry of status area. If input method has existing |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2212 status area, use its current size. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2213 area.x = area.y = area.width = area.height = 0; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2214 attr = XVaCreateNestedList (0, XNAreaNeeded, &area, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2215 XSetICValues (xic, XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2216 XFree (attr); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2217 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2218 attr = XVaCreateNestedList (0, XNAreaNeeded, &needed, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2219 XGetICValues (xic, XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2220 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2221 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2222 if (needed->width == 0) /* Use XNArea instead of XNAreaNeeded */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2223 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2224 attr = XVaCreateNestedList (0, XNArea, &needed, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2225 XGetICValues (xic, XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2226 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2227 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2228 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2229 area.width = needed->width; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2230 area.height = needed->height; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2231 area.x = FRAME_PIXEL_WIDTH (f) - area.width - FRAME_INTERNAL_BORDER_WIDTH (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2232 area.y = (FRAME_PIXEL_HEIGHT (f) - area.height |
49322 | 2233 - FRAME_MENUBAR_HEIGHT (f) |
2234 - FRAME_TOOLBAR_HEIGHT (f) | |
2235 - FRAME_INTERNAL_BORDER_WIDTH (f)); | |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2236 XFree (needed); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2237 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2238 attr = XVaCreateNestedList (0, XNArea, &area, NULL); |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2239 XSetICValues (xic, XNStatusAttributes, attr, NULL); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2240 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2241 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2242 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2243 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2244 /* Set X fontset for XIC of frame F, using base font name |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2245 BASE_FONTNAME. Called when a new Emacs fontset is chosen. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2246 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2247 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2248 xic_set_xfontset (f, base_fontname) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2249 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2250 char *base_fontname; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2251 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2252 XVaNestedList attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2253 XFontSet xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2254 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2255 xic_free_xfontset (f); |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2256 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2257 xfs = xic_create_xfontset (f, base_fontname); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2258 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2259 attr = XVaCreateNestedList (0, XNFontSet, xfs, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2260 if (FRAME_XIC_STYLE (f) & XIMPreeditPosition) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2261 XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2262 if (FRAME_XIC_STYLE (f) & XIMStatusArea) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2263 XSetICValues (FRAME_XIC (f), XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2264 XFree (attr); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2265 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2266 FRAME_XIC_FONTSET (f) = xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2267 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2268 |
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
2269 #endif /* HAVE_X_I18N */ |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2270 |
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
2271 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2272 |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2273 #ifdef USE_X_TOOLKIT |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2274 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2275 /* Create and set up the X widget for frame F. */ |
5229
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
2276 |
389 | 2277 static void |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2278 x_window (f, window_prompting, minibuffer_only) |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2279 struct frame *f; |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2280 long window_prompting; |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2281 int minibuffer_only; |
389 | 2282 { |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2283 XClassHint class_hints; |
6059
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2284 XSetWindowAttributes attributes; |
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2285 unsigned long attribute_mask; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2286 Widget shell_widget; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2287 Widget pane_widget; |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2288 Widget frame_widget; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2289 Arg al [25]; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2290 int ac; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2291 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2292 BLOCK_INPUT; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2293 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2294 /* Use the resource name as the top-level widget name |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2295 for looking up resources. Make a non-Lisp copy |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2296 for the window manager, so GC relocation won't bother it. |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2297 |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2298 Elsewhere we specify the window name for the window manager. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2299 |
11496
db02849ee365
(x_window): Use (or reuse) frame's namebuf instead of a
Karl Heuer <kwzh@gnu.org>
parents:
11483
diff
changeset
|
2300 { |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2301 char *str = (char *) SDATA (Vx_resource_name); |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2302 f->namebuf = (char *) xmalloc (strlen (str) + 1); |
11496
db02849ee365
(x_window): Use (or reuse) frame's namebuf instead of a
Karl Heuer <kwzh@gnu.org>
parents:
11483
diff
changeset
|
2303 strcpy (f->namebuf, str); |
db02849ee365
(x_window): Use (or reuse) frame's namebuf instead of a
Karl Heuer <kwzh@gnu.org>
parents:
11483
diff
changeset
|
2304 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2305 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2306 ac = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2307 XtSetArg (al[ac], XtNallowShellResize, 1); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2308 XtSetArg (al[ac], XtNinput, 1); ac++; |
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2309 XtSetArg (al[ac], XtNmappedWhenManaged, 0); ac++; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2310 XtSetArg (al[ac], XtNborderWidth, f->border_width); ac++; |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2311 XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2312 XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2313 XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; |
11496
db02849ee365
(x_window): Use (or reuse) frame's namebuf instead of a
Karl Heuer <kwzh@gnu.org>
parents:
11483
diff
changeset
|
2314 shell_widget = XtAppCreateShell (f->namebuf, EMACS_CLASS, |
12019
63ee64941021
(x_top_window_to_frame): Don't match menu-bar widget.
Karl Heuer <kwzh@gnu.org>
parents:
12011
diff
changeset
|
2315 applicationShellWidgetClass, |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
2316 FRAME_X_DISPLAY (f), al, ac); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2317 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2318 f->output_data.x->widget = shell_widget; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2319 /* maybe_set_screen_title_format (shell_widget); */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2320 |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2321 pane_widget = lw_create_widget ("main", "pane", widget_id_tick++, |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2322 (widget_value *) NULL, |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2323 shell_widget, False, |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2324 (lw_callback) NULL, |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2325 (lw_callback) NULL, |
27343
43230463dfcf
(x_window): Call lw_create_widget with new parameter
Gerd Moellmann <gerd@gnu.org>
parents:
27157
diff
changeset
|
2326 (lw_callback) NULL, |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2327 (lw_callback) NULL); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2328 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2329 ac = 0; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2330 XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2331 XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2332 XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2333 XtSetValues (pane_widget, al, ac); |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2334 f->output_data.x->column_widget = pane_widget; |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2335 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2336 /* mappedWhenManaged to false tells to the paned window to not map/unmap |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
2337 the emacs screen when changing menubar. This reduces flickering. */ |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2338 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2339 ac = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2340 XtSetArg (al[ac], XtNmappedWhenManaged, 0); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2341 XtSetArg (al[ac], XtNshowGrip, 0); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2342 XtSetArg (al[ac], XtNallowResize, 1); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2343 XtSetArg (al[ac], XtNresizeToPreferred, 1); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2344 XtSetArg (al[ac], XtNemacsFrame, f); ac++; |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2345 XtSetArg (al[ac], XtNvisual, FRAME_X_VISUAL (f)); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2346 XtSetArg (al[ac], XtNdepth, FRAME_X_DISPLAY_INFO (f)->n_planes); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2347 XtSetArg (al[ac], XtNcolormap, FRAME_X_COLORMAP (f)); ac++; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2348 frame_widget = XtCreateWidget (f->namebuf, emacsFrameClass, pane_widget, |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2349 al, ac); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2350 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2351 f->output_data.x->edit_widget = frame_widget; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2352 |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2353 XtManageChild (frame_widget); |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2354 |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2355 /* Do some needed geometry management. */ |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2356 { |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2357 int len; |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2358 char *tem, shell_position[32]; |
53027
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2359 Arg al[10]; |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2360 int ac = 0; |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2361 int extra_borders = 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2362 int menubar_size |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2363 = (f->output_data.x->menubar_widget |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2364 ? (f->output_data.x->menubar_widget->core.height |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2365 + f->output_data.x->menubar_widget->core.border_width) |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2366 : 0); |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2367 |
15942
ff30ec8aab54
(x_window): Don't add ibw to menubar_size.
Richard M. Stallman <rms@gnu.org>
parents:
15891
diff
changeset
|
2368 #if 0 /* Experimentally, we now get the right results |
ff30ec8aab54
(x_window): Don't add ibw to menubar_size.
Richard M. Stallman <rms@gnu.org>
parents:
15891
diff
changeset
|
2369 for -geometry -0-0 without this. 24 Aug 96, rms. */ |
7969
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2370 if (FRAME_EXTERNAL_MENU_BAR (f)) |
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2371 { |
9808
4c43c9dbe130
(x_window): Make ibw 0 by default.
Richard M. Stallman <rms@gnu.org>
parents:
9742
diff
changeset
|
2372 Dimension ibw = 0; |
7969
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2373 XtVaGetValues (pane_widget, XtNinternalBorderWidth, &ibw, NULL); |
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2374 menubar_size += ibw; |
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2375 } |
15942
ff30ec8aab54
(x_window): Don't add ibw to menubar_size.
Richard M. Stallman <rms@gnu.org>
parents:
15891
diff
changeset
|
2376 #endif |
7969
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2377 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2378 f->output_data.x->menubar_height = menubar_size; |
11897
cbd3724a9696
(x_window) [both versions]: Set menubar_height.
Karl Heuer <kwzh@gnu.org>
parents:
11894
diff
changeset
|
2379 |
16305
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2380 #ifndef USE_LUCID |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2381 /* Motif seems to need this amount added to the sizes |
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2382 specified for the shell widget. The Athena/Lucid widgets don't. |
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2383 Both conclusions reached experimentally. -- rms. */ |
16305
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2384 XtVaGetValues (f->output_data.x->edit_widget, XtNinternalBorderWidth, |
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2385 &extra_borders, NULL); |
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2386 extra_borders *= 2; |
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2387 #endif |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2388 |
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2389 /* Convert our geometry parameters into a geometry string |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2390 and specify it. |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2391 Note that we do not specify here whether the position |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2392 is a user-specified or program-specified one. |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2393 We pass that information later, in x_wm_set_size_hints. */ |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2394 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2395 int left = f->left_pos; |
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2396 int xneg = window_prompting & XNegative; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2397 int top = f->top_pos; |
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2398 int yneg = window_prompting & YNegative; |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2399 if (xneg) |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2400 left = -left; |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2401 if (yneg) |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2402 top = -top; |
11893
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2403 |
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2404 if (window_prompting & USPosition) |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2405 sprintf (shell_position, "=%dx%d%c%d%c%d", |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2406 FRAME_PIXEL_WIDTH (f) + extra_borders, |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2407 FRAME_PIXEL_HEIGHT (f) + menubar_size + extra_borders, |
11893
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2408 (xneg ? '-' : '+'), left, |
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2409 (yneg ? '-' : '+'), top); |
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2410 else |
53027
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2411 { |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2412 sprintf (shell_position, "=%dx%d", |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2413 FRAME_PIXEL_WIDTH (f) + extra_borders, |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2414 FRAME_PIXEL_HEIGHT (f) + menubar_size + extra_borders); |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2415 |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2416 /* Setting x and y when the position is not specified in |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2417 the geometry string will set program position in the WM hints. |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2418 If Emacs had just one program position, we could set it in |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2419 fallback resources, but since each make-frame call can specify |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2420 different program positions, this is easier. */ |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2421 XtSetArg (al[ac], XtNx, left); ac++; |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2422 XtSetArg (al[ac], XtNy, top); ac++; |
8ea9dad9855f
* xfns.c (x_window): Set XtNx and XtNy in shell widget for
Jan Djärv <jan.h.d@swipnet.se>
parents:
52763
diff
changeset
|
2423 } |
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2424 } |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2425 |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2426 len = strlen (shell_position) + 1; |
17579 | 2427 /* We don't free this because we don't know whether |
2428 it is safe to free it while the frame exists. | |
2429 It isn't worth the trouble of arranging to free it | |
2430 when the frame is deleted. */ | |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2431 tem = (char *) xmalloc (len); |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2432 strncpy (tem, shell_position, len); |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2433 XtSetArg (al[ac], XtNgeometry, tem); ac++; |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2434 XtSetValues (shell_widget, al, ac); |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2435 } |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2436 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2437 XtManageChild (pane_widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2438 XtRealizeWidget (shell_widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2439 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2440 FRAME_X_WINDOW (f) = XtWindow (frame_widget); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2441 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2442 validate_x_resource_name (); |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2443 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2444 class_hints.res_name = (char *) SDATA (Vx_resource_name); |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2445 class_hints.res_class = (char *) SDATA (Vx_resource_class); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2446 XSetClassHint (FRAME_X_DISPLAY (f), XtWindow (shell_widget), &class_hints); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2447 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2448 #ifdef HAVE_X_I18N |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2449 FRAME_XIC (f) = NULL; |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2450 if (use_xim) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2451 create_frame_xic (f); |
29947
b7556fa4c05b
(x_window) [!USE_XIM]: Don't call create_frame_ic.
Gerd Moellmann <gerd@gnu.org>
parents:
29938
diff
changeset
|
2452 #endif |
13227
d8af44485b3c
(x_window, both versions): Add HAVE_X_I18N support.
Richard M. Stallman <rms@gnu.org>
parents:
13083
diff
changeset
|
2453 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2454 f->output_data.x->wm_hints.input = True; |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2455 f->output_data.x->wm_hints.flags |= InputHint; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2456 XSetWMHints (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2457 &f->output_data.x->wm_hints); |
7172
f9eeb75c2b76
(x_window) [USE_X_TOOLKIT]: Call XSetWMHints.
Richard M. Stallman <rms@gnu.org>
parents:
7040
diff
changeset
|
2458 |
9703
85ac0e4030d4
(x_window): Pass new arg f to hack_wm_protocols.
Richard M. Stallman <rms@gnu.org>
parents:
9690
diff
changeset
|
2459 hack_wm_protocols (f, shell_widget); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2460 |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2461 #ifdef HACK_EDITRES |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2462 XtAddEventHandler (shell_widget, 0, True, _XEditResCheckMessages, 0); |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2463 #endif |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2464 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2465 /* Do a stupid property change to force the server to generate a |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2466 PropertyNotify event so that the event_stream server timestamp will |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2467 be initialized to something relevant to the time we created the window. |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2468 */ |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2469 XChangeProperty (XtDisplay (frame_widget), XtWindow (frame_widget), |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2470 FRAME_X_DISPLAY_INFO (f)->Xatom_wm_protocols, |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2471 XA_ATOM, 32, PropModeAppend, |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2472 (unsigned char*) NULL, 0); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2473 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2474 /* Make all the standard events reach the Emacs frame. */ |
6059
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2475 attributes.event_mask = STANDARD_EVENT_SET; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2476 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2477 #ifdef HAVE_X_I18N |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2478 if (FRAME_XIC (f)) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2479 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2480 /* XIM server might require some X events. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2481 unsigned long fevent = NoEventMask; |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2482 XGetICValues (FRAME_XIC (f), XNFilterEvents, &fevent, NULL); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2483 attributes.event_mask |= fevent; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2484 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2485 #endif /* HAVE_X_I18N */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2486 |
6059
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2487 attribute_mask = CWEventMask; |
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2488 XChangeWindowAttributes (XtDisplay (shell_widget), XtWindow (shell_widget), |
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2489 attribute_mask, &attributes); |
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2490 |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2491 XtMapWidget (frame_widget); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2492 |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2493 /* x_set_name normally ignores requests to set the name if the |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2494 requested name is the same as the current name. This is the one |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2495 place where that assumption isn't correct; f->name is set, but |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2496 the X server hasn't been told. */ |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2497 { |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2498 Lisp_Object name; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2499 int explicit = f->explicit_name; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2500 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2501 f->explicit_name = 0; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2502 name = f->name; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2503 f->name = Qnil; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2504 x_set_name (f, name, explicit); |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2505 } |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2506 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2507 XDefineCursor (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2508 f->output_data.x->text_cursor); |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2509 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2510 UNBLOCK_INPUT; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2511 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
2512 /* This is a no-op, except under Motif. Make sure main areas are |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
2513 set to something reasonable, in case we get an error later. */ |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
2514 lw_set_main_areas (pane_widget, 0, frame_widget); |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2515 } |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2516 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2517 #else /* not USE_X_TOOLKIT */ |
49322 | 2518 #ifdef USE_GTK |
2519 void | |
2520 x_window (f) | |
2521 FRAME_PTR f; | |
2522 { | |
2523 if (! xg_create_frame_widgets (f)) | |
2524 error ("Unable to create window"); | |
49434
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2525 |
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2526 #ifdef HAVE_X_I18N |
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2527 FRAME_XIC (f) = NULL; |
54185
f6e4e454800a
xfns.c (x_window): Fixed indentation
Jan Djärv <jan.h.d@swipnet.se>
parents:
54142
diff
changeset
|
2528 if (use_xim) |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2529 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2530 BLOCK_INPUT; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2531 create_frame_xic (f); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2532 if (FRAME_XIC (f)) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2533 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2534 /* XIM server might require some X events. */ |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2535 unsigned long fevent = NoEventMask; |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2536 XGetICValues (FRAME_XIC (f), XNFilterEvents, &fevent, NULL); |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2537 |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2538 if (fevent != NoEventMask) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2539 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2540 XSetWindowAttributes attributes; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2541 XWindowAttributes wattr; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2542 unsigned long attribute_mask; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2543 |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2544 XGetWindowAttributes (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2545 &wattr); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2546 attributes.event_mask = wattr.your_event_mask | fevent; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2547 attribute_mask = CWEventMask; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2548 XChangeWindowAttributes (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2549 attribute_mask, &attributes); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2550 } |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2551 } |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2552 UNBLOCK_INPUT; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2553 } |
49434
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2554 #endif |
49322 | 2555 } |
2556 | |
2557 #else /*! USE_GTK */ | |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2558 /* Create and set up the X window for frame F. */ |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2559 |
21846 | 2560 void |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2561 x_window (f) |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2562 struct frame *f; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2563 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2564 { |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2565 XClassHint class_hints; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2566 XSetWindowAttributes attributes; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2567 unsigned long attribute_mask; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2568 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2569 attributes.background_pixel = f->output_data.x->background_pixel; |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2570 attributes.border_pixel = f->output_data.x->border_pixel; |
389 | 2571 attributes.bit_gravity = StaticGravity; |
2572 attributes.backing_store = NotUseful; | |
2573 attributes.save_under = True; | |
2574 attributes.event_mask = STANDARD_EVENT_SET; | |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2575 attributes.colormap = FRAME_X_COLORMAP (f); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2576 attribute_mask = (CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2577 | CWColormap); |
389 | 2578 |
2579 BLOCK_INPUT; | |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
2580 FRAME_X_WINDOW (f) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2581 = XCreateWindow (FRAME_X_DISPLAY (f), |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2582 f->output_data.x->parent_desc, |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2583 f->left_pos, |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2584 f->top_pos, |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2585 FRAME_PIXEL_WIDTH (f), FRAME_PIXEL_HEIGHT (f), |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2586 f->border_width, |
389 | 2587 CopyFromParent, /* depth */ |
2588 InputOutput, /* class */ | |
28144
71ebba3566ec
(X_I18N_INHIBITED): Don't define.
Gerd Moellmann <gerd@gnu.org>
parents:
28096
diff
changeset
|
2589 FRAME_X_VISUAL (f), |
389 | 2590 attribute_mask, &attributes); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2591 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2592 #ifdef HAVE_X_I18N |
51175 | 2593 if (use_xim) |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2594 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2595 create_frame_xic (f); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2596 if (FRAME_XIC (f)) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2597 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2598 /* XIM server might require some X events. */ |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2599 unsigned long fevent = NoEventMask; |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2600 XGetICValues (FRAME_XIC (f), XNFilterEvents, &fevent, NULL); |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2601 attributes.event_mask |= fevent; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2602 attribute_mask = CWEventMask; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2603 XChangeWindowAttributes (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2604 attribute_mask, &attributes); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2605 } |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2606 } |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2607 #endif /* HAVE_X_I18N */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2608 |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
2609 validate_x_resource_name (); |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2610 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2611 class_hints.res_name = (char *) SDATA (Vx_resource_name); |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2612 class_hints.res_class = (char *) SDATA (Vx_resource_class); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2613 XSetClassHint (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), &class_hints); |
771 | 2614 |
11897
cbd3724a9696
(x_window) [both versions]: Set menubar_height.
Karl Heuer <kwzh@gnu.org>
parents:
11894
diff
changeset
|
2615 /* The menubar is part of the ordinary display; |
cbd3724a9696
(x_window) [both versions]: Set menubar_height.
Karl Heuer <kwzh@gnu.org>
parents:
11894
diff
changeset
|
2616 it does not count in addition to the height of the window. */ |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2617 f->output_data.x->menubar_height = 0; |
11897
cbd3724a9696
(x_window) [both versions]: Set menubar_height.
Karl Heuer <kwzh@gnu.org>
parents:
11894
diff
changeset
|
2618 |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
2619 /* This indicates that we use the "Passive Input" input model. |
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
2620 Unless we do this, we don't get the Focus{In,Out} events that we |
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
2621 need to draw the cursor correctly. Accursed bureaucrats. |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2622 XWhipsAndChains (FRAME_X_DISPLAY (f), IronMaiden, &TheRack); */ |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
2623 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2624 f->output_data.x->wm_hints.input = True; |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2625 f->output_data.x->wm_hints.flags |= InputHint; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2626 XSetWMHints (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2627 &f->output_data.x->wm_hints); |
15081
ab8c81feacf9
(x_window) [! USE_X_TOOLKIT]: Initialize wm_hints.icon_pixmap.
Richard M. Stallman <rms@gnu.org>
parents:
15079
diff
changeset
|
2628 f->output_data.x->wm_hints.icon_pixmap = None; |
7860
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2629 |
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2630 /* Request "save yourself" and "delete window" commands from wm. */ |
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2631 { |
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2632 Atom protocols[2]; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2633 protocols[0] = FRAME_X_DISPLAY_INFO (f)->Xatom_wm_delete_window; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2634 protocols[1] = FRAME_X_DISPLAY_INFO (f)->Xatom_wm_save_yourself; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2635 XSetWMProtocols (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), protocols, 2); |
7860
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2636 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2637 |
817 | 2638 /* x_set_name normally ignores requests to set the name if the |
2639 requested name is the same as the current name. This is the one | |
2640 place where that assumption isn't correct; f->name is set, but | |
2641 the X server hasn't been told. */ | |
2642 { | |
6519
22c56514eeb3
(x_set_frame_parameters, x_get_arg, x_window, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
6506
diff
changeset
|
2643 Lisp_Object name; |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2644 int explicit = f->explicit_name; |
817 | 2645 |
6519
22c56514eeb3
(x_set_frame_parameters, x_get_arg, x_window, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
6506
diff
changeset
|
2646 f->explicit_name = 0; |
22c56514eeb3
(x_set_frame_parameters, x_get_arg, x_window, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
6506
diff
changeset
|
2647 name = f->name; |
817 | 2648 f->name = Qnil; |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2649 x_set_name (f, name, explicit); |
817 | 2650 } |
2651 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2652 XDefineCursor (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2653 f->output_data.x->text_cursor); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2654 |
389 | 2655 UNBLOCK_INPUT; |
2656 | |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
2657 if (FRAME_X_WINDOW (f) == 0) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2658 error ("Unable to create window"); |
389 | 2659 } |
2660 | |
49322 | 2661 #endif /* not USE_GTK */ |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2662 #endif /* not USE_X_TOOLKIT */ |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2663 |
56513
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2664 /* Verify that the icon position args for this window are valid. */ |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2665 |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2666 static void |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2667 x_icon_verify (f, parms) |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2668 struct frame *f; |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2669 Lisp_Object parms; |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2670 { |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2671 Lisp_Object icon_x, icon_y; |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2672 |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2673 /* Set the position of the icon. Note that twm groups all |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2674 icons in an icon window. */ |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2675 icon_x = x_frame_get_and_record_arg (f, parms, Qicon_left, 0, 0, RES_TYPE_NUMBER); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2676 icon_y = x_frame_get_and_record_arg (f, parms, Qicon_top, 0, 0, RES_TYPE_NUMBER); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2677 if (!EQ (icon_x, Qunbound) && !EQ (icon_y, Qunbound)) |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2678 { |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2679 CHECK_NUMBER (icon_x); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2680 CHECK_NUMBER (icon_y); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2681 } |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2682 else if (!EQ (icon_x, Qunbound) || !EQ (icon_y, Qunbound)) |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2683 error ("Both left and top icon corners of icon must be specified"); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2684 } |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2685 |
389 | 2686 /* Handle the icon stuff for this window. Perhaps later we might |
2687 want an x_set_icon_position which can be called interactively as | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2688 well. */ |
389 | 2689 |
2690 static void | |
771 | 2691 x_icon (f, parms) |
2692 struct frame *f; | |
389 | 2693 Lisp_Object parms; |
2694 { | |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2695 Lisp_Object icon_x, icon_y; |
17779
094e5efd262d
(Fx_create_frame): Get X resources from the display
Richard M. Stallman <rms@gnu.org>
parents:
17722
diff
changeset
|
2696 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); |
389 | 2697 |
2698 /* Set the position of the icon. Note that twm groups all | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2699 icons in an icon window. */ |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
2700 icon_x = x_frame_get_and_record_arg (f, parms, Qicon_left, 0, 0, RES_TYPE_NUMBER); |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
2701 icon_y = x_frame_get_and_record_arg (f, parms, Qicon_top, 0, 0, RES_TYPE_NUMBER); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2702 if (!EQ (icon_x, Qunbound) && !EQ (icon_y, Qunbound)) |
389 | 2703 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
2704 CHECK_NUMBER (icon_x); |
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
2705 CHECK_NUMBER (icon_y); |
389 | 2706 } |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2707 else if (!EQ (icon_x, Qunbound) || !EQ (icon_y, Qunbound)) |
389 | 2708 error ("Both left and top icon corners of icon must be specified"); |
2709 | |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2710 BLOCK_INPUT; |
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2711 |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
2712 if (! EQ (icon_x, Qunbound)) |
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
2713 x_wm_set_icon_position (f, XINT (icon_x), XINT (icon_y)); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2714 |
389 | 2715 /* Start up iconic or window? */ |
2294
9bce20507666
Use the `visiblity' parameter to determine the initial state of
Jim Blandy <jimb@redhat.com>
parents:
2283
diff
changeset
|
2716 x_wm_set_window_state |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2717 (f, (EQ (x_get_arg (dpyinfo, parms, Qvisibility, 0, 0, RES_TYPE_SYMBOL), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2718 Qicon) |
2294
9bce20507666
Use the `visiblity' parameter to determine the initial state of
Jim Blandy <jimb@redhat.com>
parents:
2283
diff
changeset
|
2719 ? IconicState |
9bce20507666
Use the `visiblity' parameter to determine the initial state of
Jim Blandy <jimb@redhat.com>
parents:
2283
diff
changeset
|
2720 : NormalState)); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2721 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2722 x_text_icon (f, (char *) SDATA ((!NILP (f->icon_name) |
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
2723 ? f->icon_name |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2724 : f->name))); |
12073 | 2725 |
389 | 2726 UNBLOCK_INPUT; |
2727 } | |
2728 | |
31637
c1f4bdbf8465
(ALLOC_XPM_COLORS): Define if we can use Emacs' color
Gerd Moellmann <gerd@gnu.org>
parents:
31633
diff
changeset
|
2729 /* Make the GCs needed for this window, setting the |
389 | 2730 background, border and mouse colors; also create the |
2731 mouse cursor and the gray border tile. */ | |
2732 | |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2733 static char cursor_bits[] = |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2734 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2735 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2736 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2737 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2738 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2739 }; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2740 |
389 | 2741 static void |
771 | 2742 x_make_gc (f) |
2743 struct frame *f; | |
389 | 2744 { |
2745 XGCValues gc_values; | |
2746 | |
2341
1982e2983822
* xfns.c (x_make_gc): Don't forget to block X input around the
Jim Blandy <jimb@redhat.com>
parents:
2328
diff
changeset
|
2747 BLOCK_INPUT; |
1982e2983822
* xfns.c (x_make_gc): Don't forget to block X input around the
Jim Blandy <jimb@redhat.com>
parents:
2328
diff
changeset
|
2748 |
31637
c1f4bdbf8465
(ALLOC_XPM_COLORS): Define if we can use Emacs' color
Gerd Moellmann <gerd@gnu.org>
parents:
31633
diff
changeset
|
2749 /* Create the GCs of this frame. |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2750 Note that many default values are used. */ |
389 | 2751 |
2752 /* Normal video */ | |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2753 gc_values.font = FRAME_FONT (f)->fid; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2754 gc_values.foreground = f->output_data.x->foreground_pixel; |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2755 gc_values.background = f->output_data.x->background_pixel; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2756 gc_values.line_width = 0; /* Means 1 using fast algorithm. */ |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2757 f->output_data.x->normal_gc |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2758 = XCreateGC (FRAME_X_DISPLAY (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2759 FRAME_X_WINDOW (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2760 GCLineWidth | GCFont | GCForeground | GCBackground, |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2761 &gc_values); |
389 | 2762 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2763 /* Reverse video style. */ |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2764 gc_values.foreground = f->output_data.x->background_pixel; |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2765 gc_values.background = f->output_data.x->foreground_pixel; |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2766 f->output_data.x->reverse_gc |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2767 = XCreateGC (FRAME_X_DISPLAY (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2768 FRAME_X_WINDOW (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2769 GCFont | GCForeground | GCBackground | GCLineWidth, |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2770 &gc_values); |
389 | 2771 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2772 /* Cursor has cursor-color background, background-color foreground. */ |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2773 gc_values.foreground = f->output_data.x->background_pixel; |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2774 gc_values.background = f->output_data.x->cursor_pixel; |
389 | 2775 gc_values.fill_style = FillOpaqueStippled; |
2776 gc_values.stipple | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2777 = XCreateBitmapFromData (FRAME_X_DISPLAY (f), |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2778 FRAME_X_DISPLAY_INFO (f)->root_window, |
389 | 2779 cursor_bits, 16, 16); |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2780 f->output_data.x->cursor_gc |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2781 = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
389 | 2782 (GCFont | GCForeground | GCBackground |
24905
2c79eecad64d
(x_make_gc): Turn off GCStipple when setting up cursor_gc.
Richard M. Stallman <rms@gnu.org>
parents:
24677
diff
changeset
|
2783 | GCFillStyle /* | GCStipple */ | GCLineWidth), |
389 | 2784 &gc_values); |
2785 | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2786 /* Reliefs. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2787 f->output_data.x->white_relief.gc = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2788 f->output_data.x->black_relief.gc = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2789 |
389 | 2790 /* Create the gray border tile used when the pointer is not in |
771 | 2791 the frame. Since this depends on the frame's pixel values, |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2792 this must be done on a per-frame basis. */ |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2793 f->output_data.x->border_tile |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
2794 = (XCreatePixmapFromBitmapData |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2795 (FRAME_X_DISPLAY (f), FRAME_X_DISPLAY_INFO (f)->root_window, |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
2796 gray_bits, gray_width, gray_height, |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2797 f->output_data.x->foreground_pixel, |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2798 f->output_data.x->background_pixel, |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
2799 DefaultDepth (FRAME_X_DISPLAY (f), FRAME_X_SCREEN_NUMBER (f)))); |
2341
1982e2983822
* xfns.c (x_make_gc): Don't forget to block X input around the
Jim Blandy <jimb@redhat.com>
parents:
2328
diff
changeset
|
2800 |
1982e2983822
* xfns.c (x_make_gc): Don't forget to block X input around the
Jim Blandy <jimb@redhat.com>
parents:
2328
diff
changeset
|
2801 UNBLOCK_INPUT; |
389 | 2802 } |
2803 | |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2804 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2805 /* Free what was was allocated in x_make_gc. */ |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2806 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2807 void |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2808 x_free_gcs (f) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2809 struct frame *f; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2810 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2811 Display *dpy = FRAME_X_DISPLAY (f); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2812 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2813 BLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2814 |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2815 if (f->output_data.x->normal_gc) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2816 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2817 XFreeGC (dpy, f->output_data.x->normal_gc); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2818 f->output_data.x->normal_gc = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2819 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2820 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2821 if (f->output_data.x->reverse_gc) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2822 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2823 XFreeGC (dpy, f->output_data.x->reverse_gc); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2824 f->output_data.x->reverse_gc = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2825 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2826 |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2827 if (f->output_data.x->cursor_gc) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2828 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2829 XFreeGC (dpy, f->output_data.x->cursor_gc); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2830 f->output_data.x->cursor_gc = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2831 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2832 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2833 if (f->output_data.x->border_tile) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2834 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2835 XFreePixmap (dpy, f->output_data.x->border_tile); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2836 f->output_data.x->border_tile = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2837 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2838 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2839 UNBLOCK_INPUT; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2840 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2841 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2842 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2843 /* Handler for signals raised during x_create_frame and |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2844 x_create_top_frame. FRAME is the frame which is partially |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2845 constructed. */ |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2846 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2847 static Lisp_Object |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2848 unwind_create_frame (frame) |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2849 Lisp_Object frame; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2850 { |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2851 struct frame *f = XFRAME (frame); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2852 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2853 /* If frame is ``official'', nothing to do. */ |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2854 if (!CONSP (Vframe_list) || !EQ (XCAR (Vframe_list), frame)) |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2855 { |
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
2856 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2857 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2858 #endif |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2859 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2860 x_free_frame_resources (f); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2861 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2862 /* Check that reference counts are indeed correct. */ |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2863 xassert (dpyinfo->reference_count == dpyinfo_refcount); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2864 xassert (dpyinfo->image_cache->refcount == image_cache_refcount); |
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
2865 return Qt; |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2866 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2867 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2868 return Qnil; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2869 } |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2870 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2871 |
771 | 2872 DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, |
389 | 2873 1, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
2874 doc: /* Make a new X window, which is called a "frame" in Emacs terms. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2875 Returns an Emacs frame object. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2876 ALIST is an alist of frame parameters. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2877 If the parameters specify that the frame should not have a minibuffer, |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2878 and do not specify a specific minibuffer window to use, |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2879 then `default-minibuffer-frame' must be a frame whose minibuffer can |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2880 be shared by the new frame. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2881 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
2882 This function is an internal primitive--use `make-frame' instead. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
2883 (parms) |
389 | 2884 Lisp_Object parms; |
2885 { | |
771 | 2886 struct frame *f; |
6935
675e4ec5f14f
(Fx_create_frame): Delete excess args to x_wm_set_size_hint.
Richard M. Stallman <rms@gnu.org>
parents:
6882
diff
changeset
|
2887 Lisp_Object frame, tem; |
389 | 2888 Lisp_Object name; |
2889 int minibuffer_only = 0; | |
2890 long window_prompting = 0; | |
2891 int width, height; | |
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
2892 int count = SPECPDL_INDEX (); |
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2893 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2894 Lisp_Object display; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2895 struct x_display_info *dpyinfo = NULL; |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
2896 Lisp_Object parent; |
11774
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
2897 struct kboard *kb; |
389 | 2898 |
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
2899 check_x (); |
389 | 2900 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2901 /* Use this general default value to start with |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2902 until we know if this frame has a specified name. */ |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2903 Vx_resource_name = Vinvocation_name; |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2904 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2905 display = x_get_arg (dpyinfo, parms, Qdisplay, 0, 0, RES_TYPE_STRING); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2906 if (EQ (display, Qunbound)) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2907 display = Qnil; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2908 dpyinfo = check_x_display_info (display); |
11774
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
2909 #ifdef MULTI_KBOARD |
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
2910 kb = dpyinfo->kboard; |
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
2911 #else |
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
2912 kb = &the_only_kboard; |
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
2913 #endif |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2914 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2915 name = x_get_arg (dpyinfo, parms, Qname, "name", "Name", RES_TYPE_STRING); |
9103
948e8acb6990
(x_set_frame_parameters, x_set_menu_bar_lines, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
9022
diff
changeset
|
2916 if (!STRINGP (name) |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2917 && ! EQ (name, Qunbound) |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2918 && ! NILP (name)) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
2919 error ("Invalid frame name--not a string or nil"); |
398 | 2920 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2921 if (STRINGP (name)) |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2922 Vx_resource_name = name; |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2923 |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
2924 /* See if parent window is specified. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2925 parent = x_get_arg (dpyinfo, parms, Qparent_id, NULL, NULL, RES_TYPE_NUMBER); |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
2926 if (EQ (parent, Qunbound)) |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
2927 parent = Qnil; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
2928 if (! NILP (parent)) |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
2929 CHECK_NUMBER (parent); |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
2930 |
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2931 /* make_frame_without_minibuffer can run Lisp code and garbage collect. */ |
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2932 /* No need to protect DISPLAY because that's not used after passing |
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2933 it to make_frame_without_minibuffer. */ |
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2934 frame = Qnil; |
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2935 GCPRO4 (parms, parent, name, frame); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2936 tem = x_get_arg (dpyinfo, parms, Qminibuffer, "minibuffer", "Minibuffer", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2937 RES_TYPE_SYMBOL); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2938 if (EQ (tem, Qnone) || NILP (tem)) |
12011
854e396aabed
(Fx_create_frame): Pass new arg to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11989
diff
changeset
|
2939 f = make_frame_without_minibuffer (Qnil, kb, display); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2940 else if (EQ (tem, Qonly)) |
389 | 2941 { |
771 | 2942 f = make_minibuffer_frame (); |
389 | 2943 minibuffer_only = 1; |
2944 } | |
9103
948e8acb6990
(x_set_frame_parameters, x_set_menu_bar_lines, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
9022
diff
changeset
|
2945 else if (WINDOWP (tem)) |
12011
854e396aabed
(Fx_create_frame): Pass new arg to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11989
diff
changeset
|
2946 f = make_frame_without_minibuffer (tem, kb, display); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2947 else |
771 | 2948 f = make_frame (1); |
2949 | |
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2950 XSETFRAME (frame, f); |
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
2951 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1932
diff
changeset
|
2952 /* Note that X Windows does support scroll bars. */ |
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1932
diff
changeset
|
2953 FRAME_CAN_HAVE_SCROLL_BARS (f) = 1; |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
2954 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
2955 f->output_method = output_x_window; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2956 f->output_data.x = (struct x_output *) xmalloc (sizeof (struct x_output)); |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2957 bzero (f->output_data.x, sizeof (struct x_output)); |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2958 f->output_data.x->icon_bitmap = -1; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2959 FRAME_FONTSET (f) = -1; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2960 f->output_data.x->scroll_bar_foreground_pixel = -1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2961 f->output_data.x->scroll_bar_background_pixel = -1; |
39619
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
2962 #ifdef USE_TOOLKIT_SCROLL_BARS |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
2963 f->output_data.x->scroll_bar_top_shadow_pixel = -1; |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
2964 f->output_data.x->scroll_bar_bottom_shadow_pixel = -1; |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
2965 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2966 record_unwind_protect (unwind_create_frame, frame); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
2967 |
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
2968 f->icon_name |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2969 = x_get_arg (dpyinfo, parms, Qicon_name, "iconName", "Title", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2970 RES_TYPE_STRING); |
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
2971 if (! STRINGP (f->icon_name)) |
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
2972 f->icon_name = Qnil; |
12073 | 2973 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
2974 FRAME_X_DISPLAY_INFO (f) = dpyinfo; |
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
2975 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2976 image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2977 dpyinfo_refcount = dpyinfo->reference_count; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2978 #endif /* GLYPH_DEBUG */ |
11014
634a98104921
(Fx_create_frame): set the frame's kboard member.
Karl Heuer <kwzh@gnu.org>
parents:
10920
diff
changeset
|
2979 #ifdef MULTI_KBOARD |
11774
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
2980 FRAME_KBOARD (f) = kb; |
11014
634a98104921
(Fx_create_frame): set the frame's kboard member.
Karl Heuer <kwzh@gnu.org>
parents:
10920
diff
changeset
|
2981 #endif |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
2982 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2983 /* These colors will be set anyway later, but it's important |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2984 to get the color reference counts right, so initialize them! */ |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2985 { |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2986 Lisp_Object black; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2987 struct gcpro gcpro1; |
38345
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2988 |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2989 /* Function x_decode_color can signal an error. Make |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2990 sure to initialize color slots so that we won't try |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2991 to free colors we haven't allocated. */ |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2992 f->output_data.x->foreground_pixel = -1; |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2993 f->output_data.x->background_pixel = -1; |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2994 f->output_data.x->cursor_pixel = -1; |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2995 f->output_data.x->cursor_foreground_pixel = -1; |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2996 f->output_data.x->border_pixel = -1; |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
2997 f->output_data.x->mouse_pixel = -1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2998 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2999 black = build_string ("black"); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3000 GCPRO1 (black); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3001 f->output_data.x->foreground_pixel |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3002 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3003 f->output_data.x->background_pixel |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3004 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3005 f->output_data.x->cursor_pixel |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3006 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3007 f->output_data.x->cursor_foreground_pixel |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3008 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3009 f->output_data.x->border_pixel |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3010 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3011 f->output_data.x->mouse_pixel |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3012 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3013 UNGCPRO; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3014 } |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3015 |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3016 /* Specify the parent under which to make this X window. */ |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3017 |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3018 if (!NILP (parent)) |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3019 { |
18612
88efccff8970
Fix bugs with inappropriate mixing of Lisp_Object with int.
Richard M. Stallman <rms@gnu.org>
parents:
18594
diff
changeset
|
3020 f->output_data.x->parent_desc = (Window) XFASTINT (parent); |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3021 f->output_data.x->explicit_parent = 1; |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3022 } |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3023 else |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3024 { |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3025 f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window; |
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3026 f->output_data.x->explicit_parent = 0; |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3027 } |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3028 |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3029 /* Set the name; the functions to which we pass f expect the name to |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3030 be set. */ |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3031 if (EQ (name, Qunbound) || NILP (name)) |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3032 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3033 f->name = build_string (dpyinfo->x_id_name); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3034 f->explicit_name = 0; |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3035 } |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3036 else |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3037 { |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3038 f->name = name; |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3039 f->explicit_name = 1; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3040 /* use the frame's title when getting resources for this frame. */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3041 specbind (Qx_resource_name, name); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3042 } |
771 | 3043 |
389 | 3044 /* Extract the window parameters from the supplied values |
3045 that are needed to determine window geometry. */ | |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3046 { |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3047 Lisp_Object font; |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3048 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3049 font = x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING); |
18947
386d68191907
(Fx_create_frame): Don't fail to initialize `font'.
Richard M. Stallman <rms@gnu.org>
parents:
18893
diff
changeset
|
3050 |
4150
e2e92cd737bf
* xfns.c (Fx_create_frame): Block input around call to
Jim Blandy <jimb@redhat.com>
parents:
4146
diff
changeset
|
3051 BLOCK_INPUT; |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3052 /* First, try whatever font the caller has specified. */ |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3053 if (STRINGP (font)) |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
3054 { |
21555
0927f341e390
(x_set_font): Give 2nd arg nil to Fquery_fontset.
Kenichi Handa <handa@m17n.org>
parents:
21549
diff
changeset
|
3055 tem = Fquery_fontset (font, Qnil); |
17722
27df69e20b98
(Fx_create_frame): Delete code for handling the X
Kenichi Handa <handa@m17n.org>
parents:
17629
diff
changeset
|
3056 if (STRINGP (tem)) |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3057 font = x_new_fontset (f, SDATA (tem)); |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
3058 else |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3059 font = x_new_font (f, SDATA (font)); |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
3060 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3061 |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3062 /* Try out a font which we hope has bold and italic variations. */ |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3063 if (!STRINGP (font)) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3064 font = x_new_font (f, "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3065 if (!STRINGP (font)) |
8270
1a0af0f4fb1d
(Fx_create_frame): Use 140 as default font size.
Richard M. Stallman <rms@gnu.org>
parents:
8192
diff
changeset
|
3066 font = x_new_font (f, "-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-1"); |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3067 if (! STRINGP (font)) |
8270
1a0af0f4fb1d
(Fx_create_frame): Use 140 as default font size.
Richard M. Stallman <rms@gnu.org>
parents:
8192
diff
changeset
|
3068 font = x_new_font (f, "-*-*-medium-r-normal-*-*-140-*-*-c-*-iso8859-1"); |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3069 if (! STRINGP (font)) |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3070 /* This was formerly the first thing tried, but it finds too many fonts |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3071 and takes too long. */ |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3072 font = x_new_font (f, "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1"); |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3073 /* If those didn't work, look for something which will at least work. */ |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3074 if (! STRINGP (font)) |
8270
1a0af0f4fb1d
(Fx_create_frame): Use 140 as default font size.
Richard M. Stallman <rms@gnu.org>
parents:
8192
diff
changeset
|
3075 font = x_new_font (f, "-*-fixed-*-*-*-*-*-140-*-*-c-*-iso8859-1"); |
4150
e2e92cd737bf
* xfns.c (Fx_create_frame): Block input around call to
Jim Blandy <jimb@redhat.com>
parents:
4146
diff
changeset
|
3076 UNBLOCK_INPUT; |
e2e92cd737bf
* xfns.c (Fx_create_frame): Block input around call to
Jim Blandy <jimb@redhat.com>
parents:
4146
diff
changeset
|
3077 if (! STRINGP (font)) |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3078 font = build_string ("fixed"); |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3079 |
17722
27df69e20b98
(Fx_create_frame): Delete code for handling the X
Kenichi Handa <handa@m17n.org>
parents:
17629
diff
changeset
|
3080 x_default_parameter (f, parms, Qfont, font, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3081 "font", "Font", RES_TYPE_STRING); |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3082 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3083 |
15720
f1549b7501af
(Fx_create_frame): Do xlwmenu hack only if USE_LUCID.
Karl Heuer <kwzh@gnu.org>
parents:
15706
diff
changeset
|
3084 #ifdef USE_LUCID |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3085 /* Prevent lwlib/xlwmenu.c from crashing because of a bug |
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3086 whereby it fails to get any font. */ |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3087 xlwmenu_default_font = FRAME_FONT (f); |
9808
4c43c9dbe130
(x_window): Make ibw 0 by default.
Richard M. Stallman <rms@gnu.org>
parents:
9742
diff
changeset
|
3088 #endif |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3089 |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3090 x_default_parameter (f, parms, Qborder_width, make_number (2), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3091 "borderWidth", "BorderWidth", RES_TYPE_NUMBER); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3092 |
40715 | 3093 /* This defaults to 1 in order to match xterm. We recognize either |
3923
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3094 internalBorderWidth or internalBorder (which is what xterm calls |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3095 it). */ |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3096 if (NILP (Fassq (Qinternal_border_width, parms))) |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3097 { |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3098 Lisp_Object value; |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3099 |
17779
094e5efd262d
(Fx_create_frame): Get X resources from the display
Richard M. Stallman <rms@gnu.org>
parents:
17722
diff
changeset
|
3100 value = x_get_arg (dpyinfo, parms, Qinternal_border_width, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3101 "internalBorder", "internalBorder", RES_TYPE_NUMBER); |
3923
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3102 if (! EQ (value, Qunbound)) |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3103 parms = Fcons (Fcons (Qinternal_border_width, value), |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3104 parms); |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3105 } |
16302
025b3dc7a6ba
(Fx_create_frame): Default Qinternal_border_width to 1.
Richard M. Stallman <rms@gnu.org>
parents:
16254
diff
changeset
|
3106 x_default_parameter (f, parms, Qinternal_border_width, make_number (1), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3107 "internalBorderWidth", "internalBorderWidth", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3108 RES_TYPE_NUMBER); |
16254
3e8b16badf3d
(Fx_create_frame): Default Qvertical_scroll_bars to `left'.
Richard M. Stallman <rms@gnu.org>
parents:
16156
diff
changeset
|
3109 x_default_parameter (f, parms, Qvertical_scroll_bars, Qleft, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3110 "verticalScrollBars", "ScrollBars", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3111 RES_TYPE_SYMBOL); |
389 | 3112 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3113 /* Also do the stuff which must be set before the window exists. */ |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3114 x_default_parameter (f, parms, Qforeground_color, build_string ("black"), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3115 "foreground", "Foreground", RES_TYPE_STRING); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3116 x_default_parameter (f, parms, Qbackground_color, build_string ("white"), |
26808 | 3117 "background", "Background", RES_TYPE_STRING); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3118 x_default_parameter (f, parms, Qmouse_color, build_string ("black"), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3119 "pointerColor", "Foreground", RES_TYPE_STRING); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3120 x_default_parameter (f, parms, Qcursor_color, build_string ("black"), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3121 "cursorColor", "Foreground", RES_TYPE_STRING); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3122 x_default_parameter (f, parms, Qborder_color, build_string ("black"), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3123 "borderColor", "BorderColor", RES_TYPE_STRING); |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
3124 x_default_parameter (f, parms, Qscreen_gamma, Qnil, |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
3125 "screenGamma", "ScreenGamma", RES_TYPE_FLOAT); |
28690
01a3287bb747
(x_set_line_spacing): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28597
diff
changeset
|
3126 x_default_parameter (f, parms, Qline_spacing, Qnil, |
01a3287bb747
(x_set_line_spacing): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28597
diff
changeset
|
3127 "lineSpacing", "LineSpacing", RES_TYPE_NUMBER); |
41722
fd499c5c75d2
(x_frame_parms): Add `left-fringe' and `right-fringe' parms.
Kim F. Storm <storm@cua.dk>
parents:
41449
diff
changeset
|
3128 x_default_parameter (f, parms, Qleft_fringe, Qnil, |
fd499c5c75d2
(x_frame_parms): Add `left-fringe' and `right-fringe' parms.
Kim F. Storm <storm@cua.dk>
parents:
41449
diff
changeset
|
3129 "leftFringe", "LeftFringe", RES_TYPE_NUMBER); |
fd499c5c75d2
(x_frame_parms): Add `left-fringe' and `right-fringe' parms.
Kim F. Storm <storm@cua.dk>
parents:
41449
diff
changeset
|
3130 x_default_parameter (f, parms, Qright_fringe, Qnil, |
fd499c5c75d2
(x_frame_parms): Add `left-fringe' and `right-fringe' parms.
Kim F. Storm <storm@cua.dk>
parents:
41449
diff
changeset
|
3131 "rightFringe", "RightFringe", RES_TYPE_NUMBER); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3132 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3133 x_default_scroll_bar_color_parameter (f, parms, Qscroll_bar_foreground, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3134 "scrollBarForeground", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3135 "ScrollBarForeground", 1); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3136 x_default_scroll_bar_color_parameter (f, parms, Qscroll_bar_background, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3137 "scrollBarBackground", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3138 "ScrollBarBackground", 0); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3139 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3140 /* Init faces before x_default_parameter is called for scroll-bar |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3141 parameters because that function calls x_set_scroll_bar_width, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3142 which calls change_frame_size, which calls Fset_window_buffer, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3143 which runs hooks, which call Fvertical_motion. At the end, we |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3144 end up in init_iterator with a null face cache, which should not |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3145 happen. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3146 init_frame_faces (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3147 |
8758
fac1c4722677
(Fx_create_frame): Make 1 the default for menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
8675
diff
changeset
|
3148 x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3149 "menuBar", "MenuBar", RES_TYPE_NUMBER); |
31824
b3295c7e7a60
(Fx_create_frame): Set default frame parameter value
Gerd Moellmann <gerd@gnu.org>
parents:
31768
diff
changeset
|
3150 x_default_parameter (f, parms, Qtool_bar_lines, make_number (1), |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3151 "toolBar", "ToolBar", RES_TYPE_NUMBER); |
13083
16638ebb209f
(Fx_create_frame): Set up buffer-predicate slot.
Richard M. Stallman <rms@gnu.org>
parents:
12832
diff
changeset
|
3152 x_default_parameter (f, parms, Qbuffer_predicate, Qnil, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3153 "bufferPredicate", "BufferPredicate", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3154 RES_TYPE_SYMBOL); |
14381 | 3155 x_default_parameter (f, parms, Qtitle, Qnil, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3156 "title", "Title", RES_TYPE_STRING); |
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
3157 x_default_parameter (f, parms, Qwait_for_wm, Qt, |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
3158 "waitForWM", "WaitForWM", RES_TYPE_BOOLEAN); |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
3159 x_default_parameter (f, parms, Qfullscreen, Qnil, |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
3160 "fullscreen", "Fullscreen", RES_TYPE_SYMBOL); |
6882
3096a6f7fffb
(Fx_list_fonts): Error if non-X frame used.
Richard M. Stallman <rms@gnu.org>
parents:
6790
diff
changeset
|
3161 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3162 f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window; |
36459
919d77f8d0ff
(Fx_create_frame): Adjust the frame's height for presence
Gerd Moellmann <gerd@gnu.org>
parents:
36448
diff
changeset
|
3163 |
919d77f8d0ff
(Fx_create_frame): Adjust the frame's height for presence
Gerd Moellmann <gerd@gnu.org>
parents:
36448
diff
changeset
|
3164 /* Compute the size of the X window. */ |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
3165 window_prompting = x_figure_window_size (f, parms, 1); |
7263
b7025b4bf659
(Fx_create_frame): Set the size_hint_flags field.
Richard M. Stallman <rms@gnu.org>
parents:
7261
diff
changeset
|
3166 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3167 tem = x_get_arg (dpyinfo, parms, Qunsplittable, 0, 0, RES_TYPE_BOOLEAN); |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3168 f->no_split = minibuffer_only || EQ (tem, Qt); |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3169 |
56513
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
3170 x_icon_verify (f, parms); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
3171 |
35733
4f422aadd415
(Fx_create_frame): Add the tool bar height to the frame
Gerd Moellmann <gerd@gnu.org>
parents:
35592
diff
changeset
|
3172 /* Create the X widget or window. */ |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
3173 #ifdef USE_X_TOOLKIT |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
3174 x_window (f, window_prompting, minibuffer_only); |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
3175 #else |
771 | 3176 x_window (f); |
6604
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
3177 #endif |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3178 |
771 | 3179 x_icon (f, parms); |
3180 x_make_gc (f); | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3181 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3182 /* Now consider the frame official. */ |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3183 FRAME_X_DISPLAY_INFO (f)->reference_count++; |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3184 Vframe_list = Fcons (frame, Vframe_list); |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3185 |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3186 /* We need to do this after creating the X window, so that the |
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3187 icon-creation functions can say whose icon they're describing. */ |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3188 x_default_parameter (f, parms, Qicon_type, Qnil, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3189 "bitmapIcon", "BitmapIcon", RES_TYPE_SYMBOL); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3190 |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3191 x_default_parameter (f, parms, Qauto_raise, Qnil, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3192 "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3193 x_default_parameter (f, parms, Qauto_lower, Qnil, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3194 "autoLower", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
3195 x_default_parameter (f, parms, Qcursor_type, Qbox, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3196 "cursorType", "CursorType", RES_TYPE_SYMBOL); |
26978
06f887a1c834
(Fx_create_frame): Move x_default_parameter calls that
Gerd Moellmann <gerd@gnu.org>
parents:
26954
diff
changeset
|
3197 x_default_parameter (f, parms, Qscroll_bar_width, Qnil, |
06f887a1c834
(Fx_create_frame): Move x_default_parameter calls that
Gerd Moellmann <gerd@gnu.org>
parents:
26954
diff
changeset
|
3198 "scrollBarWidth", "ScrollBarWidth", |
06f887a1c834
(Fx_create_frame): Move x_default_parameter calls that
Gerd Moellmann <gerd@gnu.org>
parents:
26954
diff
changeset
|
3199 RES_TYPE_NUMBER); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3200 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3201 /* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size. |
389 | 3202 Change will not be effected unless different from the current |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3203 FRAME_LINES (f). */ |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3204 width = FRAME_COLS (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3205 height = FRAME_LINES (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3206 |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3207 SET_FRAME_COLS (f, 0); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3208 FRAME_LINES (f) = 0; |
25363
bf0488244270
Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents:
25335
diff
changeset
|
3209 change_frame_size (f, height, width, 1, 0, 0); |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
3210 |
49322 | 3211 #if defined (USE_X_TOOLKIT) || defined (USE_GTK) |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3212 /* Create the menu bar. */ |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3213 if (!minibuffer_only && FRAME_EXTERNAL_MENU_BAR (f)) |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3214 { |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3215 /* If this signals an error, we haven't set size hints for the |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3216 frame and we didn't make it visible. */ |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3217 initialize_frame_menubar (f); |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3218 |
49322 | 3219 #ifndef USE_GTK |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3220 /* This is a no-op, except under Motif where it arranges the |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3221 main window for the widgets on it. */ |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3222 lw_set_main_areas (f->output_data.x->column_widget, |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3223 f->output_data.x->menubar_widget, |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3224 f->output_data.x->edit_widget); |
49322 | 3225 #endif /* not USE_GTK */ |
3226 } | |
3227 #endif /* USE_X_TOOLKIT || USE_GTK */ | |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3228 |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3229 /* Tell the server what size and position, etc, we want, and how |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3230 badly we want them. This should be done after we have the menu |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3231 bar so that its size can be taken into account. */ |
389 | 3232 BLOCK_INPUT; |
7209
ca5e04c9795c
(Fx_create_frame): Pass 0 as 3rd arg to x_wm_set_size_hint.
Richard M. Stallman <rms@gnu.org>
parents:
7172
diff
changeset
|
3233 x_wm_set_size_hint (f, window_prompting, 0); |
389 | 3234 UNBLOCK_INPUT; |
3235 | |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3236 /* Make the window appear on the frame and enable display, unless |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3237 the caller says not to. However, with explicit parent, Emacs |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3238 cannot control visibility, so don't try. */ |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3239 if (! f->output_data.x->explicit_parent) |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3240 { |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3241 Lisp_Object visibility; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3242 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3243 visibility = x_get_arg (dpyinfo, parms, Qvisibility, 0, 0, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3244 RES_TYPE_SYMBOL); |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3245 if (EQ (visibility, Qunbound)) |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3246 visibility = Qt; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3247 |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3248 if (EQ (visibility, Qicon)) |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3249 x_iconify_frame (f); |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3250 else if (! NILP (visibility)) |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3251 x_make_frame_visible (f); |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3252 else |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3253 /* Must have been Qnil. */ |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3254 ; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3255 } |
771 | 3256 |
52298
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3257 /* Set the WM leader property. GTK does this itself, so this is not |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3258 needed when using GTK. */ |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3259 if (dpyinfo->client_leader_window != 0) |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3260 { |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3261 BLOCK_INPUT; |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3262 XChangeProperty (FRAME_X_DISPLAY (f), |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3263 FRAME_OUTER_WINDOW (f), |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3264 dpyinfo->Xatom_wm_client_leader, |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3265 XA_WINDOW, 32, PropModeReplace, |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3266 (char *) &dpyinfo->client_leader_window, 1); |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3267 UNBLOCK_INPUT; |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3268 } |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3269 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3270 UNGCPRO; |
36594
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3271 |
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3272 /* Make sure windows on this frame appear in calls to next-window |
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3273 and similar functions. */ |
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3274 Vwindow_list = Qnil; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3275 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3276 return unbind_to (count, frame); |
389 | 3277 } |
3278 | |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3279 |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3280 /* FRAME is used only to get a handle on the X display. We don't pass the |
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3281 display info directly because we're called from frame.c, which doesn't |
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3282 know about that structure. */ |
16156
d435199e529d
(x_set_frame_parameters): Make height and width ints.
Richard M. Stallman <rms@gnu.org>
parents:
16041
diff
changeset
|
3283 |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3284 Lisp_Object |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3285 x_get_focus_frame (frame) |
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3286 struct frame *frame; |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3287 { |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3288 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (frame); |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3289 Lisp_Object xfocus; |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3290 if (! dpyinfo->x_focus_frame) |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3291 return Qnil; |
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3292 |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3293 XSETFRAME (xfocus, dpyinfo->x_focus_frame); |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3294 return xfocus; |
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3295 } |
3048
96ff8e5744b2
* xfns.c (select_visual): Include the screen number in the
Jim Blandy <jimb@redhat.com>
parents:
3015
diff
changeset
|
3296 |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3297 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3298 /* In certain situations, when the window manager follows a |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3299 click-to-focus policy, there seems to be no way around calling |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3300 XSetInputFocus to give another frame the input focus . |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3301 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3302 In an ideal world, XSetInputFocus should generally be avoided so |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3303 that applications don't interfere with the window manager's focus |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3304 policy. But I think it's okay to use when it's clearly done |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3305 following a user-command. */ |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3306 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3307 DEFUN ("x-focus-frame", Fx_focus_frame, Sx_focus_frame, 1, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3308 doc: /* Set the input focus to FRAME. |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3309 FRAME nil means use the selected frame. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3310 (frame) |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3311 Lisp_Object frame; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3312 { |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3313 struct frame *f = check_x_frame (frame); |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3314 Display *dpy = FRAME_X_DISPLAY (f); |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3315 int count; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3316 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3317 BLOCK_INPUT; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3318 count = x_catch_errors (dpy); |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3319 XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3320 RevertToParent, CurrentTime); |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3321 x_uncatch_errors (dpy, count); |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3322 UNBLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3323 |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3324 return Qnil; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3325 } |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3326 |
3048
96ff8e5744b2
* xfns.c (select_visual): Include the screen number in the
Jim Blandy <jimb@redhat.com>
parents:
3015
diff
changeset
|
3327 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3328 DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3329 doc: /* Internal function called by `color-defined-p', which see. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3330 (color, frame) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3331 Lisp_Object color, frame; |
389 | 3332 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3333 XColor foo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3334 FRAME_PTR f = check_x_frame (frame); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3335 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3336 CHECK_STRING (color); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3337 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3338 if (x_defined_color (f, SDATA (color), &foo, 0)) |
8675
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3339 return Qt; |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3340 else |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3341 return Qnil; |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3342 } |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3343 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3344 DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3345 doc: /* Internal function called by `color-values', which see. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3346 (color, frame) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3347 Lisp_Object color, frame; |
8675
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3348 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3349 XColor foo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3350 FRAME_PTR f = check_x_frame (frame); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3351 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3352 CHECK_STRING (color); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3353 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3354 if (x_defined_color (f, SDATA (color), &foo, 0)) |
8655
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3355 { |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3356 Lisp_Object rgb[3]; |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3357 |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3358 rgb[0] = make_number (foo.red); |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3359 rgb[1] = make_number (foo.green); |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3360 rgb[2] = make_number (foo.blue); |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3361 return Flist (3, rgb); |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3362 } |
389 | 3363 else |
3364 return Qnil; | |
3365 } | |
3366 | |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3367 DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3368 doc: /* Internal function called by `display-color-p', which see. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3369 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3370 Lisp_Object display; |
389 | 3371 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3372 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3373 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3374 if (dpyinfo->n_planes <= 2) |
389 | 3375 return Qnil; |
3376 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3377 switch (dpyinfo->visual->class) |
389 | 3378 { |
3379 case StaticColor: | |
3380 case PseudoColor: | |
3381 case TrueColor: | |
3382 case DirectColor: | |
3383 return Qt; | |
3384 | |
3385 default: | |
3386 return Qnil; | |
3387 } | |
3388 } | |
3389 | |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3390 DEFUN ("x-display-grayscale-p", Fx_display_grayscale_p, Sx_display_grayscale_p, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3391 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3392 doc: /* Return t if the X display supports shades of gray. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3393 Note that color displays do support shades of gray. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3394 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3395 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3396 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3397 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3398 Lisp_Object display; |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3399 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3400 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3401 |
12347
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3402 if (dpyinfo->n_planes <= 1) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3403 return Qnil; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3404 |
12347
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3405 switch (dpyinfo->visual->class) |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3406 { |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3407 case StaticColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3408 case PseudoColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3409 case TrueColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3410 case DirectColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3411 case StaticGray: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3412 case GrayScale: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3413 return Qt; |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3414 |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3415 default: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3416 return Qnil; |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3417 } |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3418 } |
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3419 |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3420 DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3421 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3422 doc: /* Returns the width in pixels of the X display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3423 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3424 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3425 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3426 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3427 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3428 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3429 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3430 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3431 return make_number (dpyinfo->width); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3432 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3433 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3434 DEFUN ("x-display-pixel-height", Fx_display_pixel_height, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3435 Sx_display_pixel_height, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3436 doc: /* Returns the height in pixels of the X display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3437 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3438 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3439 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3440 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3441 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3442 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3443 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3444 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3445 return make_number (dpyinfo->height); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3446 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3447 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3448 DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3449 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3450 doc: /* Returns the number of bitplanes of the X display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3451 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3452 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3453 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3454 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3455 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3456 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3457 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3458 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3459 return make_number (dpyinfo->n_planes); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3460 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3461 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3462 DEFUN ("x-display-color-cells", Fx_display_color_cells, Sx_display_color_cells, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3463 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3464 doc: /* Returns the number of color cells of the X display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3465 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3466 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3467 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3468 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3469 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3470 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3471 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3472 |
54218
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3473 int nr_planes = DisplayPlanes (dpyinfo->display, |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3474 XScreenNumberOfScreen (dpyinfo->screen)); |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3475 |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3476 /* Truncate nr_planes to 24 to avoid integer overflow. |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3477 Some displays says 32, but only 24 bits are actually significant. |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3478 There are only very few and rare video cards that have more than |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3479 24 significant bits. Also 24 bits is more than 16 million colors, |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3480 it "should be enough for everyone". */ |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3481 if (nr_planes > 24) nr_planes = 24; |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3482 |
6f75b2135827
* xfns.c (Fx_display_color_cells): Use number of planes to calculate
Jan Djärv <jan.h.d@swipnet.se>
parents:
54185
diff
changeset
|
3483 return make_number (1 << nr_planes); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3484 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3485 |
4279 | 3486 DEFUN ("x-server-max-request-size", Fx_server_max_request_size, |
3487 Sx_server_max_request_size, | |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3488 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3489 doc: /* Returns the maximum request size of the X server of display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3490 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3491 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3492 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3493 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3494 Lisp_Object display; |
4279 | 3495 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3496 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3497 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3498 return make_number (MAXREQUEST (dpyinfo->display)); |
4279 | 3499 } |
3500 | |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3501 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, |
57765
77c93cbb1721
(Fx_server_vendor, Fx_server_version): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
57714
diff
changeset
|
3502 doc: /* Returns the "vendor ID" string of the X server of display DISPLAY. |
77c93cbb1721
(Fx_server_vendor, Fx_server_version): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
57714
diff
changeset
|
3503 \(Labelling every distributor as a "vendor" embodies the false assumption |
77c93cbb1721
(Fx_server_vendor, Fx_server_version): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
57714
diff
changeset
|
3504 that operating systems cannot be developed and distributed noncommercially.) |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3505 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3506 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3507 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3508 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3509 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3510 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3511 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3512 char *vendor = ServerVendor (dpyinfo->display); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3513 |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3514 if (! vendor) vendor = ""; |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3515 return build_string (vendor); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3516 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3517 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3518 DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3519 doc: /* Returns the version numbers of the X server of display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3520 The value is a list of three integers: the major and minor |
57765
77c93cbb1721
(Fx_server_vendor, Fx_server_version): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
57714
diff
changeset
|
3521 version numbers of the X Protocol in use, and the distributor-specific release |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3522 number. See also the function `x-server-vendor'. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3523 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3524 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3525 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3526 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3527 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3528 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3529 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3530 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3531 Display *dpy = dpyinfo->display; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3532 |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3533 return Fcons (make_number (ProtocolVersion (dpy)), |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3534 Fcons (make_number (ProtocolRevision (dpy)), |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3535 Fcons (make_number (VendorRelease (dpy)), Qnil))); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3536 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3537 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3538 DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3539 doc: /* Return the number of screens on the X server of display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3540 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3541 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3542 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3543 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3544 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3545 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3546 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3547 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3548 return make_number (ScreenCount (dpyinfo->display)); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3549 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3550 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3551 DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3552 doc: /* Return the height in millimeters of the X display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3553 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3554 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3555 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3556 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3557 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3558 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3559 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3560 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3561 return make_number (HeightMMOfScreen (dpyinfo->screen)); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3562 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3563 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3564 DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3565 doc: /* Return the width in millimeters of the X display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3566 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3567 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3568 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3569 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3570 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3571 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3572 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3573 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3574 return make_number (WidthMMOfScreen (dpyinfo->screen)); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3575 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3576 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3577 DEFUN ("x-display-backing-store", Fx_display_backing_store, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3578 Sx_display_backing_store, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3579 doc: /* Returns an indication of whether X display DISPLAY does backing store. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3580 The value may be `always', `when-mapped', or `not-useful'. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3581 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3582 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3583 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3584 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3585 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3586 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3587 struct x_display_info *dpyinfo = check_x_display_info (display); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3588 Lisp_Object result; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3589 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3590 switch (DoesBackingStore (dpyinfo->screen)) |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3591 { |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3592 case Always: |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3593 result = intern ("always"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3594 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3595 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3596 case WhenMapped: |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3597 result = intern ("when-mapped"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3598 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3599 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3600 case NotUseful: |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3601 result = intern ("not-useful"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3602 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3603 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3604 default: |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3605 error ("Strange value for BackingStore parameter of screen"); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3606 result = Qnil; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3607 } |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3608 |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3609 return result; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3610 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3611 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3612 DEFUN ("x-display-visual-class", Fx_display_visual_class, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3613 Sx_display_visual_class, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3614 doc: /* Return the visual class of the X display DISPLAY. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3615 The value is one of the symbols `static-gray', `gray-scale', |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3616 `static-color', `pseudo-color', `true-color', or `direct-color'. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3617 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3618 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3619 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3620 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3621 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3622 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3623 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3624 struct x_display_info *dpyinfo = check_x_display_info (display); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3625 Lisp_Object result; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3626 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3627 switch (dpyinfo->visual->class) |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3628 { |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3629 case StaticGray: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3630 result = intern ("static-gray"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3631 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3632 case GrayScale: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3633 result = intern ("gray-scale"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3634 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3635 case StaticColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3636 result = intern ("static-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3637 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3638 case PseudoColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3639 result = intern ("pseudo-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3640 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3641 case TrueColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3642 result = intern ("true-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3643 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3644 case DirectColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3645 result = intern ("direct-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3646 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3647 default: |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3648 error ("Display has an unknown visual class"); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3649 result = Qnil; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3650 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3651 |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3652 return result; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3653 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3654 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3655 DEFUN ("x-display-save-under", Fx_display_save_under, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3656 Sx_display_save_under, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3657 doc: /* Returns t if the X display DISPLAY supports the save-under feature. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3658 The optional argument DISPLAY specifies which display to ask about. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3659 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3660 If omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3661 (display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3662 Lisp_Object display; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3663 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3664 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3665 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3666 if (DoesSaveUnders (dpyinfo->screen) == True) |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3667 return Qt; |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3668 else |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3669 return Qnil; |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3670 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3671 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3672 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3673 x_pixel_width (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3674 register struct frame *f; |
389 | 3675 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3676 return FRAME_PIXEL_WIDTH (f); |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3677 } |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3678 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3679 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3680 x_pixel_height (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3681 register struct frame *f; |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3682 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3683 return FRAME_PIXEL_HEIGHT (f); |
389 | 3684 } |
3685 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3686 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3687 x_char_width (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3688 register struct frame *f; |
389 | 3689 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3690 return FRAME_COLUMN_WIDTH (f); |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3691 } |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3692 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3693 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3694 x_char_height (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3695 register struct frame *f; |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3696 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3697 return FRAME_LINE_HEIGHT (f); |
389 | 3698 } |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3699 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3700 int |
19825
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3701 x_screen_planes (f) |
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3702 register struct frame *f; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3703 { |
19825
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3704 return FRAME_X_DISPLAY_INFO (f)->n_planes; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3705 } |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3706 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3707 |
389 | 3708 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3709 /************************************************************************ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3710 X Displays |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3711 ************************************************************************/ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3712 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3713 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3714 /* Mapping visual names to visuals. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3715 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3716 static struct visual_class |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3717 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3718 char *name; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3719 int class; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3720 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3721 visual_classes[] = |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3722 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3723 {"StaticGray", StaticGray}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3724 {"GrayScale", GrayScale}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3725 {"StaticColor", StaticColor}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3726 {"PseudoColor", PseudoColor}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3727 {"TrueColor", TrueColor}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3728 {"DirectColor", DirectColor}, |
42123
7f5f06b97bfc
(x_frame_parms): Add missing braces around initializer.
Pavel Janík <Pavel@Janik.cz>
parents:
42006
diff
changeset
|
3729 {NULL, 0} |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3730 }; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3731 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3732 |
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3733 #ifndef HAVE_XSCREENNUMBEROFSCREEN |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3734 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3735 /* Value is the screen number of screen SCR. This is a substitute for |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3736 the X function with the same name when that doesn't exist. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3737 |
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3738 int |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3739 XScreenNumberOfScreen (scr) |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3740 register Screen *scr; |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3741 { |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3742 Display *dpy = scr->display; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3743 int i; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3744 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3745 for (i = 0; i < dpy->nscreens; ++i) |
40325
2eb0395c1697
(XScreenNumberOfScreen): Fix struct to pointer
Gerd Moellmann <gerd@gnu.org>
parents:
40279
diff
changeset
|
3746 if (scr == dpy->screens + i) |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3747 break; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3748 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3749 return i; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3750 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3751 |
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3752 #endif /* not HAVE_XSCREENNUMBEROFSCREEN */ |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3753 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3754 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3755 /* Select the visual that should be used on display DPYINFO. Set |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3756 members of DPYINFO appropriately. Called from x_term_init. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3757 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3758 void |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3759 select_visual (dpyinfo) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3760 struct x_display_info *dpyinfo; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3761 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3762 Display *dpy = dpyinfo->display; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3763 Screen *screen = dpyinfo->screen; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3764 Lisp_Object value; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3765 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3766 /* See if a visual is specified. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3767 value = display_x_get_resource (dpyinfo, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3768 build_string ("visualClass"), |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3769 build_string ("VisualClass"), |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3770 Qnil, Qnil); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3771 if (STRINGP (value)) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3772 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3773 /* VALUE should be of the form CLASS-DEPTH, where CLASS is one |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3774 of `PseudoColor', `TrueColor' etc. and DEPTH is the color |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3775 depth, a decimal number. NAME is compared with case ignored. */ |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3776 char *s = (char *) alloca (SBYTES (value) + 1); |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3777 char *dash; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3778 int i, class = -1; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3779 XVisualInfo vinfo; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3780 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3781 strcpy (s, SDATA (value)); |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3782 dash = index (s, '-'); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3783 if (dash) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3784 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3785 dpyinfo->n_planes = atoi (dash + 1); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3786 *dash = '\0'; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3787 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3788 else |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3789 /* We won't find a matching visual with depth 0, so that |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3790 an error will be printed below. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3791 dpyinfo->n_planes = 0; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3792 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3793 /* Determine the visual class. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3794 for (i = 0; visual_classes[i].name; ++i) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3795 if (xstricmp (s, visual_classes[i].name) == 0) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3796 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3797 class = visual_classes[i].class; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3798 break; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3799 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3800 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3801 /* Look up a matching visual for the specified class. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3802 if (class == -1 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3803 || !XMatchVisualInfo (dpy, XScreenNumberOfScreen (screen), |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3804 dpyinfo->n_planes, class, &vinfo)) |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3805 fatal ("Invalid visual specification `%s'", SDATA (value)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3806 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3807 dpyinfo->visual = vinfo.visual; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3808 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3809 else |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3810 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3811 int n_visuals; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3812 XVisualInfo *vinfo, vinfo_template; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3813 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3814 dpyinfo->visual = DefaultVisualOfScreen (screen); |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
3815 |
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
3816 #ifdef HAVE_X11R4 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3817 vinfo_template.visualid = XVisualIDFromVisual (dpyinfo->visual); |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
3818 #else |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3819 vinfo_template.visualid = dpyinfo->visual->visualid; |
1050
133bad38bde1
* xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user
Jim Blandy <jimb@redhat.com>
parents:
1018
diff
changeset
|
3820 #endif |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3821 vinfo_template.screen = XScreenNumberOfScreen (screen); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3822 vinfo = XGetVisualInfo (dpy, VisualIDMask | VisualScreenMask, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3823 &vinfo_template, &n_visuals); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3824 if (n_visuals != 1) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3825 fatal ("Can't get proper X visual info"); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3826 |
28199
56a776500341
* xfns.c (select_visual): Don't set dpyinfo->n_planes to the
Gerd Moellmann <gerd@gnu.org>
parents:
28144
diff
changeset
|
3827 dpyinfo->n_planes = vinfo->depth; |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3828 XFree ((char *) vinfo); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3829 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3830 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3831 |
389 | 3832 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3833 /* Return the X display structure for the display named NAME. |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3834 Open a new connection if necessary. */ |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3835 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3836 struct x_display_info * |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3837 x_display_info_for_name (name) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3838 Lisp_Object name; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3839 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3840 Lisp_Object names; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3841 struct x_display_info *dpyinfo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3842 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3843 CHECK_STRING (name); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3844 |
12381
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
3845 if (! EQ (Vwindow_system, intern ("x"))) |
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
3846 error ("Not using X Windows"); |
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
3847 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3848 for (dpyinfo = x_display_list, names = x_display_name_list; |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3849 dpyinfo; |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
3850 dpyinfo = dpyinfo->next, names = XCDR (names)) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3851 { |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3852 Lisp_Object tem; |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
3853 tem = Fstring_equal (XCAR (XCAR (names)), name); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3854 if (!NILP (tem)) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3855 return dpyinfo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3856 } |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3857 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3858 /* Use this general default value to start with. */ |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3859 Vx_resource_name = Vinvocation_name; |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3860 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3861 validate_x_resource_name (); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3862 |
34976
05c36b1fa618
(x_display_info_for_name): Cast 0 to "char *" in the call
Eli Zaretskii <eliz@gnu.org>
parents:
34911
diff
changeset
|
3863 dpyinfo = x_term_init (name, (char *)0, |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3864 (char *) SDATA (Vx_resource_name)); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3865 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3866 if (dpyinfo == 0) |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3867 error ("Cannot connect to X server %s", SDATA (name)); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3868 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3869 x_in_use = 1; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3870 XSETFASTINT (Vwindow_system_version, 11); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3871 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3872 return dpyinfo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3873 } |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3874 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3875 |
389 | 3876 DEFUN ("x-open-connection", Fx_open_connection, Sx_open_connection, |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3877 1, 3, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3878 doc: /* Open a connection to an X server. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3879 DISPLAY is the name of the display to connect to. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3880 Optional second arg XRM-STRING is a string of resources in xrdb format. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3881 If the optional third arg MUST-SUCCEED is non-nil, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3882 terminate Emacs if we can't open the connection. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3883 (display, xrm_string, must_succeed) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3884 Lisp_Object display, xrm_string, must_succeed; |
389 | 3885 { |
3886 unsigned char *xrm_option; | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3887 struct x_display_info *dpyinfo; |
389 | 3888 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3889 CHECK_STRING (display); |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3890 if (! NILP (xrm_string)) |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3891 CHECK_STRING (xrm_string); |
389 | 3892 |
12381
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
3893 if (! EQ (Vwindow_system, intern ("x"))) |
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
3894 error ("Not using X Windows"); |
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
3895 |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3896 if (! NILP (xrm_string)) |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3897 xrm_option = (unsigned char *) SDATA (xrm_string); |
389 | 3898 else |
3899 xrm_option = (unsigned char *) 0; | |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3900 |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3901 validate_x_resource_name (); |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3902 |
7802
d687e885fa6a
(Fx_open_connection): Set up Vx_resource_name and xrm_option
Richard M. Stallman <rms@gnu.org>
parents:
7797
diff
changeset
|
3903 /* This is what opens the connection and sets x_current_display. |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3904 This also initializes many symbols, such as those used for input. */ |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3905 dpyinfo = x_term_init (display, xrm_option, |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3906 (char *) SDATA (Vx_resource_name)); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3907 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3908 if (dpyinfo == 0) |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3909 { |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3910 if (!NILP (must_succeed)) |
39907 | 3911 fatal ("Cannot connect to X server %s.\n\ |
3912 Check the DISPLAY environment variable or use `-d'.\n\ | |
47159
23b87fbdd685
(Fx_open_connection): Fix docstring. Patch from Rune Kleveland <runekl@viewpoint.no>.
Juanma Barranquero <lekktu@gmail.com>
parents:
47142
diff
changeset
|
3913 Also use the `xauth' program to verify that you have the proper\n\ |
23b87fbdd685
(Fx_open_connection): Fix docstring. Patch from Rune Kleveland <runekl@viewpoint.no>.
Juanma Barranquero <lekktu@gmail.com>
parents:
47142
diff
changeset
|
3914 authorization information needed to connect the X server.\n\ |
47086
527c24dbb2b1
(Fx_open_connection): Improve help when X connection
Simon Josefsson <jas@extundo.com>
parents:
47058
diff
changeset
|
3915 An insecure way to solve the problem may be to use `xhost'.\n", |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3916 SDATA (display)); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3917 else |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3918 error ("Cannot connect to X server %s", SDATA (display)); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3919 } |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3920 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3921 x_in_use = 1; |
7802
d687e885fa6a
(Fx_open_connection): Set up Vx_resource_name and xrm_option
Richard M. Stallman <rms@gnu.org>
parents:
7797
diff
changeset
|
3922 |
9327
b3398cf56fba
(Fx_open_connection): Don't use XFASTINT as an lvalue.
Karl Heuer <kwzh@gnu.org>
parents:
9285
diff
changeset
|
3923 XSETFASTINT (Vwindow_system_version, 11); |
389 | 3924 return Qnil; |
3925 } | |
3926 | |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3927 DEFUN ("x-close-connection", Fx_close_connection, |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3928 Sx_close_connection, 1, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3929 doc: /* Close the connection to DISPLAY's X server. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3930 For DISPLAY, specify either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3931 If DISPLAY is nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3932 (display) |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3933 Lisp_Object display; |
389 | 3934 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3935 struct x_display_info *dpyinfo = check_x_display_info (display); |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3936 int i; |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3937 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3938 if (dpyinfo->reference_count > 0) |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3939 error ("Display still has frames on it"); |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3940 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3941 BLOCK_INPUT; |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3942 /* Free the fonts in the font table. */ |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3943 for (i = 0; i < dpyinfo->n_fonts; i++) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3944 if (dpyinfo->font_table[i].name) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3945 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3946 XFreeFont (dpyinfo->display, dpyinfo->font_table[i].font); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3947 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3948 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3949 x_destroy_all_bitmaps (dpyinfo); |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3950 XSetCloseDownMode (dpyinfo->display, DestroyAll); |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3951 |
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3952 #ifdef USE_X_TOOLKIT |
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3953 XtCloseDisplay (dpyinfo->display); |
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3954 #else |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3955 XCloseDisplay (dpyinfo->display); |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3956 #endif |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3957 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3958 x_delete_display (dpyinfo); |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3959 UNBLOCK_INPUT; |
8782
51241477cfc5
Delete X11 conditionals.
Richard M. Stallman <rms@gnu.org>
parents:
8780
diff
changeset
|
3960 |
389 | 3961 return Qnil; |
3962 } | |
3963 | |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3964 DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3965 doc: /* Return the list of display names that Emacs has connections to. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3966 () |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3967 { |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3968 Lisp_Object tail, result; |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3969 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3970 result = Qnil; |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
3971 for (tail = x_display_name_list; ! NILP (tail); tail = XCDR (tail)) |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
3972 result = Fcons (XCAR (XCAR (tail)), result); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3973 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3974 return result; |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3975 } |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3976 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3977 DEFUN ("x-synchronize", Fx_synchronize, Sx_synchronize, 1, 2, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3978 doc: /* If ON is non-nil, report X errors as soon as the erring request is made. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3979 If ON is nil, allow buffering of requests. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3980 Turning on synchronization prohibits the Xlib routines from buffering |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3981 requests and seriously degrades performance, but makes debugging much |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3982 easier. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3983 The optional second argument DISPLAY specifies which display to act on. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3984 DISPLAY should be either a frame or a display name (a string). |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3985 If DISPLAY is omitted or nil, that stands for the selected frame's display. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3986 (on, display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3987 Lisp_Object display, on; |
389 | 3988 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3989 struct x_display_info *dpyinfo = check_x_display_info (display); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3990 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3991 XSynchronize (dpyinfo->display, !EQ (on, Qnil)); |
389 | 3992 |
3993 return Qnil; | |
3994 } | |
3995 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3996 /* Wait for responses to all X commands issued so far for frame F. */ |
5536 | 3997 |
3998 void | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3999 x_sync (f) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4000 FRAME_PTR f; |
5536 | 4001 { |
5558 | 4002 BLOCK_INPUT; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4003 XSync (FRAME_X_DISPLAY (f), False); |
5558 | 4004 UNBLOCK_INPUT; |
5536 | 4005 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4006 |
389 | 4007 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4008 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4009 Window properties |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4010 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4011 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4012 DEFUN ("x-change-window-property", Fx_change_window_property, |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4013 Sx_change_window_property, 2, 6, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4014 doc: /* Change window property PROP to VALUE on the X window of FRAME. |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4015 PROP must be a string. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4016 VALUE may be a string or a list of conses, numbers and/or strings. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4017 If an element in the list is a string, it is converted to |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4018 an Atom and the value of the Atom is used. If an element is a cons, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4019 it is converted to a 32 bit number where the car is the 16 top bits and the |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4020 cdr is the lower 16 bits. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4021 FRAME nil or omitted means use the selected frame. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4022 If TYPE is given and non-nil, it is the name of the type of VALUE. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4023 If TYPE is not given or nil, the type is STRING. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4024 FORMAT gives the size in bits of each element if VALUE is a list. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4025 It must be one of 8, 16 or 32. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4026 If VALUE is a string or FORMAT is nil or not given, FORMAT defaults to 8. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4027 If OUTER_P is non-nil, the property is changed for the outer X window of |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4028 FRAME. Default is to change on the edit X window. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4029 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4030 Value is VALUE. */) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4031 (prop, value, frame, type, format, outer_p) |
53825
6635e77a2c09
* xfns.c (x_create_bitmap_mask): Removed unused variable depth.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53787
diff
changeset
|
4032 Lisp_Object prop, value, frame, type, format, outer_p; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4033 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4034 struct frame *f = check_x_frame (frame); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4035 Atom prop_atom; |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4036 Atom target_type = XA_STRING; |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4037 int element_format = 8; |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4038 unsigned char *data; |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4039 int nelements; |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4040 Window w; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4041 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4042 CHECK_STRING (prop); |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4043 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4044 if (! NILP (format)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4045 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4046 CHECK_NUMBER (format); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4047 element_format = XFASTINT (format); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4048 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4049 if (element_format != 8 && element_format != 16 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4050 && element_format != 32) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4051 error ("FORMAT must be one of 8, 16 or 32"); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4052 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4053 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4054 if (CONSP (value)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4055 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4056 nelements = x_check_property_data (value); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4057 if (nelements == -1) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4058 error ("Bad data in VALUE, must be number, string or cons"); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4059 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4060 if (element_format == 8) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4061 data = (unsigned char *) xmalloc (nelements); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4062 else if (element_format == 16) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4063 data = (unsigned char *) xmalloc (nelements*2); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4064 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4065 data = (unsigned char *) xmalloc (nelements*4); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4066 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4067 x_fill_property_data (FRAME_X_DISPLAY (f), value, data, element_format); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4068 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4069 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4070 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4071 CHECK_STRING (value); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4072 data = SDATA (value); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4073 nelements = SCHARS (value); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4074 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4075 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4076 BLOCK_INPUT; |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4077 prop_atom = XInternAtom (FRAME_X_DISPLAY (f), SDATA (prop), False); |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4078 if (! NILP (type)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4079 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4080 CHECK_STRING (type); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4081 target_type = XInternAtom (FRAME_X_DISPLAY (f), SDATA (type), False); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4082 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4083 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4084 if (! NILP (outer_p)) w = FRAME_OUTER_WINDOW (f); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4085 else w = FRAME_X_WINDOW (f); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4086 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4087 XChangeProperty (FRAME_X_DISPLAY (f), w, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4088 prop_atom, target_type, element_format, PropModeReplace, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4089 data, nelements); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4090 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4091 if (CONSP (value)) xfree (data); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4092 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4093 /* Make sure the property is set when we return. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4094 XFlush (FRAME_X_DISPLAY (f)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4095 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4096 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4097 return value; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4098 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4099 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4100 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4101 DEFUN ("x-delete-window-property", Fx_delete_window_property, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4102 Sx_delete_window_property, 1, 2, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4103 doc: /* Remove window property PROP from X window of FRAME. |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4104 FRAME nil or omitted means use the selected frame. Value is PROP. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4105 (prop, frame) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4106 Lisp_Object prop, frame; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4107 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4108 struct frame *f = check_x_frame (frame); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4109 Atom prop_atom; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4110 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4111 CHECK_STRING (prop); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4112 BLOCK_INPUT; |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4113 prop_atom = XInternAtom (FRAME_X_DISPLAY (f), SDATA (prop), False); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4114 XDeleteProperty (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), prop_atom); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4115 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4116 /* Make sure the property is removed when we return. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4117 XFlush (FRAME_X_DISPLAY (f)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4118 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4119 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4120 return prop; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4121 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4122 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4123 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4124 DEFUN ("x-window-property", Fx_window_property, Sx_window_property, |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4125 1, 6, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4126 doc: /* Value is the value of window property PROP on FRAME. |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4127 If FRAME is nil or omitted, use the selected frame. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4128 If TYPE is nil or omitted, get the property as a string. Otherwise TYPE |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4129 is the name of the Atom that denotes the type expected. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4130 If SOURCE is non-nil, get the property on that window instead of from |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4131 FRAME. The number 0 denotes the root window. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4132 If DELETE_P is non-nil, delete the property after retreiving it. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4133 If VECTOR_RET_P is non-nil, don't return a string but a vector of values. |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4134 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4135 Value is nil if FRAME hasn't a property with name PROP or if PROP has |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4136 no value of TYPE. */) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4137 (prop, frame, type, source, delete_p, vector_ret_p) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4138 Lisp_Object prop, frame, type, source, delete_p, vector_ret_p; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4139 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4140 struct frame *f = check_x_frame (frame); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4141 Atom prop_atom; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4142 int rc; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4143 Lisp_Object prop_value = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4144 char *tmp_data = NULL; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4145 Atom actual_type; |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4146 Atom target_type = XA_STRING; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4147 int actual_format; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4148 unsigned long actual_size, bytes_remaining; |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4149 Window target_window = FRAME_X_WINDOW (f); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4150 struct gcpro gcpro1; |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4151 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4152 GCPRO1 (prop_value); |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4153 CHECK_STRING (prop); |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4154 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4155 if (! NILP (source)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4156 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4157 if (NUMBERP (source)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4158 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4159 if (FLOATP (source)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4160 target_window = (Window) XFLOAT (source); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4161 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4162 target_window = XFASTINT (source); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4163 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4164 if (target_window == 0) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4165 target_window = FRAME_X_DISPLAY_INFO (f)->root_window; |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4166 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4167 else if (CONSP (source)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4168 target_window = cons_to_long (source); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4169 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4170 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4171 BLOCK_INPUT; |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4172 if (STRINGP (type)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4173 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4174 if (strcmp ("AnyPropertyType", SDATA (type)) == 0) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4175 target_type = AnyPropertyType; |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4176 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4177 target_type = XInternAtom (FRAME_X_DISPLAY (f), SDATA (type), False); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4178 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4179 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4180 prop_atom = XInternAtom (FRAME_X_DISPLAY (f), SDATA (prop), False); |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4181 rc = XGetWindowProperty (FRAME_X_DISPLAY (f), target_window, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4182 prop_atom, 0, 0, False, target_type, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4183 &actual_type, &actual_format, &actual_size, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4184 &bytes_remaining, (unsigned char **) &tmp_data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4185 if (rc == Success) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4186 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4187 int size = bytes_remaining; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4188 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4189 XFree (tmp_data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4190 tmp_data = NULL; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4191 |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4192 rc = XGetWindowProperty (FRAME_X_DISPLAY (f), target_window, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4193 prop_atom, 0, bytes_remaining, |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4194 ! NILP (delete_p), target_type, |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4195 &actual_type, &actual_format, |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4196 &actual_size, &bytes_remaining, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4197 (unsigned char **) &tmp_data); |
39277
df33715cdcf8
(Fx_window_property): Handle case that property gets
Gerd Moellmann <gerd@gnu.org>
parents:
39159
diff
changeset
|
4198 if (rc == Success && tmp_data) |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4199 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4200 if (NILP (vector_ret_p)) |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4201 prop_value = make_string (tmp_data, size); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4202 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4203 prop_value = x_property_data_to_lisp (f, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4204 (unsigned char *) tmp_data, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4205 actual_type, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4206 actual_format, |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4207 actual_size); |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4208 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4209 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4210 if (tmp_data) XFree (tmp_data); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4211 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4212 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4213 UNBLOCK_INPUT; |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4214 UNGCPRO; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4215 return prop_value; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4216 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4217 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4218 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4219 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4220 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4221 Busy cursor |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4222 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4223 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4224 /* If non-null, an asynchronous timer that, when it expires, displays |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4225 an hourglass cursor on all frames. */ |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4226 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4227 static struct atimer *hourglass_atimer; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4228 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4229 /* Non-zero means an hourglass cursor is currently shown. */ |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4230 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4231 static int hourglass_shown_p; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4232 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4233 /* Number of seconds to wait before displaying an hourglass cursor. */ |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4234 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4235 static Lisp_Object Vhourglass_delay; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4236 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4237 /* Default number of seconds to wait before displaying an hourglass |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4238 cursor. */ |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4239 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4240 #define DEFAULT_HOURGLASS_DELAY 1 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4241 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4242 /* Function prototypes. */ |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4243 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4244 static void show_hourglass P_ ((struct atimer *)); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4245 static void hide_hourglass P_ ((void)); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4246 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4247 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4248 /* Cancel a currently active hourglass timer, and start a new one. */ |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4249 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4250 void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4251 start_hourglass () |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4252 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4253 EMACS_TIME delay; |
27915
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4254 int secs, usecs = 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4255 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4256 cancel_hourglass (); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4257 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4258 if (INTEGERP (Vhourglass_delay) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4259 && XINT (Vhourglass_delay) > 0) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4260 secs = XFASTINT (Vhourglass_delay); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4261 else if (FLOATP (Vhourglass_delay) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4262 && XFLOAT_DATA (Vhourglass_delay) > 0) |
27915
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4263 { |
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4264 Lisp_Object tem; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4265 tem = Ftruncate (Vhourglass_delay, Qnil); |
27915
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4266 secs = XFASTINT (tem); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4267 usecs = (XFLOAT_DATA (Vhourglass_delay) - secs) * 1000000; |
27915
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4268 } |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4269 else |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4270 secs = DEFAULT_HOURGLASS_DELAY; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4271 |
27915
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4272 EMACS_SET_SECS_USECS (delay, secs, usecs); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4273 hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay, |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4274 show_hourglass, NULL); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4275 } |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4276 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4277 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4278 /* Cancel the hourglass cursor timer if active, hide a busy cursor if |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4279 shown. */ |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4280 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4281 void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4282 cancel_hourglass () |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4283 { |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4284 if (hourglass_atimer) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4285 { |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4286 cancel_atimer (hourglass_atimer); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4287 hourglass_atimer = NULL; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4288 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4289 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4290 if (hourglass_shown_p) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4291 hide_hourglass (); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4292 } |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4293 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4294 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4295 /* Timer function of hourglass_atimer. TIMER is equal to |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4296 hourglass_atimer. |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4297 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4298 Display an hourglass pointer on all frames by mapping the frames' |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4299 hourglass_window. Set the hourglass_p flag in the frames' |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4300 output_data.x structure to indicate that an hourglass cursor is |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4301 shown on the frames. */ |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4302 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4303 static void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4304 show_hourglass (timer) |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4305 struct atimer *timer; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4306 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4307 /* The timer implementation will cancel this timer automatically |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4308 after this function has run. Set hourglass_atimer to null |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4309 so that we know the timer doesn't have to be canceled. */ |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4310 hourglass_atimer = NULL; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4311 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4312 if (!hourglass_shown_p) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4313 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4314 Lisp_Object rest, frame; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4315 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4316 BLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4317 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4318 FOR_EACH_FRAME (rest, frame) |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4319 { |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4320 struct frame *f = XFRAME (frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4321 |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4322 if (FRAME_LIVE_P (f) && FRAME_X_P (f) && FRAME_X_DISPLAY (f)) |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4323 { |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4324 Display *dpy = FRAME_X_DISPLAY (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4325 |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4326 #ifdef USE_X_TOOLKIT |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4327 if (f->output_data.x->widget) |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4328 #else |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4329 if (FRAME_OUTER_WINDOW (f)) |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4330 #endif |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4331 { |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4332 f->output_data.x->hourglass_p = 1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4333 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4334 if (!f->output_data.x->hourglass_window) |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4335 { |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4336 unsigned long mask = CWCursor; |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4337 XSetWindowAttributes attrs; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4338 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4339 attrs.cursor = f->output_data.x->hourglass_cursor; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4340 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4341 f->output_data.x->hourglass_window |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4342 = XCreateWindow (dpy, FRAME_OUTER_WINDOW (f), |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4343 0, 0, 32000, 32000, 0, 0, |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4344 InputOnly, |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4345 CopyFromParent, |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4346 mask, &attrs); |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4347 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4348 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4349 XMapRaised (dpy, f->output_data.x->hourglass_window); |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4350 XFlush (dpy); |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4351 } |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4352 } |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4353 } |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4354 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4355 hourglass_shown_p = 1; |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4356 UNBLOCK_INPUT; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4357 } |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4358 } |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4359 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4360 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4361 /* Hide the hourglass pointer on all frames, if it is currently |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4362 shown. */ |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4363 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4364 static void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4365 hide_hourglass () |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4366 { |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4367 if (hourglass_shown_p) |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4368 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4369 Lisp_Object rest, frame; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4370 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4371 BLOCK_INPUT; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4372 FOR_EACH_FRAME (rest, frame) |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4373 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4374 struct frame *f = XFRAME (frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4375 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4376 if (FRAME_X_P (f) |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4377 /* Watch out for newly created frames. */ |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4378 && f->output_data.x->hourglass_window) |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4379 { |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4380 XUnmapWindow (FRAME_X_DISPLAY (f), |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4381 f->output_data.x->hourglass_window); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4382 /* Sync here because XTread_socket looks at the |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4383 hourglass_p flag that is reset to zero below. */ |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4384 XSync (FRAME_X_DISPLAY (f), False); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4385 f->output_data.x->hourglass_p = 0; |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4386 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4387 } |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4388 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4389 hourglass_shown_p = 0; |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4390 UNBLOCK_INPUT; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4391 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4392 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4393 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4394 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4395 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4396 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4397 Tool tips |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4398 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4399 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4400 static Lisp_Object x_create_tip_frame P_ ((struct x_display_info *, |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4401 Lisp_Object, Lisp_Object)); |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4402 static void compute_tip_xy P_ ((struct frame *, Lisp_Object, Lisp_Object, |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4403 Lisp_Object, int, int, int *, int *)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4404 |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4405 /* The frame of a currently visible tooltip. */ |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4406 |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4407 Lisp_Object tip_frame; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4408 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4409 /* If non-nil, a timer started that hides the last tooltip when it |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4410 fires. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4411 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4412 Lisp_Object tip_timer; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4413 Window tip_window; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4414 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4415 /* If non-nil, a vector of 3 elements containing the last args |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4416 with which x-show-tip was called. See there. */ |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4417 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4418 Lisp_Object last_show_tip_args; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4419 |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4420 /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */ |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4421 |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4422 Lisp_Object Vx_max_tooltip_size; |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4423 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4424 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4425 static Lisp_Object |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4426 unwind_create_tip_frame (frame) |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4427 Lisp_Object frame; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4428 { |
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4429 Lisp_Object deleted; |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4430 |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4431 deleted = unwind_create_frame (frame); |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4432 if (EQ (deleted, Qt)) |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4433 { |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4434 tip_window = None; |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4435 tip_frame = Qnil; |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4436 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4437 |
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4438 return deleted; |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4439 } |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4440 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4441 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4442 /* Create a frame for a tooltip on the display described by DPYINFO. |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4443 PARMS is a list of frame parameters. TEXT is the string to |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4444 display in the tip frame. Value is the frame. |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4445 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4446 Note that functions called here, esp. x_default_parameter can |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4447 signal errors, for instance when a specified color name is |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4448 undefined. We have to make sure that we're in a consistent state |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4449 when this happens. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4450 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4451 static Lisp_Object |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4452 x_create_tip_frame (dpyinfo, parms, text) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4453 struct x_display_info *dpyinfo; |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4454 Lisp_Object parms, text; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4455 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4456 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4457 Lisp_Object frame, tem; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4458 Lisp_Object name; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4459 long window_prompting = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4460 int width, height; |
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
4461 int count = SPECPDL_INDEX (); |
25715
feaedc03dbc8
(x_set_background_color): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents:
25691
diff
changeset
|
4462 struct gcpro gcpro1, gcpro2, gcpro3; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4463 struct kboard *kb; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4464 int face_change_count_before = face_change_count; |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4465 Lisp_Object buffer; |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4466 struct buffer *old_buffer; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4467 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4468 check_x (); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4469 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4470 /* Use this general default value to start with until we know if |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4471 this frame has a specified name. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4472 Vx_resource_name = Vinvocation_name; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4473 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4474 #ifdef MULTI_KBOARD |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4475 kb = dpyinfo->kboard; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4476 #else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4477 kb = &the_only_kboard; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4478 #endif |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4479 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4480 /* Get the name of the frame to use for resource lookup. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4481 name = x_get_arg (dpyinfo, parms, Qname, "name", "Name", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4482 if (!STRINGP (name) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4483 && !EQ (name, Qunbound) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4484 && !NILP (name)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4485 error ("Invalid frame name--not a string or nil"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4486 Vx_resource_name = name; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4487 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4488 frame = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4489 GCPRO3 (parms, name, frame); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4490 f = make_frame (1); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4491 XSETFRAME (frame, f); |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4492 |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4493 buffer = Fget_buffer_create (build_string (" *tip*")); |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4494 Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4495 old_buffer = current_buffer; |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4496 set_buffer_internal_1 (XBUFFER (buffer)); |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4497 current_buffer->truncate_lines = Qnil; |
55492
43663119f752
(x_create_tip_frame): Bind inhibit-read-only and
Kenichi Handa <handa@m17n.org>
parents:
54392
diff
changeset
|
4498 specbind (Qinhibit_read_only, Qt); |
43663119f752
(x_create_tip_frame): Bind inhibit-read-only and
Kenichi Handa <handa@m17n.org>
parents:
54392
diff
changeset
|
4499 specbind (Qinhibit_modification_hooks, Qt); |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4500 Ferase_buffer (); |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4501 Finsert (1, &text); |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4502 set_buffer_internal_1 (old_buffer); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4503 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4504 FRAME_CAN_HAVE_SCROLL_BARS (f) = 0; |
34598
afd90be3ed75
(x_create_tip_frame): Use unwind_create_tip_frame,
Gerd Moellmann <gerd@gnu.org>
parents:
34549
diff
changeset
|
4505 record_unwind_protect (unwind_create_tip_frame, frame); |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4506 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4507 /* By setting the output method, we're essentially saying that |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4508 the frame is live, as per FRAME_LIVE_P. If we get a signal |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4509 from this point on, x_destroy_window might screw up reference |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4510 counts etc. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4511 f->output_method = output_x_window; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4512 f->output_data.x = (struct x_output *) xmalloc (sizeof (struct x_output)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4513 bzero (f->output_data.x, sizeof (struct x_output)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4514 f->output_data.x->icon_bitmap = -1; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4515 FRAME_FONTSET (f) = -1; |
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4516 f->output_data.x->scroll_bar_foreground_pixel = -1; |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4517 f->output_data.x->scroll_bar_background_pixel = -1; |
39619
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
4518 #ifdef USE_TOOLKIT_SCROLL_BARS |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
4519 f->output_data.x->scroll_bar_top_shadow_pixel = -1; |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
4520 f->output_data.x->scroll_bar_bottom_shadow_pixel = -1; |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
4521 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4522 f->icon_name = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4523 FRAME_X_DISPLAY_INFO (f) = dpyinfo; |
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
4524 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4525 image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4526 dpyinfo_refcount = dpyinfo->reference_count; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4527 #endif /* GLYPH_DEBUG */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4528 #ifdef MULTI_KBOARD |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4529 FRAME_KBOARD (f) = kb; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4530 #endif |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4531 f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4532 f->output_data.x->explicit_parent = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4533 |
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4534 /* These colors will be set anyway later, but it's important |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4535 to get the color reference counts right, so initialize them! */ |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4536 { |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4537 Lisp_Object black; |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4538 struct gcpro gcpro1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4539 |
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4540 black = build_string ("black"); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4541 GCPRO1 (black); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4542 f->output_data.x->foreground_pixel |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4543 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4544 f->output_data.x->background_pixel |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4545 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4546 f->output_data.x->cursor_pixel |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4547 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4548 f->output_data.x->cursor_foreground_pixel |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4549 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4550 f->output_data.x->border_pixel |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4551 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4552 f->output_data.x->mouse_pixel |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4553 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4554 UNGCPRO; |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4555 } |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4556 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4557 /* Set the name; the functions to which we pass f expect the name to |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4558 be set. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4559 if (EQ (name, Qunbound) || NILP (name)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4560 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4561 f->name = build_string (dpyinfo->x_id_name); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4562 f->explicit_name = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4563 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4564 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4565 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4566 f->name = name; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4567 f->explicit_name = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4568 /* use the frame's title when getting resources for this frame. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4569 specbind (Qx_resource_name, name); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4570 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4571 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4572 /* Extract the window parameters from the supplied values that are |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4573 needed to determine window geometry. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4574 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4575 Lisp_Object font; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4576 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4577 font = x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4578 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4579 BLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4580 /* First, try whatever font the caller has specified. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4581 if (STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4582 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4583 tem = Fquery_fontset (font, Qnil); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4584 if (STRINGP (tem)) |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4585 font = x_new_fontset (f, SDATA (tem)); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4586 else |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4587 font = x_new_font (f, SDATA (font)); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4588 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4589 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4590 /* Try out a font which we hope has bold and italic variations. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4591 if (!STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4592 font = x_new_font (f, "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4593 if (!STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4594 font = x_new_font (f, "-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-1"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4595 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4596 font = x_new_font (f, "-*-*-medium-r-normal-*-*-140-*-*-c-*-iso8859-1"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4597 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4598 /* This was formerly the first thing tried, but it finds too many fonts |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4599 and takes too long. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4600 font = x_new_font (f, "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4601 /* If those didn't work, look for something which will at least work. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4602 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4603 font = x_new_font (f, "-*-fixed-*-*-*-*-*-140-*-*-c-*-iso8859-1"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4604 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4605 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4606 font = build_string ("fixed"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4607 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4608 x_default_parameter (f, parms, Qfont, font, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4609 "font", "Font", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4610 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4611 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4612 x_default_parameter (f, parms, Qborder_width, make_number (2), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4613 "borderWidth", "BorderWidth", RES_TYPE_NUMBER); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4614 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4615 /* This defaults to 2 in order to match xterm. We recognize either |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4616 internalBorderWidth or internalBorder (which is what xterm calls |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4617 it). */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4618 if (NILP (Fassq (Qinternal_border_width, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4619 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4620 Lisp_Object value; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4621 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4622 value = x_get_arg (dpyinfo, parms, Qinternal_border_width, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4623 "internalBorder", "internalBorder", RES_TYPE_NUMBER); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4624 if (! EQ (value, Qunbound)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4625 parms = Fcons (Fcons (Qinternal_border_width, value), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4626 parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4627 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4628 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4629 x_default_parameter (f, parms, Qinternal_border_width, make_number (1), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4630 "internalBorderWidth", "internalBorderWidth", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4631 RES_TYPE_NUMBER); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4632 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4633 /* Also do the stuff which must be set before the window exists. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4634 x_default_parameter (f, parms, Qforeground_color, build_string ("black"), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4635 "foreground", "Foreground", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4636 x_default_parameter (f, parms, Qbackground_color, build_string ("white"), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4637 "background", "Background", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4638 x_default_parameter (f, parms, Qmouse_color, build_string ("black"), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4639 "pointerColor", "Foreground", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4640 x_default_parameter (f, parms, Qcursor_color, build_string ("black"), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4641 "cursorColor", "Foreground", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4642 x_default_parameter (f, parms, Qborder_color, build_string ("black"), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4643 "borderColor", "BorderColor", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4644 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4645 /* Init faces before x_default_parameter is called for scroll-bar |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4646 parameters because that function calls x_set_scroll_bar_width, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4647 which calls change_frame_size, which calls Fset_window_buffer, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4648 which runs hooks, which call Fvertical_motion. At the end, we |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4649 end up in init_iterator with a null face cache, which should not |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4650 happen. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4651 init_frame_faces (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4652 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4653 f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window; |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
4654 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
4655 window_prompting = x_figure_window_size (f, parms, 0); |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
4656 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4657 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4658 XSetWindowAttributes attrs; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4659 unsigned long mask; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4660 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4661 BLOCK_INPUT; |
33657
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4662 mask = CWBackPixel | CWOverrideRedirect | CWEventMask; |
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4663 if (DoesSaveUnders (dpyinfo->screen)) |
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4664 mask |= CWSaveUnder; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4665 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
4666 /* Window managers look at the override-redirect flag to determine |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
4667 whether or net to give windows a decoration (Xlib spec, chapter |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4668 3.2.8). */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4669 attrs.override_redirect = True; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4670 attrs.save_under = True; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4671 attrs.background_pixel = FRAME_BACKGROUND_PIXEL (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4672 /* Arrange for getting MapNotify and UnmapNotify events. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4673 attrs.event_mask = StructureNotifyMask; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4674 tip_window |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4675 = FRAME_X_WINDOW (f) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4676 = XCreateWindow (FRAME_X_DISPLAY (f), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4677 FRAME_X_DISPLAY_INFO (f)->root_window, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4678 /* x, y, width, height */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4679 0, 0, 1, 1, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4680 /* Border. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4681 1, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4682 CopyFromParent, InputOutput, CopyFromParent, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4683 mask, &attrs); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4684 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4685 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4686 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4687 x_make_gc (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4688 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4689 x_default_parameter (f, parms, Qauto_raise, Qnil, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4690 "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4691 x_default_parameter (f, parms, Qauto_lower, Qnil, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4692 "autoLower", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4693 x_default_parameter (f, parms, Qcursor_type, Qbox, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4694 "cursorType", "CursorType", RES_TYPE_SYMBOL); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4695 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4696 /* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size. |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4697 Change will not be effected unless different from the current |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4698 FRAME_LINES (f). */ |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4699 width = FRAME_COLS (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4700 height = FRAME_LINES (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4701 SET_FRAME_COLS (f, 0); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4702 FRAME_LINES (f) = 0; |
25363
bf0488244270
Call change_frame_size and do_pending_window_change with
Gerd Moellmann <gerd@gnu.org>
parents:
25335
diff
changeset
|
4703 change_frame_size (f, height, width, 1, 0, 0); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4704 |
47731
755c4233cfba
* frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents:
47434
diff
changeset
|
4705 /* Add `tooltip' frame parameter's default value. */ |
755c4233cfba
* frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents:
47434
diff
changeset
|
4706 if (NILP (Fframe_parameter (frame, intern ("tooltip")))) |
755c4233cfba
* frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents:
47434
diff
changeset
|
4707 Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), |
755c4233cfba
* frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents:
47434
diff
changeset
|
4708 Qnil)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4709 |
35042
3088c9745e92
(x_create_tip_frame): Call face-set-after-frame-default,
Gerd Moellmann <gerd@gnu.org>
parents:
34976
diff
changeset
|
4710 /* Set up faces after all frame parameters are known. This call |
35508
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4711 also merges in face attributes specified for new frames. |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4712 |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4713 Frame parameters may be changed if .Xdefaults contains |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4714 specifications for the default font. For example, if there is an |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4715 `Emacs.default.attributeBackground: pink', the `background-color' |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4716 attribute of the frame get's set, which let's the internal border |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4717 of the tooltip frame appear in pink. Prevent this. */ |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4718 { |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4719 Lisp_Object bg = Fframe_parameter (frame, Qbackground_color); |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4720 |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4721 /* Set tip_frame here, so that */ |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4722 tip_frame = frame; |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4723 call1 (Qface_set_after_frame_default, frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4724 |
35508
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4725 if (!EQ (bg, Fframe_parameter (frame, Qbackground_color))) |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4726 Fmodify_frame_parameters (frame, Fcons (Fcons (Qbackground_color, bg), |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4727 Qnil)); |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4728 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4729 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4730 f->no_split = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4731 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4732 UNGCPRO; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4733 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4734 /* It is now ok to make the frame official even if we get an error |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4735 below. And the frame needs to be on Vframe_list or making it |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4736 visible won't work. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4737 Vframe_list = Fcons (frame, Vframe_list); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4738 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4739 /* Now that the frame is official, it counts as a reference to |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4740 its display. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4741 FRAME_X_DISPLAY_INFO (f)->reference_count++; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4742 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4743 /* Setting attributes of faces of the tooltip frame from resources |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4744 and similar will increment face_change_count, which leads to the |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4745 clearing of all current matrices. Since this isn't necessary |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4746 here, avoid it by resetting face_change_count to the value it |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4747 had before we created the tip frame. */ |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4748 face_change_count = face_change_count_before; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4749 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4750 /* Discard the unwind_protect. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4751 return unbind_to (count, frame); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4752 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4753 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4754 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4755 /* Compute where to display tip frame F. PARMS is the list of frame |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4756 parameters for F. DX and DY are specified offsets from the current |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4757 location of the mouse. WIDTH and HEIGHT are the width and height |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4758 of the tooltip. Return coordinates relative to the root window of |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4759 the display in *ROOT_X, and *ROOT_Y. */ |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4760 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4761 static void |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4762 compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y) |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4763 struct frame *f; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4764 Lisp_Object parms, dx, dy; |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4765 int width, height; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4766 int *root_x, *root_y; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4767 { |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4768 Lisp_Object left, top; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4769 int win_x, win_y; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4770 Window root, child; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4771 unsigned pmask; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4772 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4773 /* User-specified position? */ |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4774 left = Fcdr (Fassq (Qleft, parms)); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4775 top = Fcdr (Fassq (Qtop, parms)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4776 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4777 /* Move the tooltip window where the mouse pointer is. Resize and |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4778 show it. */ |
41449
4416668397d7
(compute_tip_xy): Initialize root_x and root_y from
Jason Rumney <jasonr@gnu.org>
parents:
41132
diff
changeset
|
4779 if (!INTEGERP (left) || !INTEGERP (top)) |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4780 { |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4781 BLOCK_INPUT; |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4782 XQueryPointer (FRAME_X_DISPLAY (f), FRAME_X_DISPLAY_INFO (f)->root_window, |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4783 &root, &child, root_x, root_y, &win_x, &win_y, &pmask); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4784 UNBLOCK_INPUT; |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4785 } |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4786 |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4787 if (INTEGERP (top)) |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4788 *root_y = XINT (top); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4789 else if (*root_y + XINT (dy) - height < 0) |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4790 *root_y -= XINT (dy); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4791 else |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4792 { |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4793 *root_y -= height; |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4794 *root_y += XINT (dy); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4795 } |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4796 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4797 if (INTEGERP (left)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4798 *root_x = XINT (left); |
42247
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4799 else if (*root_x + XINT (dx) + width <= FRAME_X_DISPLAY_INFO (f)->width) |
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4800 /* It fits to the right of the pointer. */ |
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4801 *root_x += XINT (dx); |
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4802 else if (width + XINT (dx) <= *root_x) |
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4803 /* It fits to the left of the pointer. */ |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4804 *root_x -= width + XINT (dx); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4805 else |
42247
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4806 /* Put it left-justified on the screen--it ought to fit that way. */ |
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4807 *root_x = 0; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4808 } |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4809 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4810 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4811 DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4812 doc: /* Show STRING in a "tooltip" window on frame FRAME. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4813 A tooltip window is a small X window displaying a string. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4814 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4815 FRAME nil or omitted means use the selected frame. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4816 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4817 PARMS is an optional list of frame parameters which can be used to |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4818 change the tooltip's appearance. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4819 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4820 Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4821 means use the default timeout of 5 seconds. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4822 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4823 If the list of frame parameters PARAMS contains a `left' parameters, |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4824 the tooltip is displayed at that x-position. Otherwise it is |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4825 displayed at the mouse position, with offset DX added (default is 5 if |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4826 DX isn't specified). Likewise for the y-position; if a `top' frame |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4827 parameter is specified, it determines the y-position of the tooltip |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4828 window, otherwise it is displayed at the mouse position, with offset |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4829 DY added (default is -10). |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4830 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4831 A tooltip's maximum size is specified by `x-max-tooltip-size'. |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4832 Text larger than the specified size is clipped. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4833 (string, frame, parms, timeout, dx, dy) |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4834 Lisp_Object string, frame, parms, timeout, dx, dy; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4835 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4836 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4837 struct window *w; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4838 int root_x, root_y; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4839 struct buffer *old_buffer; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4840 struct text_pos pos; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4841 int i, width, height; |
26980
f0d5e95ccce9
(Fx_show_tip): Gcpro `timeout' too.
Dave Love <fx@gnu.org>
parents:
26978
diff
changeset
|
4842 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4843 int old_windows_or_buffers_changed = windows_or_buffers_changed; |
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
4844 int count = SPECPDL_INDEX (); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4845 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4846 specbind (Qinhibit_redisplay, Qt); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4847 |
26980
f0d5e95ccce9
(Fx_show_tip): Gcpro `timeout' too.
Dave Love <fx@gnu.org>
parents:
26978
diff
changeset
|
4848 GCPRO4 (string, parms, frame, timeout); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4849 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4850 CHECK_STRING (string); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4851 f = check_x_frame (frame); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4852 if (NILP (timeout)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4853 timeout = make_number (5); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4854 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4855 CHECK_NATNUM (timeout); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4856 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4857 if (NILP (dx)) |
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4858 dx = make_number (5); |
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4859 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4860 CHECK_NUMBER (dx); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4861 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4862 if (NILP (dy)) |
33589
5832e9020859
(Fx_show_tip): Use default y-offset of -10 so that
Gerd Moellmann <gerd@gnu.org>
parents:
33443
diff
changeset
|
4863 dy = make_number (-10); |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4864 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4865 CHECK_NUMBER (dy); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4866 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4867 if (NILP (last_show_tip_args)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4868 last_show_tip_args = Fmake_vector (make_number (3), Qnil); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4869 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4870 if (!NILP (tip_frame)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4871 { |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4872 Lisp_Object last_string = AREF (last_show_tip_args, 0); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4873 Lisp_Object last_frame = AREF (last_show_tip_args, 1); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4874 Lisp_Object last_parms = AREF (last_show_tip_args, 2); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4875 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4876 if (EQ (frame, last_frame) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4877 && !NILP (Fequal (last_string, string)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4878 && !NILP (Fequal (last_parms, parms))) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4879 { |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4880 struct frame *f = XFRAME (tip_frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4881 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4882 /* Only DX and DY have changed. */ |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4883 if (!NILP (tip_timer)) |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
4884 { |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
4885 Lisp_Object timer = tip_timer; |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
4886 tip_timer = Qnil; |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
4887 call1 (Qcancel_timer, timer); |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
4888 } |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4889 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4890 BLOCK_INPUT; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4891 compute_tip_xy (f, parms, dx, dy, FRAME_PIXEL_WIDTH (f), |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4892 FRAME_PIXEL_HEIGHT (f), &root_x, &root_y); |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4893 XMoveWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4894 root_x, root_y); |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4895 UNBLOCK_INPUT; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4896 goto start_timer; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4897 } |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4898 } |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4899 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4900 /* Hide a previous tip, if any. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4901 Fx_hide_tip (); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4902 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4903 ASET (last_show_tip_args, 0, string); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4904 ASET (last_show_tip_args, 1, frame); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4905 ASET (last_show_tip_args, 2, parms); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4906 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4907 /* Add default values to frame parameters. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4908 if (NILP (Fassq (Qname, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4909 parms = Fcons (Fcons (Qname, build_string ("tooltip")), parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4910 if (NILP (Fassq (Qinternal_border_width, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4911 parms = Fcons (Fcons (Qinternal_border_width, make_number (3)), parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4912 if (NILP (Fassq (Qborder_width, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4913 parms = Fcons (Fcons (Qborder_width, make_number (1)), parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4914 if (NILP (Fassq (Qborder_color, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4915 parms = Fcons (Fcons (Qborder_color, build_string ("lightyellow")), parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4916 if (NILP (Fassq (Qbackground_color, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4917 parms = Fcons (Fcons (Qbackground_color, build_string ("lightyellow")), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4918 parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4919 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4920 /* Create a frame for the tooltip, and record it in the global |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4921 variable tip_frame. */ |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4922 frame = x_create_tip_frame (FRAME_X_DISPLAY_INFO (f), parms, string); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4923 f = XFRAME (frame); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4924 |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4925 /* Set up the frame's root window. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4926 w = XWINDOW (FRAME_ROOT_WINDOW (f)); |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4927 w->left_col = w->top_line = make_number (0); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4928 |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4929 if (CONSP (Vx_max_tooltip_size) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4930 && INTEGERP (XCAR (Vx_max_tooltip_size)) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4931 && XINT (XCAR (Vx_max_tooltip_size)) > 0 |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4932 && INTEGERP (XCDR (Vx_max_tooltip_size)) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4933 && XINT (XCDR (Vx_max_tooltip_size)) > 0) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4934 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4935 w->total_cols = XCAR (Vx_max_tooltip_size); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4936 w->total_lines = XCDR (Vx_max_tooltip_size); |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4937 } |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4938 else |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4939 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4940 w->total_cols = make_number (80); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4941 w->total_lines = make_number (40); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4942 } |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4943 |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4944 FRAME_TOTAL_COLS (f) = XINT (w->total_cols); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4945 adjust_glyphs (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4946 w->pseudo_window_p = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4947 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4948 /* Display the tooltip text in a temporary buffer. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4949 old_buffer = current_buffer; |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4950 set_buffer_internal_1 (XBUFFER (XWINDOW (FRAME_ROOT_WINDOW (f))->buffer)); |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4951 current_buffer->truncate_lines = Qnil; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4952 clear_glyph_matrix (w->desired_matrix); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4953 clear_glyph_matrix (w->current_matrix); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4954 SET_TEXT_POS (pos, BEGV, BEGV_BYTE); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4955 try_window (FRAME_ROOT_WINDOW (f), pos); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4956 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4957 /* Compute width and height of the tooltip. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4958 width = height = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4959 for (i = 0; i < w->desired_matrix->nrows; ++i) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4960 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4961 struct glyph_row *row = &w->desired_matrix->rows[i]; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4962 struct glyph *last; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4963 int row_width; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4964 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4965 /* Stop at the first empty row at the end. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4966 if (!row->enabled_p || !row->displays_text_p) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4967 break; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4968 |
25082
ba6bf065b287
(x_create_tip_frame): Don't set bitmapIcon resource.
Gerd Moellmann <gerd@gnu.org>
parents:
25075
diff
changeset
|
4969 /* Let the row go over the full width of the frame. */ |
ba6bf065b287
(x_create_tip_frame): Don't set bitmapIcon resource.
Gerd Moellmann <gerd@gnu.org>
parents:
25075
diff
changeset
|
4970 row->full_width_p = 1; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4971 |
28410
2812a333e746
(free_image_cache): Free the cache structure itself
Gerd Moellmann <gerd@gnu.org>
parents:
28355
diff
changeset
|
4972 /* There's a glyph at the end of rows that is used to place |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4973 the cursor there. Don't include the width of this glyph. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4974 if (row->used[TEXT_AREA]) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4975 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4976 last = &row->glyphs[TEXT_AREA][row->used[TEXT_AREA] - 1]; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4977 row_width = row->pixel_width - last->pixel_width; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4978 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4979 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4980 row_width = row->pixel_width; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4981 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4982 height += row->height; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4983 width = max (width, row_width); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4984 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4985 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4986 /* Add the frame's internal border to the width and height the X |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4987 window should have. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4988 height += 2 * FRAME_INTERNAL_BORDER_WIDTH (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4989 width += 2 * FRAME_INTERNAL_BORDER_WIDTH (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4990 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4991 /* Move the tooltip window where the mouse pointer is. Resize and |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4992 show it. */ |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4993 compute_tip_xy (f, parms, dx, dy, width, height, &root_x, &root_y); |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4994 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4995 BLOCK_INPUT; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4996 XMoveResizeWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4997 root_x, root_y, width, height); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4998 XMapRaised (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4999 UNBLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5000 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5001 /* Draw into the window. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5002 w->must_be_updated_p = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5003 update_single_window (w, 1); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5004 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5005 /* Restore original current buffer. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5006 set_buffer_internal_1 (old_buffer); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5007 windows_or_buffers_changed = old_windows_or_buffers_changed; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5008 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5009 start_timer: |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5010 /* Let the tip disappear after timeout seconds. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5011 tip_timer = call3 (intern ("run-at-time"), timeout, Qnil, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5012 intern ("x-hide-tip")); |
26954
e388d69f4269
(Fx_show_tip): Add missing UNGCPRO.
Dave Love <fx@gnu.org>
parents:
26876
diff
changeset
|
5013 |
e388d69f4269
(Fx_show_tip): Add missing UNGCPRO.
Dave Love <fx@gnu.org>
parents:
26876
diff
changeset
|
5014 UNGCPRO; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5015 return unbind_to (count, Qnil); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5016 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5017 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5018 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5019 DEFUN ("x-hide-tip", Fx_hide_tip, Sx_hide_tip, 0, 0, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5020 doc: /* Hide the current tooltip window, if there is any. |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5021 Value is t if tooltip was open, nil otherwise. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5022 () |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5023 { |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5024 int count; |
34476 | 5025 Lisp_Object deleted, frame, timer; |
5026 struct gcpro gcpro1, gcpro2; | |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5027 |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5028 /* Return quickly if nothing to do. */ |
34476 | 5029 if (NILP (tip_timer) && NILP (tip_frame)) |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5030 return Qnil; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5031 |
34476 | 5032 frame = tip_frame; |
5033 timer = tip_timer; | |
5034 GCPRO2 (frame, timer); | |
5035 tip_frame = tip_timer = deleted = Qnil; | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5036 |
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
5037 count = SPECPDL_INDEX (); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5038 specbind (Qinhibit_redisplay, Qt); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5039 specbind (Qinhibit_quit, Qt); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5040 |
34476 | 5041 if (!NILP (timer)) |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5042 call1 (Qcancel_timer, timer); |
34476 | 5043 |
5044 if (FRAMEP (frame)) | |
5045 { | |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5046 Fdelete_frame (frame, Qnil); |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5047 deleted = Qt; |
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5048 |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5049 #ifdef USE_LUCID |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5050 /* Bloodcurdling hack alert: The Lucid menu bar widget's |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5051 redisplay procedure is not called when a tip frame over menu |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5052 items is unmapped. Redisplay the menu manually... */ |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5053 { |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5054 struct frame *f = SELECTED_FRAME (); |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5055 Widget w = f->output_data.x->menubar_widget; |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5056 extern void xlwmenu_redisplay P_ ((Widget)); |
39675 | 5057 |
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5058 if (!DoesSaveUnders (FRAME_X_DISPLAY_INFO (f)->screen) |
36441
861557fe5809
(Fx_hide_tip): Don't use `None' with widgets; use
Gerd Moellmann <gerd@gnu.org>
parents:
36252
diff
changeset
|
5059 && w != NULL) |
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5060 { |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5061 BLOCK_INPUT; |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5062 xlwmenu_redisplay (w); |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5063 UNBLOCK_INPUT; |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5064 } |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5065 } |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5066 #endif /* USE_LUCID */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5067 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5068 |
34476 | 5069 UNGCPRO; |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5070 return unbind_to (count, deleted); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5071 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5072 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5073 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5074 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5075 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5076 File selection dialog |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5077 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5078 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5079 #ifdef USE_MOTIF |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5080 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5081 /* Callback for "OK" and "Cancel" on file selection dialog. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5082 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5083 static void |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5084 file_dialog_cb (widget, client_data, call_data) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5085 Widget widget; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5086 XtPointer call_data, client_data; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5087 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5088 int *result = (int *) client_data; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5089 XmAnyCallbackStruct *cb = (XmAnyCallbackStruct *) call_data; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5090 *result = cb->reason; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5091 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5092 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5093 |
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5094 /* Callback for unmapping a file selection dialog. This is used to |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5095 capture the case where a dialog is closed via a window manager's |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5096 closer button, for example. Using a XmNdestroyCallback didn't work |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5097 in this case. */ |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5098 |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5099 static void |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5100 file_dialog_unmap_cb (widget, client_data, call_data) |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5101 Widget widget; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5102 XtPointer call_data, client_data; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5103 { |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5104 int *result = (int *) client_data; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5105 *result = XmCR_CANCEL; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5106 } |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5107 |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5108 |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5109 DEFUN ("x-file-dialog", Fx_file_dialog, Sx_file_dialog, 2, 5, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5110 doc: /* Read file name, prompting with PROMPT in directory DIR. |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5111 Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5112 selection box, if specified. If MUSTMATCH is non-nil, the returned file |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5113 or directory must exist. ONLY-DIR-P is ignored." */) |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5114 (prompt, dir, default_filename, mustmatch, only_dir_p) |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5115 Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5116 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5117 int result; |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
5118 struct frame *f = SELECTED_FRAME (); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5119 Lisp_Object file = Qnil; |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5120 Widget dialog, text, help; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5121 Arg al[10]; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5122 int ac = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5123 extern XtAppContext Xt_app_con; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5124 XmString dir_xmstring, pattern_xmstring; |
46295
b77ef572e1c9
Use macro SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
46285
diff
changeset
|
5125 int count = SPECPDL_INDEX (); |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5126 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5127 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5128 GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, file); |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5129 CHECK_STRING (prompt); |
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5130 CHECK_STRING (dir); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5131 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5132 /* Prevent redisplay. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5133 specbind (Qinhibit_redisplay, Qt); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5134 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5135 BLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5136 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5137 /* Create the dialog with PROMPT as title, using DIR as initial |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5138 directory and using "*" as pattern. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5139 dir = Fexpand_file_name (dir, Qnil); |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
5140 dir_xmstring = XmStringCreateLocalized (SDATA (dir)); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5141 pattern_xmstring = XmStringCreateLocalized ("*"); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5142 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
5143 XtSetArg (al[ac], XmNtitle, SDATA (prompt)); ++ac; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5144 XtSetArg (al[ac], XmNdirectory, dir_xmstring); ++ac; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5145 XtSetArg (al[ac], XmNpattern, pattern_xmstring); ++ac; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5146 XtSetArg (al[ac], XmNresizePolicy, XmRESIZE_GROW); ++ac; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5147 XtSetArg (al[ac], XmNdialogStyle, XmDIALOG_APPLICATION_MODAL); ++ac; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5148 dialog = XmCreateFileSelectionDialog (f->output_data.x->widget, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5149 "fsb", al, ac); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5150 XmStringFree (dir_xmstring); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5151 XmStringFree (pattern_xmstring); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5152 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5153 /* Add callbacks for OK and Cancel. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5154 XtAddCallback (dialog, XmNokCallback, file_dialog_cb, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5155 (XtPointer) &result); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5156 XtAddCallback (dialog, XmNcancelCallback, file_dialog_cb, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5157 (XtPointer) &result); |
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5158 XtAddCallback (dialog, XmNunmapCallback, file_dialog_unmap_cb, |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5159 (XtPointer) &result); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5160 |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5161 /* Remove the help button since we can't display help. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5162 help = XmFileSelectionBoxGetChild (dialog, XmDIALOG_HELP_BUTTON); |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5163 XtUnmanageChild (help); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5164 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5165 /* Mark OK button as default. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5166 XtVaSetValues (XmFileSelectionBoxGetChild (dialog, XmDIALOG_OK_BUTTON), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5167 XmNshowAsDefault, True, NULL); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5168 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5169 /* If MUSTMATCH is non-nil, disable the file entry field of the |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5170 dialog, so that the user must select a file from the files list |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5171 box. We can't remove it because we wouldn't have a way to get at |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5172 the result file name, then. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5173 text = XmFileSelectionBoxGetChild (dialog, XmDIALOG_TEXT); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5174 if (!NILP (mustmatch)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5175 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5176 Widget label; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5177 label = XmFileSelectionBoxGetChild (dialog, XmDIALOG_SELECTION_LABEL); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5178 XtSetSensitive (text, False); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5179 XtSetSensitive (label, False); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5180 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5181 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5182 /* Manage the dialog, so that list boxes get filled. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5183 XtManageChild (dialog); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5184 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5185 if (STRINGP (default_filename)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5186 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5187 XmString default_xmstring; |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5188 Widget wtext = XmFileSelectionBoxGetChild (dialog, XmDIALOG_TEXT); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5189 Widget list = XmFileSelectionBoxGetChild (dialog, XmDIALOG_LIST); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5190 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5191 XmTextPosition last_pos = XmTextFieldGetLastPosition (wtext); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5192 XmTextFieldReplace (wtext, 0, last_pos, |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5193 (SDATA (Ffile_name_nondirectory (default_filename)))); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5194 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5195 /* Select DEFAULT_FILENAME in the files list box. DEFAULT_FILENAME |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5196 must include the path for this to work. */ |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5197 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5198 default_xmstring = XmStringCreateLocalized (SDATA (default_filename)); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5199 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5200 if (XmListItemExists (list, default_xmstring)) |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5201 { |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5202 int item_pos = XmListItemPos (list, default_xmstring); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5203 /* Select the item and scroll it into view. */ |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5204 XmListSelectPos (list, item_pos, True); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5205 XmListSetPos (list, item_pos); |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5206 } |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5207 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5208 XmStringFree (default_xmstring); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5209 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5210 |
49117 | 5211 /* Process events until the user presses Cancel or OK. */ |
29866
c31c4d7dd0e0
(Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
Gerd Moellmann <gerd@gnu.org>
parents:
29728
diff
changeset
|
5212 result = 0; |
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5213 while (result == 0) |
38548
58603538f196
(Fx_file_dialog): Block/unblock input while processing
Gerd Moellmann <gerd@gnu.org>
parents:
38542
diff
changeset
|
5214 { |
49117 | 5215 XEvent event; |
5216 XtAppNextEvent (Xt_app_con, &event); | |
49434
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
5217 (void) x_dispatch_event (&event, FRAME_X_DISPLAY (f) ); |
49117 | 5218 } |
29866
c31c4d7dd0e0
(Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
Gerd Moellmann <gerd@gnu.org>
parents:
29728
diff
changeset
|
5219 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5220 /* Get the result. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5221 if (result == XmCR_OK) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5222 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5223 XmString text; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5224 String data; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5225 |
30573
3bb43339533c
(Fx_file_dialog): Use NULL instead of 0 at the end of
Gerd Moellmann <gerd@gnu.org>
parents:
30383
diff
changeset
|
5226 XtVaGetValues (dialog, XmNtextString, &text, NULL); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5227 XmStringGetLtoR (text, XmFONTLIST_DEFAULT_TAG, &data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5228 XmStringFree (text); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5229 file = build_string (data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5230 XtFree (data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5231 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5232 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5233 file = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5234 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5235 /* Clean up. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5236 XtUnmanageChild (dialog); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5237 XtDestroyWidget (dialog); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5238 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5239 UNGCPRO; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5240 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5241 /* Make "Cancel" equivalent to C-g. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5242 if (NILP (file)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5243 Fsignal (Qquit, Qnil); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5244 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5245 return unbind_to (count, file); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5246 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5247 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5248 #endif /* USE_MOTIF */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5249 |
49322 | 5250 #ifdef USE_GTK |
5251 | |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5252 DEFUN ("x-file-dialog", Fx_file_dialog, Sx_file_dialog, 2, 5, 0, |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5253 doc: /* Read file name, prompting with PROMPT in directory DIR. |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5254 Use a file selection dialog. Select DEFAULT-FILENAME in the dialog's file |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5255 selection box, if specified. If MUSTMATCH is non-nil, the returned file |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5256 or directory must exist. If ONLY-DIR-P is non-nil, the user can only select |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5257 directories. */) |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5258 (prompt, dir, default_filename, mustmatch, only_dir_p) |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5259 Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p; |
49322 | 5260 { |
5261 FRAME_PTR f = SELECTED_FRAME (); | |
5262 char *fn; | |
5263 Lisp_Object file = Qnil; | |
5264 int count = specpdl_ptr - specpdl; | |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5265 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; |
49322 | 5266 char *cdef_file; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5267 |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5268 GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, file); |
49322 | 5269 CHECK_STRING (prompt); |
5270 CHECK_STRING (dir); | |
5271 | |
5272 /* Prevent redisplay. */ | |
5273 specbind (Qinhibit_redisplay, Qt); | |
5274 | |
5275 BLOCK_INPUT; | |
5276 | |
5277 if (STRINGP (default_filename)) | |
5278 cdef_file = SDATA (default_filename); | |
5279 else | |
5280 cdef_file = SDATA (dir); | |
5281 | |
57868
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5282 fn = xg_get_file_name (f, SDATA (prompt), cdef_file, |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5283 ! NILP (mustmatch), |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5284 ! NILP (only_dir_p)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5285 |
49322 | 5286 if (fn) |
5287 { | |
5288 file = build_string (fn); | |
5289 xfree (fn); | |
5290 } | |
5291 | |
5292 UNBLOCK_INPUT; | |
5293 UNGCPRO; | |
5294 | |
5295 /* Make "Cancel" equivalent to C-g. */ | |
5296 if (NILP (file)) | |
5297 Fsignal (Qquit, Qnil); | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5298 |
49322 | 5299 return unbind_to (count, file); |
5300 } | |
5301 | |
5302 #endif /* USE_GTK */ | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5303 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5304 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5305 /*********************************************************************** |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5306 Keyboard |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5307 ***********************************************************************/ |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5308 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5309 #ifdef HAVE_XKBGETKEYBOARD |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5310 #include <X11/XKBlib.h> |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5311 #include <X11/keysym.h> |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5312 #endif |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5313 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5314 DEFUN ("x-backspace-delete-keys-p", Fx_backspace_delete_keys_p, |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5315 Sx_backspace_delete_keys_p, 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5316 doc: /* Check if both Backspace and Delete keys are on the keyboard of FRAME. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5317 FRAME nil means use the selected frame. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5318 Value is t if we know that both keys are present, and are mapped to the |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5319 usual X keysyms. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5320 (frame) |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5321 Lisp_Object frame; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5322 { |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5323 #ifdef HAVE_XKBGETKEYBOARD |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5324 XkbDescPtr kb; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5325 struct frame *f = check_x_frame (frame); |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5326 Display *dpy = FRAME_X_DISPLAY (f); |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5327 Lisp_Object have_keys; |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5328 int major, minor, op, event, error; |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5329 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5330 BLOCK_INPUT; |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5331 |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5332 /* Check library version in case we're dynamically linked. */ |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5333 major = XkbMajorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5334 minor = XkbMinorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5335 if (!XkbLibraryVersion (&major, &minor)) |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5336 { |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5337 UNBLOCK_INPUT; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5338 return Qnil; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5339 } |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5340 |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5341 /* Check that the server supports XKB. */ |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5342 major = XkbMajorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5343 minor = XkbMinorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5344 if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor)) |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5345 { |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5346 UNBLOCK_INPUT; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5347 return Qnil; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5348 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5349 |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5350 have_keys = Qnil; |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5351 kb = XkbGetMap (dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5352 if (kb) |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5353 { |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5354 int delete_keycode = 0, backspace_keycode = 0, i; |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5355 |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5356 if (XkbGetNames (dpy, XkbAllNamesMask, kb) == Success) |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5357 { |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5358 for (i = kb->min_key_code; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5359 (i < kb->max_key_code |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5360 && (delete_keycode == 0 || backspace_keycode == 0)); |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5361 ++i) |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5362 { |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5363 /* The XKB symbolic key names can be seen most easily in |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5364 the PS file generated by `xkbprint -label name |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5365 $DISPLAY'. */ |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5366 if (bcmp ("DELE", kb->names->keys[i].name, 4) == 0) |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5367 delete_keycode = i; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5368 else if (bcmp ("BKSP", kb->names->keys[i].name, 4) == 0) |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5369 backspace_keycode = i; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5370 } |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5371 |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5372 XkbFreeNames (kb, 0, True); |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5373 } |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5374 |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5375 XkbFreeClientMap (kb, 0, True); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5376 |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5377 if (delete_keycode |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5378 && backspace_keycode |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5379 && XKeysymToKeycode (dpy, XK_Delete) == delete_keycode |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5380 && XKeysymToKeycode (dpy, XK_BackSpace) == backspace_keycode) |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5381 have_keys = Qt; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5382 } |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5383 UNBLOCK_INPUT; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5384 return have_keys; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5385 #else /* not HAVE_XKBGETKEYBOARD */ |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5386 return Qnil; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5387 #endif /* not HAVE_XKBGETKEYBOARD */ |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5388 } |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5389 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5390 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5391 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5392 /*********************************************************************** |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5393 Initialization |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5394 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5395 |
51175 | 5396 /* Keep this list in the same order as frame_parms in frame.c. |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5397 Use 0 for unsupported frame parameters. */ |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5398 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5399 frame_parm_handler x_frame_parm_handlers[] = |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5400 { |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5401 x_set_autoraise, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5402 x_set_autolower, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5403 x_set_background_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5404 x_set_border_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5405 x_set_border_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5406 x_set_cursor_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5407 x_set_cursor_type, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5408 x_set_font, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5409 x_set_foreground_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5410 x_set_icon_name, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5411 x_set_icon_type, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5412 x_set_internal_border_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5413 x_set_menu_bar_lines, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5414 x_set_mouse_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5415 x_explicitly_set_name, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5416 x_set_scroll_bar_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5417 x_set_title, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5418 x_set_unsplittable, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5419 x_set_vertical_scroll_bars, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5420 x_set_visibility, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5421 x_set_tool_bar_lines, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5422 x_set_scroll_bar_foreground, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5423 x_set_scroll_bar_background, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5424 x_set_screen_gamma, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5425 x_set_line_spacing, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5426 x_set_fringe_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5427 x_set_fringe_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5428 x_set_wait_for_wm, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5429 x_set_fullscreen, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5430 }; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5431 |
21846 | 5432 void |
389 | 5433 syms_of_xfns () |
5434 { | |
5435 /* This is zero if not using X windows. */ | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
5436 x_in_use = 0; |
9014
7b805f79f3b4
(Fx_list_fonts): Use a cache stored in FRAME_X_SCREEN.
Richard M. Stallman <rms@gnu.org>
parents:
8961
diff
changeset
|
5437 |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5438 /* The section below is built by the lisp expression at the top of the file, |
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5439 just above where these variables are declared. */ |
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5440 /*&&& init symbols here &&&*/ |
1874
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
5441 Qnone = intern ("none"); |
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
5442 staticpro (&Qnone); |
2328
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
5443 Qsuppress_icon = intern ("suppress-icon"); |
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
5444 staticpro (&Qsuppress_icon); |
389 | 5445 Qundefined_color = intern ("undefined-color"); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5446 staticpro (&Qundefined_color); |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
5447 Qcompound_text = intern ("compound-text"); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
5448 staticpro (&Qcompound_text); |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5449 Qcancel_timer = intern ("cancel-timer"); |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5450 staticpro (&Qcancel_timer); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5451 /* This is the end of symbol initialization. */ |
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5452 |
26876 | 5453 /* Text property `display' should be nonsticky by default. */ |
5454 Vtext_property_default_nonsticky | |
5455 = Fcons (Fcons (Qdisplay, Qt), Vtext_property_default_nonsticky); | |
5456 | |
5457 | |
389 | 5458 Fput (Qundefined_color, Qerror_conditions, |
5459 Fcons (Qundefined_color, Fcons (Qerror, Qnil))); | |
5460 Fput (Qundefined_color, Qerror_message, | |
5461 build_string ("Undefined color")); | |
5462 | |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5463 DEFVAR_LISP ("x-pointer-shape", &Vx_pointer_shape, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5464 doc: /* The shape of the pointer when over text. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5465 Changing the value does not affect existing frames |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5466 unless you set the mouse color. */); |
389 | 5467 Vx_pointer_shape = Qnil; |
5468 | |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5469 #if 0 /* This doesn't really do anything. */ |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5470 DEFVAR_LISP ("x-nontext-pointer-shape", &Vx_nontext_pointer_shape, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5471 doc: /* The shape of the pointer when not over text. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5472 This variable takes effect when you create a new frame |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5473 or when you set the mouse color. */); |
2936
f9956cdb0d1d
(syms_of_xfns): Don't make Lisp vars
Richard M. Stallman <rms@gnu.org>
parents:
2885
diff
changeset
|
5474 #endif |
389 | 5475 Vx_nontext_pointer_shape = Qnil; |
5476 | |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5477 DEFVAR_LISP ("x-hourglass-pointer-shape", &Vx_hourglass_pointer_shape, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5478 doc: /* The shape of the pointer when Emacs is busy. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5479 This variable takes effect when you create a new frame |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5480 or when you set the mouse color. */); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5481 Vx_hourglass_pointer_shape = Qnil; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5482 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5483 DEFVAR_BOOL ("display-hourglass", &display_hourglass_p, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5484 doc: /* Non-zero means Emacs displays an hourglass pointer on window systems. */); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5485 display_hourglass_p = 1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5486 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5487 DEFVAR_LISP ("hourglass-delay", &Vhourglass_delay, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5488 doc: /* *Seconds to wait before displaying an hourglass pointer. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5489 Value must be an integer or float. */); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5490 Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY); |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
5491 |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5492 #if 0 /* This doesn't really do anything. */ |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5493 DEFVAR_LISP ("x-mode-pointer-shape", &Vx_mode_pointer_shape, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5494 doc: /* The shape of the pointer when over the mode line. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5495 This variable takes effect when you create a new frame |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5496 or when you set the mouse color. */); |
2936
f9956cdb0d1d
(syms_of_xfns): Don't make Lisp vars
Richard M. Stallman <rms@gnu.org>
parents:
2885
diff
changeset
|
5497 #endif |
389 | 5498 Vx_mode_pointer_shape = Qnil; |
5499 | |
16396
4e4cc27b2a2a
(x_set_internal_border_width): Only change
Richard M. Stallman <rms@gnu.org>
parents:
16357
diff
changeset
|
5500 DEFVAR_LISP ("x-sensitive-text-pointer-shape", |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5501 &Vx_sensitive_text_pointer_shape, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5502 doc: /* The shape of the pointer when over mouse-sensitive text. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5503 This variable takes effect when you create a new frame |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5504 or when you set the mouse color. */); |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5505 Vx_sensitive_text_pointer_shape = Qnil; |
6759
e0938c42218c
(syms_of_xfns): Define Vx_cross_pointer_shape.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6610
diff
changeset
|
5506 |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
5507 DEFVAR_LISP ("x-window-horizontal-drag-cursor", |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5508 &Vx_window_horizontal_drag_shape, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5509 doc: /* Pointer shape to use for indicating a window can be dragged horizontally. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5510 This variable takes effect when you create a new frame |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5511 or when you set the mouse color. */); |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
5512 Vx_window_horizontal_drag_shape = Qnil; |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
5513 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5514 DEFVAR_LISP ("x-cursor-fore-pixel", &Vx_cursor_fore_pixel, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5515 doc: /* A string indicating the foreground color of the cursor box. */); |
389 | 5516 Vx_cursor_fore_pixel = Qnil; |
5517 | |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5518 DEFVAR_LISP ("x-max-tooltip-size", &Vx_max_tooltip_size, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5519 doc: /* Maximum size for tooltips. Value is a pair (COLUMNS . ROWS). |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5520 Text larger than this is clipped. */); |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5521 Vx_max_tooltip_size = Fcons (make_number (80), make_number (40)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5522 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5523 DEFVAR_LISP ("x-no-window-manager", &Vx_no_window_manager, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5524 doc: /* Non-nil if no X window manager is in use. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5525 Emacs doesn't try to figure this out; this is always nil |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5526 unless you set it to something else. */); |
12209
5537ed125771
(syms_of_xfns): Initialize Vx_no_window_manager. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12190
diff
changeset
|
5527 /* We don't have any way to find this out, so set it to nil |
5537ed125771
(syms_of_xfns): Initialize Vx_no_window_manager. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12190
diff
changeset
|
5528 and maybe the user would like to set it to t. */ |
5537ed125771
(syms_of_xfns): Initialize Vx_no_window_manager. Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
12190
diff
changeset
|
5529 Vx_no_window_manager = Qnil; |
8170
d92a24366b22
(x_toolkit): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8103
diff
changeset
|
5530 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5531 DEFVAR_LISP ("x-pixel-size-width-font-regexp", |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5532 &Vx_pixel_size_width_font_regexp, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5533 doc: /* Regexp matching a font name whose width is the same as `PIXEL_SIZE'. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5534 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5535 Since Emacs gets width of a font matching with this regexp from |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5536 PIXEL_SIZE field of the name, font finding mechanism gets faster for |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5537 such a font. This is especially effective for such large fonts as |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5538 Chinese, Japanese, and Korean. */); |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5539 Vx_pixel_size_width_font_regexp = Qnil; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5540 |
8170
d92a24366b22
(x_toolkit): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8103
diff
changeset
|
5541 #ifdef USE_X_TOOLKIT |
39862
da336e9d1ab5
(syms_of_xfns): Update calls to Fprovide.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39812
diff
changeset
|
5542 Fprovide (intern ("x-toolkit"), Qnil); |
12094
a9fda5417acf
(syms_of_xfns): Provide motif in Motif version.
Karl Heuer <kwzh@gnu.org>
parents:
12080
diff
changeset
|
5543 #ifdef USE_MOTIF |
39862
da336e9d1ab5
(syms_of_xfns): Update calls to Fprovide.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39812
diff
changeset
|
5544 Fprovide (intern ("motif"), Qnil); |
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5545 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5546 DEFVAR_LISP ("motif-version-string", &Vmotif_version_string, |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5547 doc: /* Version info for LessTif/Motif. */); |
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5548 Vmotif_version_string = build_string (XmVERSION_STRING); |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5549 #endif /* USE_MOTIF */ |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5550 #endif /* USE_X_TOOLKIT */ |
389 | 5551 |
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5552 #ifdef USE_GTK |
55546
4e3b166f7f72
* xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55492
diff
changeset
|
5553 /* Provide x-toolkit also for GTK. Internally GTK does not use Xt so it |
4e3b166f7f72
* xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55492
diff
changeset
|
5554 is not an X toolkit in that sense (USE_X_TOOLKIT is not defined). |
4e3b166f7f72
* xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55492
diff
changeset
|
5555 But for a user it is a toolkit for X, and indeed, configure |
4e3b166f7f72
* xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55492
diff
changeset
|
5556 accepts --with-x-toolkit=gtk. */ |
4e3b166f7f72
* xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55492
diff
changeset
|
5557 Fprovide (intern ("x-toolkit"), Qnil); |
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5558 Fprovide (intern ("gtk"), Qnil); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5559 |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5560 DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string, |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5561 doc: /* Version info for GTK+. */); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5562 { |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5563 char gtk_version[40]; |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5564 g_snprintf (gtk_version, sizeof (gtk_version), "%u.%u.%u", |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5565 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5566 Vgtk_version_string = build_string (gtk_version); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5567 } |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5568 #endif /* USE_GTK */ |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5569 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5570 /* X window properties. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5571 defsubr (&Sx_change_window_property); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5572 defsubr (&Sx_delete_window_property); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5573 defsubr (&Sx_window_property); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5574 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
5575 defsubr (&Sxw_display_color_p); |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
5576 defsubr (&Sx_display_grayscale_p); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
5577 defsubr (&Sxw_color_defined_p); |
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
5578 defsubr (&Sxw_color_values); |
4279 | 5579 defsubr (&Sx_server_max_request_size); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5580 defsubr (&Sx_server_vendor); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5581 defsubr (&Sx_server_version); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5582 defsubr (&Sx_display_pixel_width); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5583 defsubr (&Sx_display_pixel_height); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5584 defsubr (&Sx_display_mm_width); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5585 defsubr (&Sx_display_mm_height); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5586 defsubr (&Sx_display_screens); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5587 defsubr (&Sx_display_planes); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5588 defsubr (&Sx_display_color_cells); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5589 defsubr (&Sx_display_visual_class); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5590 defsubr (&Sx_display_backing_store); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5591 defsubr (&Sx_display_save_under); |
771 | 5592 defsubr (&Sx_create_frame); |
389 | 5593 defsubr (&Sx_open_connection); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
5594 defsubr (&Sx_close_connection); |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
5595 defsubr (&Sx_display_list); |
389 | 5596 defsubr (&Sx_synchronize); |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
5597 defsubr (&Sx_focus_frame); |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5598 defsubr (&Sx_backspace_delete_keys_p); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5599 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5600 /* Setting callback functions for fontset handler. */ |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5601 get_font_info_func = x_get_font_info; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5602 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5603 #if 0 /* This function pointer doesn't seem to be used anywhere. |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5604 And the pointer assigned has the wrong type, anyway. */ |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5605 list_fonts_func = x_list_fonts; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5606 #endif |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5607 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5608 load_font_func = x_load_font; |
21549
3b63301ea296
(syms_of_xfns): Initialize find_ccl_program_func.
Kenichi Handa <handa@m17n.org>
parents:
21536
diff
changeset
|
5609 find_ccl_program_func = x_find_ccl_program; |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5610 query_font_func = x_query_font; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5611 set_frame_fontset_func = x_set_font; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5612 check_window_system_func = check_x; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5613 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5614 hourglass_atimer = NULL; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5615 hourglass_shown_p = 0; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5616 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5617 defsubr (&Sx_show_tip); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5618 defsubr (&Sx_hide_tip); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5619 tip_timer = Qnil; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5620 staticpro (&tip_timer); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5621 tip_frame = Qnil; |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5622 staticpro (&tip_frame); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5623 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5624 last_show_tip_args = Qnil; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5625 staticpro (&last_show_tip_args); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5626 |
57432
d95ac5c74632
* xfns.c (syms_of_xfns): defsubr x-file-dialog for GTK also.
Jan Djärv <jan.h.d@swipnet.se>
parents:
56879
diff
changeset
|
5627 #if defined (USE_MOTIF) || defined (USE_GTK) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5628 defsubr (&Sx_file_dialog); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5629 #endif |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5630 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5631 |
389 | 5632 #endif /* HAVE_X_WINDOWS */ |
52401 | 5633 |
5634 /* arch-tag: 55040d02-5485-4d58-8b22-95a7a05f3288 | |
5635 (do not change this comment) */ |