Mercurial > emacs
annotate src/xfns.c @ 83353:532e0a9335a9
Merged in changes from CVS trunk. Plus added lisp/term tweaks.
Patches applied:
* lorentey@elte.hu--2004/emacs--cvs-trunk--0--base-0
tag of miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-474
* lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-1
Add CVS metadata files.
* lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-2
Update from CVS.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-393
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sun, 04 Sep 2005 03:48:17 +0000 |
parents | 9216636c02fc a0d1312ede66 |
children | 94f174e5569d |
rev | line source |
---|---|
389 | 1 /* Functions for the X window system. |
59905
d6551c039c8f
Copyright update.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
59904
diff
changeset
|
2 Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, |
64770
a0d1312ede66
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64084
diff
changeset
|
3 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
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 | |
64084 | 19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
20 Boston, MA 02110-1301, 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> |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
23 #include <stdio.h> |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
24 #include <math.h> |
7899 | 25 |
40700
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
26 #ifdef HAVE_UNISTD_H |
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
27 #include <unistd.h> |
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
28 #endif |
6f6287da52d1
Include unistd.h, if it exists.
Richard M. Stallman <rms@gnu.org>
parents:
40656
diff
changeset
|
29 |
8091
f40cbe50c74f
(XLIB_ILLEGAL_ACCESS): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8090
diff
changeset
|
30 /* 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
|
31 |
8091
f40cbe50c74f
(XLIB_ILLEGAL_ACCESS): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8090
diff
changeset
|
32 #define XLIB_ILLEGAL_ACCESS |
f40cbe50c74f
(XLIB_ILLEGAL_ACCESS): Defined.
Richard M. Stallman <rms@gnu.org>
parents:
8090
diff
changeset
|
33 |
389 | 34 #include "lisp.h" |
35 #include "xterm.h" | |
771 | 36 #include "frame.h" |
389 | 37 #include "window.h" |
38 #include "buffer.h" | |
26876 | 39 #include "intervals.h" |
389 | 40 #include "dispextern.h" |
515 | 41 #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
|
42 #include "blockinput.h" |
24412
d11ac02f9d6a
Use epaths.h istead of paths.h.
Richard M. Stallman <rms@gnu.org>
parents:
24170
diff
changeset
|
43 #include <epaths.h> |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
44 #include "charset.h" |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
45 #include "coding.h" |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
46 #include "fontset.h" |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
47 #include "systime.h" |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
48 #include "termhooks.h" |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
49 #include "atimer.h" |
53226
dd3018b4785b
Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents:
53069
diff
changeset
|
50 #include "termchar.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 |
58463
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
154 /* Non-zero means prompt with the old GTK file selection dialog. */ |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
155 |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
156 int x_use_old_gtk_file_dialog; |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
157 |
389 | 158 /* 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
|
159 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
|
160 |
389 | 161 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
|
162 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
|
163 |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
164 /* 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
|
165 |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
166 Lisp_Object Vx_sensitive_text_pointer_shape; |
389 | 167 |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
168 /* 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
|
169 dragged horizontally. */ |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
170 |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
171 Lisp_Object Vx_window_horizontal_drag_shape; |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
172 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
173 /* 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
|
174 |
389 | 175 Lisp_Object Vx_cursor_fore_pixel; |
176 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
177 /* Nonzero if using X. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
178 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
179 static int x_in_use; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
180 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
181 /* 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
|
182 |
389 | 183 Lisp_Object Vx_no_window_manager; |
184 | |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
185 /* 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
|
186 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
187 Lisp_Object Vx_pixel_size_width_font_regexp; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
188 |
1874
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
189 Lisp_Object Qnone; |
2328
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
190 Lisp_Object Qsuppress_icon; |
389 | 191 Lisp_Object Qundefined_color; |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
192 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
|
193 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
194 /* In dispnew.c */ |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
195 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
196 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
|
197 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
198 /* 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
|
199 |
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
200 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
201 int image_cache_refcount, dpyinfo_refcount; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
202 #endif |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
203 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
204 |
389 | 205 |
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
206 /* 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
|
207 |
5948 | 208 void |
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
209 check_x () |
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
210 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
211 if (! x_in_use) |
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
212 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
|
213 } |
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
214 |
13867
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
215 /* 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
|
216 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
|
217 |
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
218 int |
13867
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
219 have_menus_p () |
7791
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
220 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
221 return x_in_use; |
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 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
224 /* 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
|
225 and checking validity for X. */ |
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 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
228 check_x_frame (frame) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
229 Lisp_Object frame; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
230 { |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
231 FRAME_PTR f; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
232 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
233 if (NILP (frame)) |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
234 frame = selected_frame; |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
235 CHECK_LIVE_FRAME (frame); |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
236 f = XFRAME (frame); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
237 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
|
238 error ("Non-X frame used"); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
239 return f; |
7791
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
240 } |
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
241 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
242 /* Let the user specify an X display with a Lisp object. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
243 OBJECT may be nil, a frame or a device id. |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
244 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
|
245 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
|
246 |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
247 struct x_display_info * |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
248 check_x_display_info (object) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
249 Lisp_Object object; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
250 { |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
251 struct x_display_info *dpyinfo = NULL; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
252 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
253 if (NILP (object)) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
254 { |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
255 struct frame *sf = XFRAME (selected_frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
256 |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
257 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
|
258 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
|
259 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
|
260 dpyinfo = x_display_list; |
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 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
|
263 } |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
264 else if (INTEGERP (object)) |
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
265 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
266 struct device *d = get_device (XINT (object), 1); |
83298
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
parents:
83281
diff
changeset
|
267 |
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
268 if (d->type != output_x_window) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
269 error ("Display %d is not an X display", XINT (object)); |
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
270 |
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
271 dpyinfo = d->display_info.x; |
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
272 } |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
273 else if (STRINGP (object)) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
274 dpyinfo = x_display_info_for_name (object); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
275 else |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
276 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
277 FRAME_PTR f = check_x_frame (object); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
278 dpyinfo = FRAME_X_DISPLAY_INFO (f); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
279 } |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
280 |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
281 return dpyinfo; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
282 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
283 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
284 |
771 | 285 /* Return the Emacs frame-object corresponding to an X window. |
286 It could be the frame's main window or an icon window. */ | |
287 | |
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
|
288 /* 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
|
289 |
771 | 290 struct frame * |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
291 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
|
292 struct x_display_info *dpyinfo; |
389 | 293 int wdesc; |
294 { | |
771 | 295 Lisp_Object tail, frame; |
296 struct frame *f; | |
297 | |
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
|
298 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
|
299 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
300 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
|
301 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
302 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
|
303 if (!GC_FRAMEP (frame)) |
389 | 304 continue; |
771 | 305 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
306 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
|
307 continue; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
308 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
|
309 return f; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
310 #ifdef USE_X_TOOLKIT |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
311 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
|
312 && 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
|
313 /* A tooltip frame? */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
314 || (!f->output_data.x->edit_widget |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
315 && 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
|
316 || f->output_data.x->icon_desc == wdesc) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
317 return f; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
318 #else /* not USE_X_TOOLKIT */ |
49322 | 319 #ifdef USE_GTK |
320 if (f->output_data.x->edit_widget) | |
321 { | |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
322 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 323 struct x_output *x = f->output_data.x; |
324 if (gwdesc != 0 && gwdesc == x->edit_widget) | |
325 return f; | |
326 } | |
327 #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
|
328 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
|
329 || f->output_data.x->icon_desc == wdesc) |
771 | 330 return f; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
331 #endif /* not USE_X_TOOLKIT */ |
389 | 332 } |
333 return 0; | |
334 } | |
335 | |
49322 | 336 #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
|
337 /* 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
|
338 windows. */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
339 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
340 struct frame * |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
341 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
|
342 struct x_display_info *dpyinfo; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
343 int wdesc; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
344 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
345 Lisp_Object tail, frame; |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
346 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
|
347 struct x_output *x; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
348 |
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
|
349 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
|
350 |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
351 found = NULL; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
352 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
|
353 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
354 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
|
355 if (!GC_FRAMEP (frame)) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
356 continue; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
357 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
358 f = XFRAME (frame); |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
359 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
|
360 { |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
361 /* 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
|
362 x = f->output_data.x; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
363 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
|
364 found = f; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
365 else if (x->widget) |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
366 { |
49322 | 367 #ifdef USE_GTK |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
368 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 369 if (gwdesc != 0 |
370 && (gwdesc == x->widget | |
371 || gwdesc == x->edit_widget | |
372 || gwdesc == x->vbox_widget | |
373 || gwdesc == x->menubar_widget)) | |
374 found = f; | |
375 #else | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
376 if (wdesc == XtWindow (x->widget) |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
377 || 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
|
378 || wdesc == XtWindow (x->edit_widget)) |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
379 found = f; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
380 /* 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
|
381 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
|
382 found = f; |
49322 | 383 #endif |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
384 } |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
385 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
|
386 /* A tooltip frame. */ |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
387 found = f; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
388 } |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
389 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
390 |
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
391 return found; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
392 } |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
393 |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
394 /* 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
|
395 |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
396 struct frame * |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
397 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
|
398 struct x_display_info *dpyinfo; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
399 int wdesc; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
400 { |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
401 Lisp_Object tail, frame; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
402 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
|
403 struct x_output *x; |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
404 |
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
|
405 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
|
406 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
407 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
|
408 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
409 frame = XCAR (tail); |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
410 if (!GC_FRAMEP (frame)) |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
411 continue; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
412 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
413 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
|
414 continue; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
415 x = f->output_data.x; |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
416 /* 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
|
417 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
|
418 return f; |
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
419 else if (x->widget) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
420 { |
49322 | 421 #ifdef USE_GTK |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
422 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 423 if (gwdesc != 0 |
424 && (gwdesc == x->widget | |
425 || gwdesc == x->edit_widget | |
426 || gwdesc == x->vbox_widget)) | |
427 return f; | |
428 #else | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
429 if (wdesc == XtWindow (x->widget) |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
430 || wdesc == XtWindow (x->column_widget) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
431 || wdesc == XtWindow (x->edit_widget)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
432 return f; |
49322 | 433 #endif |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
434 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
435 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
|
436 /* A tooltip frame. */ |
11611
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
437 return f; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
438 } |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
439 return 0; |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
440 } |
bf53e9945a3c
(x_non_menubar_window_to_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11537
diff
changeset
|
441 |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
442 /* 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
|
443 |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
444 struct frame * |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
445 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
|
446 struct x_display_info *dpyinfo; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
447 int wdesc; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
448 { |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
449 Lisp_Object tail, frame; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
450 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
|
451 struct x_output *x; |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
452 |
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
|
453 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
|
454 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
455 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
|
456 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
457 frame = XCAR (tail); |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
458 if (!GC_FRAMEP (frame)) |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
459 continue; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
460 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
461 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
|
462 continue; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
463 x = f->output_data.x; |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
464 /* Match if the window is this frame's menubar. */ |
49322 | 465 #ifdef USE_GTK |
466 if (x->menubar_widget) | |
467 { | |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
468 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 469 int found = 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
470 |
49322 | 471 BLOCK_INPUT; |
472 if (gwdesc != 0 | |
473 && (gwdesc == x->menubar_widget | |
474 || gtk_widget_get_parent (gwdesc) == x->menubar_widget)) | |
475 found = 1; | |
476 UNBLOCK_INPUT; | |
477 if (found) return f; | |
478 } | |
479 #else | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
480 if (x->menubar_widget |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
481 && 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
|
482 return f; |
49322 | 483 #endif |
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
484 } |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
485 return 0; |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
486 } |
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
487 |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
488 /* 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
|
489 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
|
490 |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
491 struct frame * |
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
492 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
|
493 struct x_display_info *dpyinfo; |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
494 int wdesc; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
495 { |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
496 Lisp_Object tail, frame; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
497 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
|
498 struct x_output *x; |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
499 |
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
|
500 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
|
501 |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
502 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
|
503 { |
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
504 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
|
505 if (!GC_FRAMEP (frame)) |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
506 continue; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
507 f = XFRAME (frame); |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
508 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
|
509 continue; |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
510 x = f->output_data.x; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
511 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
512 if (x->widget) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
513 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
514 /* This frame matches if the window is its topmost widget. */ |
49322 | 515 #ifdef USE_GTK |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
516 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
49322 | 517 if (gwdesc == x->widget) |
518 return f; | |
519 #else | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
520 if (wdesc == XtWindow (x->widget)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
521 return f; |
12019
63ee64941021
(x_top_window_to_frame): Don't match menu-bar widget.
Karl Heuer <kwzh@gnu.org>
parents:
12011
diff
changeset
|
522 #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
|
523 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
|
524 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
|
525 /* Match if the window is this frame's menubar. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
526 if (x->menubar_widget |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
527 && wdesc == XtWindow (x->menubar_widget)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
528 return f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
529 #endif |
49322 | 530 #endif |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
531 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
532 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
|
533 /* Tooltip frame. */ |
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
534 return f; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
535 } |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
536 return 0; |
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
537 } |
49322 | 538 #endif /* USE_X_TOOLKIT || USE_GTK */ |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
539 |
389 | 540 |
9543
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
541 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
542 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
|
543 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
|
544 |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
545 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
|
546 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
|
547 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
|
548 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
|
549 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
|
550 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
|
551 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
|
552 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
|
553 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
|
554 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
|
555 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
|
556 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
|
557 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
|
558 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
|
559 Lisp_Object)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
560 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
|
561 Lisp_Object)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
562 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
|
563 Lisp_Object, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
564 Lisp_Object, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
565 char *, char *, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
566 int)); |
389 | 567 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
568 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
569 /* 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
|
570 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
|
571 not Emacs's own window. */ |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
572 |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
573 void |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
574 x_real_positions (f, xptr, yptr) |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
575 FRAME_PTR f; |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
576 int *xptr, *yptr; |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
577 { |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
578 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
|
579 int real_x = 0, real_y = 0; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
580 int had_errors = 0; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
581 Window win = f->output_data.x->parent_desc; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
582 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
583 int count; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
584 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
585 BLOCK_INPUT; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
586 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
587 count = x_catch_errors (FRAME_X_DISPLAY (f)); |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
588 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
589 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
|
590 win = FRAME_OUTER_WINDOW (f); |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
591 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
592 /* 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
|
593 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
|
594 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
|
595 should be the outer WM window. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
596 for (;;) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
597 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
598 Window wm_window, rootw; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
599 Window *tmp_children; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
600 unsigned int tmp_nchildren; |
43914
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
601 int success; |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
602 |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
603 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
|
604 &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
|
605 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
606 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
|
607 |
43914
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
608 /* 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
|
609 if (! success) |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
610 break; |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
611 |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
612 XFree ((char *) tmp_children); |
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
613 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
614 if (wm_window == rootw || had_errors) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
615 break; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
616 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
617 win = wm_window; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
618 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
619 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
620 if (! had_errors) |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
621 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
622 int ign; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
623 Window child, rootw; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
624 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
625 /* 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
|
626 XGetGeometry (FRAME_X_DISPLAY (f), win, |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
627 &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
|
628 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
629 /* Translate real coordinates to coordinates relative to our |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
630 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
|
631 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
|
632 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
|
633 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
634 ------------------ ---> x |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
635 | title | |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
636 | ----------------- v y |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
637 | | our window |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
638 */ |
17954
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
639 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
|
640 |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
641 /* From-window, to-window. */ |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
642 FRAME_X_DISPLAY_INFO (f)->root_window, |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
643 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
|
644 |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
645 /* From-position, to-position. */ |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
646 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
|
647 |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
648 /* Child of win. */ |
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
649 &child); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
650 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
651 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
|
652 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
653 outer_x = win_x; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
654 outer_y = win_y; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
655 } |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
656 else |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
657 { |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
658 XTranslateCoordinates (FRAME_X_DISPLAY (f), |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
659 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
660 /* From-window, to-window. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
661 FRAME_X_DISPLAY_INFO (f)->root_window, |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
662 FRAME_OUTER_WINDOW (f), |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
663 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
664 /* From-position, to-position. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
665 real_x, real_y, &outer_x, &outer_y, |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
666 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
667 /* Child of win. */ |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
668 &child); |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
669 } |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
670 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
671 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
|
672 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
673 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
674 x_uncatch_errors (FRAME_X_DISPLAY (f), count); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
675 |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
676 UNBLOCK_INPUT; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
677 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
678 if (had_errors) return; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
679 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
680 f->x_pixels_diff = -win_x; |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
681 f->y_pixels_diff = -win_y; |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
682 |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
683 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
|
684 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
|
685 |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
686 *xptr = real_x; |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
687 *yptr = real_y; |
7408
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
688 } |
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
689 |
389 | 690 |
10920
bb3f9aaf0e46
(defined_color): If colormap is full, find closest match.
Richard M. Stallman <rms@gnu.org>
parents:
10742
diff
changeset
|
691 |
25528
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 /* 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
|
694 |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
695 void |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
696 gamma_correct (f, color) |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
697 struct frame *f; |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
698 XColor *color; |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
699 { |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
700 if (f->gamma) |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
701 { |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
702 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
|
703 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
|
704 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
|
705 } |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
706 } |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
707 |
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
708 |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
709 /* 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
|
710 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
|
711 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
|
712 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
|
713 |
389 | 714 int |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
715 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
|
716 struct frame *f; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
717 char *color_name; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
718 XColor *color; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
719 int alloc_p; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
720 { |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
721 int success_p; |
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
722 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
|
723 Colormap cmap = FRAME_X_COLORMAP (f); |
389 | 724 |
725 BLOCK_INPUT; | |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
726 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
|
727 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
|
728 success_p = x_alloc_nearest_color (f, cmap, color); |
389 | 729 UNBLOCK_INPUT; |
730 | |
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
731 return success_p; |
389 | 732 } |
733 | |
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 /* 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
|
736 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
|
737 Signal an error if color can't be allocated. */ |
389 | 738 |
739 int | |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
740 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
|
741 FRAME_PTR f; |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
742 Lisp_Object color_name; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
743 int mono_color; |
389 | 744 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
745 XColor cdef; |
389 | 746 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
747 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
|
748 |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
749 #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
|
750 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
|
751 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
|
752 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
|
753 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
|
754 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
|
755 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
|
756 #endif |
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 /* 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
|
759 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
|
760 return mono_color; |
389 | 761 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
762 /* 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
|
763 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
|
764 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
|
765 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
|
766 |
31902
f526f6f002d7
(x_decode_color): Don't return a Lisp_Object.
Gerd Moellmann <gerd@gnu.org>
parents:
31824
diff
changeset
|
767 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
|
768 Fcons (color_name, Qnil))); |
f526f6f002d7
(x_decode_color): Don't return a Lisp_Object.
Gerd Moellmann <gerd@gnu.org>
parents:
31824
diff
changeset
|
769 return 0; |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
770 } |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
771 |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
772 |
389 | 773 |
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
774 /* 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
|
775 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
|
776 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
|
777 |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
778 static void |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
779 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
|
780 struct frame *f; |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
781 Lisp_Object new_value, old_value; |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
782 { |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
783 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
|
784 } |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
785 |
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
|
786 #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
|
787 |
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
|
788 /* 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
|
789 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
|
790 |
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
791 int |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
792 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
|
793 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
|
794 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
|
795 { |
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
|
796 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
|
797 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
|
798 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
|
799 |
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 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
|
801 |
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 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
|
803 |
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 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
|
805 { |
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 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
|
807 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
|
808 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
|
809 |
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 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
|
811 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
|
812 |
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 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
|
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 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
|
816 { |
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
|
817 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
|
818 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
|
819 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
|
820 |
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
|
821 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
|
822 } |
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
|
823 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
|
824 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
|
825 |
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
|
826 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
|
827 } |
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
|
828 |
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
|
829 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
|
830 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
|
831 } |
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
832 #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
|
833 |
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
834 |
771 | 835 /* Functions called only from `x_set_frame_param' |
389 | 836 to set individual parameters. |
837 | |
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
|
838 If FRAME_X_WINDOW (f) is 0, |
771 | 839 the frame is being created and its X-window does not exist yet. |
389 | 840 In that case, just record the parameter's new value |
841 in the standard place; do not attempt to change the window. */ | |
842 | |
843 void | |
771 | 844 x_set_foreground_color (f, arg, oldval) |
845 struct frame *f; | |
389 | 846 Lisp_Object arg, oldval; |
847 { | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
848 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
|
849 unsigned long fg, 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 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
|
852 old_fg = x->foreground_pixel; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
853 x->foreground_pixel = fg; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
854 |
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
|
855 if (FRAME_X_WINDOW (f) != 0) |
389 | 856 { |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
857 Display *dpy = FRAME_X_DISPLAY (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
858 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
859 BLOCK_INPUT; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
860 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
|
861 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
|
862 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
863 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
|
864 { |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
865 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
|
866 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
|
867 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
|
868 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
869 |
389 | 870 UNBLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
871 |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
872 update_face_from_frame_parameter (f, Qforeground_color, arg); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
873 |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
874 if (FRAME_VISIBLE_P (f)) |
771 | 875 redraw_frame (f); |
389 | 876 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
877 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
878 unload_color (f, old_fg); |
389 | 879 } |
880 | |
881 void | |
771 | 882 x_set_background_color (f, arg, oldval) |
883 struct frame *f; | |
389 | 884 Lisp_Object arg, oldval; |
885 { | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
886 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
|
887 unsigned long bg; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
888 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
889 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
|
890 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
|
891 x->background_pixel = bg; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
892 |
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
|
893 if (FRAME_X_WINDOW (f) != 0) |
389 | 894 { |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
895 Display *dpy = FRAME_X_DISPLAY (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
896 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
897 BLOCK_INPUT; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
898 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
|
899 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
|
900 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
|
901 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
|
902 |
49322 | 903 #ifdef USE_GTK |
904 xg_set_background_color (f, bg); | |
905 #endif | |
906 | |
39159
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
907 #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
|
908 toolkit scroll bars. */ |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
909 { |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
910 Lisp_Object bar; |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
911 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
|
912 !NILP (bar); |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
913 bar = XSCROLL_BAR (bar)->next) |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
914 { |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
915 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
|
916 XSetWindowBackground (dpy, window, bg); |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
917 } |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
918 } |
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
919 #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
|
920 |
389 | 921 UNBLOCK_INPUT; |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
922 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
|
923 |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
924 if (FRAME_VISIBLE_P (f)) |
771 | 925 redraw_frame (f); |
389 | 926 } |
927 } | |
928 | |
929 void | |
771 | 930 x_set_mouse_color (f, arg, oldval) |
931 struct frame *f; | |
389 | 932 Lisp_Object arg, oldval; |
933 { | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
934 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
|
935 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
|
936 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
|
937 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
|
938 int count; |
25075
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
939 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
|
940 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
|
941 |
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
942 /* 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
|
943 if (mask_color == pixel) |
35261
ba1f849f9381
(x_set_mouse_color): Fix color allocation.
Gerd Moellmann <gerd@gnu.org>
parents:
35191
diff
changeset
|
944 { |
ba1f849f9381
(x_set_mouse_color): Fix color allocation.
Gerd Moellmann <gerd@gnu.org>
parents:
35191
diff
changeset
|
945 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
|
946 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
|
947 } |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
948 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
949 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
|
950 x->mouse_pixel = pixel; |
389 | 951 |
952 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
|
953 |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3512
diff
changeset
|
954 /* 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
|
955 count = x_catch_errors (dpy); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
956 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
957 if (!NILP (Vx_pointer_shape)) |
389 | 958 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
959 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
|
960 cursor = XCreateFontCursor (dpy, XINT (Vx_pointer_shape)); |
389 | 961 } |
962 else | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
963 cursor = XCreateFontCursor (dpy, XC_xterm); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
964 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
|
965 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
966 if (!NILP (Vx_nontext_pointer_shape)) |
389 | 967 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
968 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
|
969 nontext_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
970 = XCreateFontCursor (dpy, XINT (Vx_nontext_pointer_shape)); |
389 | 971 } |
972 else | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
973 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
|
974 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
|
975 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
976 if (!NILP (Vx_hourglass_pointer_shape)) |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
977 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
978 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
|
979 hourglass_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
980 = 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
|
981 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
982 else |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
983 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
|
984 x_check_errors (dpy, "bad hourglass pointer cursor: %s"); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
985 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
986 if (!NILP (Vx_mode_pointer_shape)) |
389 | 987 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
988 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
|
989 mode_cursor = XCreateFontCursor (dpy, XINT (Vx_mode_pointer_shape)); |
389 | 990 } |
991 else | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
992 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
|
993 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
|
994 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
995 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
|
996 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
997 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
|
998 hand_cursor |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
999 = 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
|
1000 } |
e0938c42218c
(syms_of_xfns): Define Vx_cross_pointer_shape.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6610
diff
changeset
|
1001 else |
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1002 hand_cursor = XCreateFontCursor (dpy, XC_hand2); |
389 | 1003 |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
1004 if (!NILP (Vx_window_horizontal_drag_shape)) |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
1005 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1006 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
|
1007 horizontal_drag_cursor |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1008 = 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
|
1009 } |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
1010 else |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
1011 horizontal_drag_cursor |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1012 = 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
|
1013 |
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
|
1014 /* 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
|
1015 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
|
1016 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
|
1017 |
389 | 1018 { |
1019 XColor fore_color, back_color; | |
1020 | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1021 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
|
1022 x_query_color (f, &fore_color); |
389 | 1023 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
|
1024 x_query_color (f, &back_color); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1025 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1026 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
|
1027 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
|
1028 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
|
1029 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
|
1030 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
|
1031 XRecolorCursor (dpy, horizontal_drag_cursor, &fore_color, &back_color); |
389 | 1032 } |
1033 | |
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
|
1034 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
|
1035 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
|
1036 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1037 if (cursor != x->text_cursor |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1038 && x->text_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1039 XFreeCursor (dpy, x->text_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1040 x->text_cursor = cursor; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1041 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1042 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
|
1043 && x->nontext_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1044 XFreeCursor (dpy, x->nontext_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1045 x->nontext_cursor = nontext_cursor; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1046 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1047 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
|
1048 && x->hourglass_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1049 XFreeCursor (dpy, x->hourglass_cursor); |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1050 x->hourglass_cursor = hourglass_cursor; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1051 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1052 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
|
1053 && x->modeline_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1054 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
|
1055 x->modeline_cursor = mode_cursor; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1056 |
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1057 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
|
1058 && x->hand_cursor != 0) |
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1059 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
|
1060 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
|
1061 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1062 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
|
1063 && x->horizontal_drag_cursor != 0) |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1064 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
|
1065 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
|
1066 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1067 XFlush (dpy); |
389 | 1068 UNBLOCK_INPUT; |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1069 |
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1070 update_face_from_frame_parameter (f, Qmouse_color, arg); |
389 | 1071 } |
1072 | |
1073 void | |
771 | 1074 x_set_cursor_color (f, arg, oldval) |
1075 struct frame *f; | |
389 | 1076 Lisp_Object arg, oldval; |
1077 { | |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1078 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
|
1079 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
|
1080 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
|
1081 |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1082 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
|
1083 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1084 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
|
1085 WHITE_PIX_DEFAULT (f)); |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1086 fore_pixel_allocated_p = 1; |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1087 } |
389 | 1088 else |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1089 fore_pixel = x->background_pixel; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1090 |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1091 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
|
1092 pixel_allocated_p = 1; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1093 |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
1094 /* 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
|
1095 if (pixel == x->background_pixel) |
389 | 1096 { |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1097 if (pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1098 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1099 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
|
1100 pixel_allocated_p = 0; |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1101 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1102 |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1103 pixel = x->mouse_pixel; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1104 if (pixel == fore_pixel) |
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1105 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1106 if (fore_pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1107 { |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1108 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
|
1109 fore_pixel_allocated_p = 0; |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1110 } |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1111 fore_pixel = x->background_pixel; |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1112 } |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1113 } |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1114 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1115 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
|
1116 if (!fore_pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1117 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
|
1118 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
|
1119 |
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1120 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
|
1121 if (!pixel_allocated_p) |
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1122 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
|
1123 x->cursor_pixel = pixel; |
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1124 |
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
|
1125 if (FRAME_X_WINDOW (f) != 0) |
389 | 1126 { |
1127 BLOCK_INPUT; | |
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1128 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
|
1129 XSetForeground (FRAME_X_DISPLAY (f), x->cursor_gc, fore_pixel); |
389 | 1130 UNBLOCK_INPUT; |
1131 | |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
1132 if (FRAME_VISIBLE_P (f)) |
389 | 1133 { |
15999
0e148af7d4ec
(x_set_cursor_color): Use x_update_cursor.
Richard M. Stallman <rms@gnu.org>
parents:
15942
diff
changeset
|
1134 x_update_cursor (f, 0); |
0e148af7d4ec
(x_set_cursor_color): Use x_update_cursor.
Richard M. Stallman <rms@gnu.org>
parents:
15942
diff
changeset
|
1135 x_update_cursor (f, 1); |
389 | 1136 } |
1137 } | |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1138 |
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1139 update_face_from_frame_parameter (f, Qcursor_color, arg); |
389 | 1140 } |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1141 |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1142 /* 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
|
1143 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
|
1144 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
|
1145 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1146 void |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1147 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
|
1148 struct frame *f; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1149 int pix; |
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 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
|
1152 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
|
1153 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1154 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
|
1155 { |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1156 BLOCK_INPUT; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1157 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
|
1158 (unsigned long)pix); |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1159 UNBLOCK_INPUT; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1160 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1161 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
|
1162 redraw_frame (f); |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1163 } |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1164 } |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1165 |
771 | 1166 /* Set the border-color of frame F to value described by ARG. |
389 | 1167 ARG can be a string naming a color. |
1168 The border-color is used for the border that is drawn by the X server. | |
1169 Note that this does not fully take effect if done before | |
771 | 1170 F has an x-window; it must be redone when the window is created. |
389 | 1171 |
1172 Note: this is done in two routines because of the way X10 works. | |
1173 | |
1174 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
|
1175 and so emacs' border colors may be overridden. */ |
389 | 1176 |
1177 void | |
771 | 1178 x_set_border_color (f, arg, oldval) |
1179 struct frame *f; | |
389 | 1180 Lisp_Object arg, oldval; |
1181 { | |
1182 int pix; | |
1183 | |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1184 CHECK_STRING (arg); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1185 pix = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
771 | 1186 x_set_border_pixel (f, pix); |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1187 update_face_from_frame_parameter (f, Qborder_color, arg); |
389 | 1188 } |
1189 | |
28347
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1190 |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1191 void |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1192 x_set_cursor_type (f, arg, oldval) |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1193 FRAME_PTR f; |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1194 Lisp_Object arg, oldval; |
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1195 { |
47142
21cac7a2dcb9
(Vblink_cursor_alist): Removed.
Kim F. Storm <storm@cua.dk>
parents:
47086
diff
changeset
|
1196 set_frame_cursor_types (f, arg); |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1197 |
43987
ea6530f23937
(x_set_cursor_type): Set cursor_type_changed,
Richard M. Stallman <rms@gnu.org>
parents:
43917
diff
changeset
|
1198 /* 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
|
1199 cursor_type_changed = 1; |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1200 } |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1201 |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1202 void |
771 | 1203 x_set_icon_type (f, arg, oldval) |
1204 struct frame *f; | |
389 | 1205 Lisp_Object arg, oldval; |
1206 { | |
1207 int result; | |
1208 | |
9543
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1209 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
|
1210 { |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1211 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
|
1212 return; |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1213 } |
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1214 else if (!STRINGP (oldval) && EQ (oldval, Qnil) == EQ (arg, Qnil)) |
389 | 1215 return; |
1216 | |
1217 BLOCK_INPUT; | |
485 | 1218 if (NILP (arg)) |
12073 | 1219 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
|
1220 (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
|
1221 ? 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
|
1222 : f->name))); |
9563 | 1223 else |
1224 result = x_bitmap_icon (f, arg); | |
389 | 1225 |
1226 if (result) | |
1227 { | |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
1228 UNBLOCK_INPUT; |
9353
30659ed71a1b
(x_set_icon_type): Remove period from error message.
Richard M. Stallman <rms@gnu.org>
parents:
9329
diff
changeset
|
1229 error ("No icon window available"); |
389 | 1230 } |
1231 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1232 XFlush (FRAME_X_DISPLAY (f)); |
389 | 1233 UNBLOCK_INPUT; |
1234 } | |
1235 | |
12073 | 1236 void |
1237 x_set_icon_name (f, arg, oldval) | |
1238 struct frame *f; | |
1239 Lisp_Object arg, oldval; | |
1240 { | |
1241 int result; | |
1242 | |
1243 if (STRINGP (arg)) | |
1244 { | |
1245 if (STRINGP (oldval) && EQ (Fstring_equal (oldval, arg), Qt)) | |
1246 return; | |
1247 } | |
1248 else if (!STRINGP (oldval) && EQ (oldval, Qnil) == EQ (arg, Qnil)) | |
1249 return; | |
1250 | |
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
1251 f->icon_name = arg; |
12073 | 1252 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
1253 if (f->output_data.x->icon_bitmap != 0) |
12073 | 1254 return; |
1255 | |
1256 BLOCK_INPUT; | |
1257 | |
1258 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
|
1259 (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
|
1260 ? 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
|
1261 : !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
|
1262 ? f->title |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1263 : f->name))); |
12073 | 1264 |
1265 if (result) | |
1266 { | |
1267 UNBLOCK_INPUT; | |
1268 error ("No icon window available"); | |
1269 } | |
1270 | |
1271 XFlush (FRAME_X_DISPLAY (f)); | |
1272 UNBLOCK_INPUT; | |
1273 } | |
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1274 |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1275 |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1276 void |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1277 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
|
1278 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
|
1279 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
|
1280 { |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1281 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
|
1282 #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
|
1283 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
|
1284 #endif |
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1285 |
2880
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1286 /* 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
|
1287 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
|
1288 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
|
1289 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
|
1290 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
|
1291 return; |
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1292 |
9103
948e8acb6990
(x_set_frame_parameters, x_set_menu_bar_lines, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
9022
diff
changeset
|
1293 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
|
1294 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
|
1295 else |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1296 nlines = 0; |
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1297 |
17556
c0f8f4264f7a
(x_set_menu_bar_lines): Increment windows_or_buffers_changed.
Richard M. Stallman <rms@gnu.org>
parents:
17106
diff
changeset
|
1298 /* 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
|
1299 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
|
1300 |
49322 | 1301 #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
|
1302 FRAME_MENU_BAR_LINES (f) = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1303 if (nlines) |
12832
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1304 { |
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1305 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
|
1306 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
|
1307 /* 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
|
1308 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
|
1309 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1310 else |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1311 { |
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
|
1312 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
|
1313 free_frame_menubar (f); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1314 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
|
1315 if (FRAME_X_P (f)) |
714433bead7f
(x_set_menu_bar_lines) [USE_X_TOOLKIT]:
Richard M. Stallman <rms@gnu.org>
parents:
13508
diff
changeset
|
1316 f->output_data.x->menubar_widget = 0; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1317 } |
49322 | 1318 #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
|
1319 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
|
1320 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
|
1321 #endif /* not USE_X_TOOLKIT */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1322 adjust_glyphs (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1323 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1324 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1325 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1326 /* 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
|
1327 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
|
1328 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
|
1329 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
|
1330 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
|
1331 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1332 void |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1333 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
|
1334 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1335 Lisp_Object value, oldval; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1336 { |
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1337 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
|
1338 Lisp_Object root_window; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1339 |
35819
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1340 /* 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
|
1341 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
|
1342 return; |
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1343 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1344 /* 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
|
1345 if (INTEGERP (value) && XINT (value) >= 0) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1346 nlines = XFASTINT (value); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1347 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1348 nlines = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1349 |
49322 | 1350 #ifdef USE_GTK |
1351 FRAME_TOOL_BAR_LINES (f) = 0; | |
1352 if (nlines) | |
1353 { | |
1354 FRAME_EXTERNAL_TOOL_BAR (f) = 1; | |
1355 if (FRAME_X_P (f) && f->output_data.x->toolbar_widget == 0) | |
1356 /* Make sure next redisplay shows the tool bar. */ | |
1357 XWINDOW (FRAME_SELECTED_WINDOW (f))->update_mode_line = Qt; | |
1358 update_frame_tool_bar (f); | |
1359 } | |
1360 else | |
1361 { | |
1362 if (FRAME_EXTERNAL_TOOL_BAR (f)) | |
1363 free_frame_tool_bar (f); | |
1364 FRAME_EXTERNAL_TOOL_BAR (f) = 0; | |
1365 } | |
1366 | |
1367 return; | |
1368 #endif | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1369 |
49322 | 1370 /* 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
|
1371 ++windows_or_buffers_changed; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1372 |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1373 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
|
1374 |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1375 /* 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
|
1376 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
|
1377 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
|
1378 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
|
1379 { |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1380 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
|
1381 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
|
1382 } |
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1383 |
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1384 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
|
1385 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
|
1386 adjust_glyphs (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1387 |
31999
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1388 /* 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
|
1389 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
|
1390 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
|
1391 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
|
1392 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
|
1393 below the menu bar. */ |
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1394 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
|
1395 { |
83100
4970ad4995f5
Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83078
diff
changeset
|
1396 clear_frame (f); |
33601
1ee8ea329b7b
(x_set_tool_bar_lines): When clearing the frame, also
Gerd Moellmann <gerd@gnu.org>
parents:
33589
diff
changeset
|
1397 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
|
1398 } |
33747
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1399 |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1400 /* 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
|
1401 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
|
1402 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
|
1403 if (delta < 0) |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1404 { |
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1405 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
|
1406 int width = FRAME_PIXEL_WIDTH (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1407 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
|
1408 |
59980
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1409 /* height can be zero here. */ |
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1410 if (height > 0 && width > 0) |
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1411 { |
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1412 BLOCK_INPUT; |
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1413 x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1414 0, y, width, height, False); |
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1415 UNBLOCK_INPUT; |
7f8e4c715b72
(x_set_tool_bar_lines): Check that width and height is greater than
Jan Djärv <jan.h.d@swipnet.se>
parents:
59976
diff
changeset
|
1416 } |
38625
0bfdfd449f4a
(x_set_tool_bar_lines): Clear the tool bar window's
Gerd Moellmann <gerd@gnu.org>
parents:
38575
diff
changeset
|
1417 |
0bfdfd449f4a
(x_set_tool_bar_lines): Clear the tool bar window's
Gerd Moellmann <gerd@gnu.org>
parents:
38575
diff
changeset
|
1418 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
|
1419 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
|
1420 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1421 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1422 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1423 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1424 /* 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
|
1425 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
|
1426 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
|
1427 the frame parameter. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1428 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1429 void |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1430 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
|
1431 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1432 Lisp_Object value, oldval; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1433 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1434 unsigned long pixel; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1435 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1436 if (STRINGP (value)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1437 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
|
1438 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1439 pixel = -1; |
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 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
|
1442 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
|
1443 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1444 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
|
1445 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
|
1446 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1447 /* Remove all scroll bars because they have wrong colors. */ |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1448 if (FRAME_DEVICE (f)->condemn_scroll_bars_hook) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1449 (*FRAME_DEVICE (f)->condemn_scroll_bars_hook) (f); |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1450 if (FRAME_DEVICE (f)->judge_scroll_bars_hook) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1451 (*FRAME_DEVICE (f)->judge_scroll_bars_hook) (f); |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1452 |
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1453 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
|
1454 redraw_frame (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1455 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1456 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1457 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1458 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1459 /* 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
|
1460 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
|
1461 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
|
1462 parameter. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1463 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1464 void |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1465 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
|
1466 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1467 Lisp_Object value, oldval; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1468 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1469 unsigned long pixel; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1470 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1471 if (STRINGP (value)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1472 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
|
1473 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1474 pixel = -1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1475 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1476 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
|
1477 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
|
1478 |
39619
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1479 #ifdef USE_TOOLKIT_SCROLL_BARS |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1480 /* Scrollbar shadow colors. */ |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1481 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
|
1482 { |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1483 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
|
1484 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
|
1485 } |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1486 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
|
1487 { |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1488 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
|
1489 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
|
1490 } |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1491 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1492 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1493 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
|
1494 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
|
1495 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1496 /* Remove all scroll bars because they have wrong colors. */ |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1497 if (FRAME_DEVICE (f)->condemn_scroll_bars_hook) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1498 (*FRAME_DEVICE (f)->condemn_scroll_bars_hook) (f); |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1499 if (FRAME_DEVICE (f)->judge_scroll_bars_hook) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
1500 (*FRAME_DEVICE (f)->judge_scroll_bars_hook) (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1501 |
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1502 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
|
1503 redraw_frame (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1504 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1505 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1506 |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1507 |
30383 | 1508 /* 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
|
1509 XICCC (X Inter Client Communication Conventions). |
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 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
|
1512 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
|
1513 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
|
1514 should be freed by `xfree' by a caller. |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1515 |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1516 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
|
1517 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
|
1518 may run Lisp code). |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1519 |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1520 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
|
1521 |
30354 | 1522 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
|
1523 which means that the `encoding' of the result can be `STRING'. |
30354 | 1524 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
|
1525 the result should be `COMPOUND_TEXT'. */ |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1526 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1527 unsigned char * |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1528 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
|
1529 Lisp_Object string, coding_system; |
30354 | 1530 int *text_bytes, *stringp; |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1531 int selectionp; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1532 { |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1533 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
|
1534 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
|
1535 int bytes = SBYTES (string); |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1536 int charset_info; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1537 int bufsize; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1538 unsigned char *buf; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1539 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
|
1540 extern Lisp_Object Qcompound_text_with_extensions; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1541 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1542 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
|
1543 if (charset_info == 0) |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1544 { |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1545 /* 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
|
1546 *text_bytes = bytes; |
30354 | 1547 *stringp = 1; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1548 return str; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1549 } |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1550 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1551 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
|
1552 if (selectionp |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1553 && SYMBOLP (coding.pre_write_conversion) |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1554 && !NILP (Ffboundp (coding.pre_write_conversion))) |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1555 { |
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1556 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
|
1557 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
|
1558 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
|
1559 bytes = SBYTES (string); |
43452
75677c801c26
(x_encode_text): Accept additional arg SELECTIONP; all
Eli Zaretskii <eliz@gnu.org>
parents:
43426
diff
changeset
|
1560 } |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1561 coding.src_multibyte = 1; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1562 coding.dst_multibyte = 0; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1563 coding.mode |= CODING_MODE_LAST_BLOCK; |
30354 | 1564 if (coding.type == coding_type_iso2022) |
1565 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
|
1566 /* 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
|
1567 coding.composing = COMPOSITION_DISABLED; |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1568 bufsize = encoding_buffer_size (&coding, bytes); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1569 buf = (unsigned char *) xmalloc (bufsize); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1570 encode_coding (&coding, str, buf, bytes, bufsize); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1571 *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
|
1572 *stringp = (charset_info == 1 |
97212b1039e9
(x_encode_text): Return stringp non-NULL if coding_system
Eli Zaretskii <eliz@gnu.org>
parents:
45413
diff
changeset
|
1573 || (!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
|
1574 && !EQ (coding_system, Qcompound_text_with_extensions))); |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1575 return buf; |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1576 } |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1577 |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1578 |
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
|
1579 /* 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
|
1580 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
|
1581 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
|
1582 |
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 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
|
1584 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
|
1585 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
|
1586 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
|
1587 { |
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 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
|
1589 { |
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 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
|
1591 #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
|
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 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
|
1594 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
|
1595 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
|
1596 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
|
1597 |
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 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
|
1599 /* 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
|
1600 |
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 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
|
1602 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
|
1603 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
|
1604 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
|
1605 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
|
1606 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
|
1607 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
|
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 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
|
1610 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
|
1611 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
|
1612 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
|
1613 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
|
1614 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
|
1615 : 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
|
1616 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
|
1617 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
|
1618 |
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 /* 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
|
1620 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
|
1621 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
|
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 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
|
1624 { |
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 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
|
1626 } |
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 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
|
1628 { |
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 /* 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
|
1630 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
|
1631 &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
|
1632 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
|
1633 : 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
|
1634 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
|
1635 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
|
1636 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
|
1637 } |
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 |
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 #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
|
1640 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
|
1641 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
|
1642 #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
|
1643 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
|
1644 #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
|
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 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
|
1647 |
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
|
1648 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
|
1649 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
|
1650 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
|
1651 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
|
1652 } |
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
|
1653 #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
|
1654 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
|
1655 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
|
1656 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
|
1657 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
|
1658 #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
|
1659 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
|
1660 } |
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
|
1661 } |
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
|
1662 |
4650 | 1663 /* 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
|
1664 x_id_name. |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1665 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1666 If EXPLICIT is non-zero, that indicates that lisp code is setting the |
4650 | 1667 name; if NAME is a string, set F's name to NAME and set |
1668 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
|
1669 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1670 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
|
1671 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
|
1672 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
|
1673 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1674 void |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1675 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
|
1676 struct frame *f; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1677 Lisp_Object name; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1678 int explicit; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1679 { |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1680 /* 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
|
1681 Emacs redisplay code. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1682 if (explicit) |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1683 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1684 /* 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
|
1685 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
|
1686 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
|
1687 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
|
1688 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1689 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
|
1690 } |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1691 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
|
1692 return; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1693 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1694 /* 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
|
1695 if (NILP (name)) |
8090
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1696 { |
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1697 /* 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
|
1698 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
|
1699 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
|
1700 SDATA (f->name))) |
8090
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1701 return; |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
1702 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
|
1703 } |
833 | 1704 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1705 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
|
1706 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1707 /* 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
|
1708 if (! NILP (Fstring_equal (name, f->name))) |
727 | 1709 return; |
1710 | |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1711 f->name = name; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1712 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1713 /* 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
|
1714 the name parameter. */ |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1715 if (! NILP (f->title)) |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1716 name = f->title; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1717 |
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
|
1718 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
|
1719 } |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1720 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1721 /* 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
|
1722 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
|
1723 redisplay code. */ |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1724 void |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1725 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
|
1726 FRAME_PTR f; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1727 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
|
1728 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1729 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
|
1730 } |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1731 |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1732 /* 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
|
1733 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
|
1734 lisp code. */ |
1125
059624bf9bf0
Declare x_implicitly_set_name to be void.
Jim Blandy <jimb@redhat.com>
parents:
1096
diff
changeset
|
1735 void |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1736 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
|
1737 FRAME_PTR f; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1738 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
|
1739 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1740 x_set_name (f, arg, 0); |
389 | 1741 } |
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 /* 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
|
1744 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
|
1745 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1746 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
|
1747 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
|
1748 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
|
1749 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1750 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
|
1751 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
|
1752 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
|
1753 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1754 void |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
1755 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
|
1756 struct frame *f; |
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
1757 Lisp_Object name, old_name; |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1758 { |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1759 /* 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
|
1760 if (EQ (name, f->title)) |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1761 return; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1762 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1763 update_mode_lines = 1; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1764 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1765 f->title = name; |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1766 |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1767 if (NILP (name)) |
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1768 name = f->name; |
16732
f52c4fd47f03
(x_set_title): Check data type of NAME.
Richard M. Stallman <rms@gnu.org>
parents:
16682
diff
changeset
|
1769 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1770 CHECK_STRING (name); |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1771 |
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
|
1772 x_set_name_internal (f, name); |
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1773 } |
9580
bcc9342cf633
(x_set_unsplittable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
9563
diff
changeset
|
1774 |
bcc9342cf633
(x_set_unsplittable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
9563
diff
changeset
|
1775 void |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1776 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
|
1777 struct frame *f; |
8942
a43f3b56ed47
(x_set_scroll_bar_width): New function.
Karl Heuer <kwzh@gnu.org>
parents:
8845
diff
changeset
|
1778 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1779 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
|
1780 |
25511
9bc9d4d6c716
(x_set_scroll_bar_width): Change conditional compilation
Gerd Moellmann <gerd@gnu.org>
parents:
25464
diff
changeset
|
1781 #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
|
1782 /* 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
|
1783 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
|
1784 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
|
1785 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
|
1786 #else |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1787 /* 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
|
1788 character width. */ |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1789 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
|
1790 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1791 /* 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
|
1792 scroll bar. */ |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1793 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
|
1794 #endif |
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1795 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1796 |
389 | 1797 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1798 /* 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
|
1799 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
|
1800 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
|
1801 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
|
1802 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1803 static Lisp_Object |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1804 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
|
1805 foreground_p) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1806 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1807 Lisp_Object alist; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1808 Lisp_Object prop; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1809 char *xprop; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1810 char *xclass; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1811 int foreground_p; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1812 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1813 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
|
1814 Lisp_Object 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 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
|
1817 if (EQ (tem, Qunbound)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1818 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1819 #ifdef USE_TOOLKIT_SCROLL_BARS |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1820 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1821 /* 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
|
1822 specified. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1823 tem = display_x_get_resource (dpyinfo, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1824 build_string (foreground_p |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1825 ? "foreground" |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1826 : "background"), |
39812
66e0816837a8
Update calls to openp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39682
diff
changeset
|
1827 empty_string, |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1828 build_string ("verticalScrollBar"), |
39812
66e0816837a8
Update calls to openp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39682
diff
changeset
|
1829 empty_string); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1830 if (!STRINGP (tem)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1831 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1832 /* 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
|
1833 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
|
1834 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
|
1835 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
|
1836 specified. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1837 tem = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1838 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1839 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1840 #else /* not USE_TOOLKIT_SCROLL_BARS */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1841 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1842 tem = Qnil; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1843 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1844 #endif /* not USE_TOOLKIT_SCROLL_BARS */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1845 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1846 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1847 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
|
1848 return tem; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1849 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1850 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1851 |
389 | 1852 |
5229
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1853 #if !defined (HAVE_X11R4) && !defined (HAVE_XSETWMPROTOCOLS) |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1854 |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1855 Status |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1856 XSetWMProtocols (dpy, w, protocols, count) |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1857 Display *dpy; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1858 Window w; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1859 Atom *protocols; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1860 int count; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1861 { |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1862 Atom prop; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1863 prop = XInternAtom (dpy, "WM_PROTOCOLS", False); |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1864 if (prop == None) return False; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1865 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
|
1866 (unsigned char *) protocols, count); |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1867 return True; |
110539a25499
(Fx_list_fonts): Handle BROKEN_XLISTFONTSWITHINFO.
Richard M. Stallman <rms@gnu.org>
parents:
5193
diff
changeset
|
1868 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1869 #endif /* not HAVE_X11R4 && not HAVE_XSETWMPROTOCOLS */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1870 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1871 #ifdef USE_X_TOOLKIT |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1872 |
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
|
1873 /* 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
|
1874 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
|
1875 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
|
1876 for example, but Xt doesn't). */ |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1877 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1878 static void |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1879 hack_wm_protocols (f, widget) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1880 FRAME_PTR f; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1881 Widget widget; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1882 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1883 Display *dpy = XtDisplay (widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1884 Window w = XtWindow (widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1885 int need_delete = 1; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1886 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
|
1887 int need_save = 1; |
5671
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 BLOCK_INPUT; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1890 { |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1891 Atom type; |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1892 unsigned char *catoms; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1893 int format = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1894 unsigned long nitems = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1895 unsigned long bytes_after; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1896 |
11882
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1897 if ((XGetWindowProperty (dpy, w, |
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1898 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
|
1899 (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
|
1900 &type, &format, &nitems, &bytes_after, |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1901 &catoms) |
11882
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1902 == Success) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1903 && format == 32 && type == XA_ATOM) |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1904 { |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1905 Atom *atoms = (Atom *) catoms; |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1906 while (nitems > 0) |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1907 { |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1908 nitems--; |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1909 if (atoms[nitems] |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1910 == FRAME_X_DISPLAY_INFO (f)->Xatom_wm_delete_window) |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1911 need_delete = 0; |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1912 else if (atoms[nitems] |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1913 == FRAME_X_DISPLAY_INFO (f)->Xatom_wm_take_focus) |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1914 need_focus = 0; |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1915 else if (atoms[nitems] |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1916 == FRAME_X_DISPLAY_INFO (f)->Xatom_wm_save_yourself) |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1917 need_save = 0; |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1918 } |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1919 } |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1920 if (catoms) |
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1921 XFree (catoms); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1922 } |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1923 { |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1924 Atom props [10]; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1925 int count = 0; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1926 if (need_delete) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1927 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
|
1928 if (need_focus) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1929 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
|
1930 if (need_save) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1931 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
|
1932 if (count) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1933 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
|
1934 XA_ATOM, 32, PropModeAppend, |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1935 (unsigned char *) props, count); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1936 } |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1937 UNBLOCK_INPUT; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1938 } |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1939 #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
|
1940 |
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
1941 |
27502
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 /* Support routines for XIC (X Input Context). */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1944 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1945 #ifdef HAVE_X_I18N |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1946 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1947 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
|
1948 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
|
1949 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1950 |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
1951 /* Supported XIM styles, ordered by preference. */ |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1952 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1953 static XIMStyle supported_xim_styles[] = |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1954 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1955 XIMPreeditPosition | XIMStatusArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1956 XIMPreeditPosition | XIMStatusNothing, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1957 XIMPreeditPosition | XIMStatusNone, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1958 XIMPreeditNothing | XIMStatusArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1959 XIMPreeditNothing | XIMStatusNothing, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1960 XIMPreeditNothing | XIMStatusNone, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1961 XIMPreeditNone | XIMStatusArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1962 XIMPreeditNone | XIMStatusNothing, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1963 XIMPreeditNone | XIMStatusNone, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1964 0, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1965 }; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1966 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1967 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1968 /* 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
|
1969 |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1970 char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*"; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1971 |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1972 /* Create an Xt fontset spec from the name of a base font. |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1973 If `motif' is True use the Motif syntax. */ |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1974 char * |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1975 xic_create_fontsetname (base_fontname, motif) |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1976 char *base_fontname; |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1977 Bool motif; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1978 { |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1979 const char *sep = motif ? ";" : ","; |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1980 char *fontsetname; |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1981 |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1982 /* Make a fontset name from the base font name. */ |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1983 if (xic_defaut_fontset == base_fontname) |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1984 { /* There is no base font name, use the default. */ |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1985 int len = strlen (base_fontname) + 2; |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1986 fontsetname = xmalloc (len); |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1987 bzero (fontsetname, len); |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1988 strcpy (fontsetname, base_fontname); |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1989 } |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1990 else |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1991 { |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1992 /* Make a fontset name from the base font name. |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1993 The font set will be made of the following elements: |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1994 - the base font. |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1995 - the base font where the charset spec is replaced by -*-*. |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1996 - the same but with the family also replaced with -*-*-. */ |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1997 char *p = base_fontname; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1998 int i; |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1999 |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2000 for (i = 0; *p; p++) |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2001 if (*p == '-') i++; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2002 if (i != 14) |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2003 { /* As the font name doesn't conform to XLFD, we can't |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2004 modify it to generalize it to allcs and allfamilies. |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2005 Use the specified font plus the default. */ |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2006 int len = strlen (base_fontname) + strlen (xic_defaut_fontset) + 3; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2007 fontsetname = xmalloc (len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2008 bzero (fontsetname, len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2009 strcpy (fontsetname, base_fontname); |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2010 strcat (fontsetname, sep); |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2011 strcat (fontsetname, xic_defaut_fontset); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2012 } |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2013 else |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2014 { |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2015 int len; |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2016 char *p1 = NULL, *p2 = NULL; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2017 char *font_allcs = NULL; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2018 char *font_allfamilies = NULL; |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2019 char *font_all = NULL; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2020 char *allcs = "*-*-*-*-*-*-*"; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2021 char *allfamilies = "-*-*-"; |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2022 char *all = "*-*-*-*-"; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2023 |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2024 for (i = 0, p = base_fontname; i < 8; p++) |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2025 { |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2026 if (*p == '-') |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2027 { |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2028 i++; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2029 if (i == 3) |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2030 p1 = p + 1; |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2031 else if (i == 7) |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2032 p2 = p + 1; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2033 } |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2034 } |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2035 /* Build the font spec that matches all charsets. */ |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2036 len = p - base_fontname + strlen (allcs) + 1; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2037 font_allcs = (char *) alloca (len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2038 bzero (font_allcs, len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2039 bcopy (base_fontname, font_allcs, p - base_fontname); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2040 strcat (font_allcs, allcs); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2041 |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2042 /* Build the font spec that matches all families. */ |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2043 len = p - p1 + strlen (allcs) + strlen (allfamilies) + 1; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2044 font_allfamilies = (char *) alloca (len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2045 bzero (font_allfamilies, len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2046 strcpy (font_allfamilies, allfamilies); |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2047 bcopy (p1, font_allfamilies + strlen (allfamilies), p - p1); |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2048 strcat (font_allfamilies, allcs); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2049 |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2050 /* Build the font spec that matches all. */ |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2051 len = p - p2 + strlen (allcs) + strlen (all) + strlen (allfamilies) + 1; |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2052 font_all = (char *) alloca (len); |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2053 bzero (font_all, len); |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2054 strcpy (font_all, allfamilies); |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2055 strcat (font_all, all); |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2056 bcopy (p2, font_all + strlen (all) + strlen (allfamilies), p - p2); |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2057 strcat (font_all, allcs); |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2058 |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2059 /* Build the actual font set name. */ |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2060 len = strlen (base_fontname) + strlen (font_allcs) |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2061 + strlen (font_allfamilies) + strlen (font_all) + 5; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2062 fontsetname = xmalloc (len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2063 bzero (fontsetname, len); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2064 strcpy (fontsetname, base_fontname); |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2065 strcat (fontsetname, sep); |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2066 strcat (fontsetname, font_allcs); |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2067 strcat (fontsetname, sep); |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2068 strcat (fontsetname, font_allfamilies); |
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2069 strcat (fontsetname, sep); |
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2070 strcat (fontsetname, font_all); |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2071 } |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2072 } |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2073 if (motif) |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2074 strcat (fontsetname, ":"); |
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2075 return fontsetname; |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2076 } |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2077 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2078 static XFontSet |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2079 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
|
2080 struct frame *f; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2081 char *base_fontname; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2082 { |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2083 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
|
2084 char **missing_list = NULL; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2085 int missing_count; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2086 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
|
2087 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
|
2088 |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2089 if (!base_fontname) |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2090 base_fontname = xic_defaut_fontset; |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2091 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2092 /* 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
|
2093 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
|
2094 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2095 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
|
2096 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
|
2097 && 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
|
2098 && 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
|
2099 && !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
|
2100 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2101 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
|
2102 break; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2103 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2104 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2105 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2106 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
|
2107 { |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2108 char *fontsetname = xic_create_fontsetname (base_fontname, False); |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2109 |
57643
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
2110 /* 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
|
2111 xfs = XCreateFontSet (FRAME_X_DISPLAY (f), |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2112 fontsetname, &missing_list, |
57643
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
2113 &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
|
2114 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
|
2115 XFreeStringList (missing_list); |
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2116 xfree (fontsetname); |
57643
3b8eabf02bad
* xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57633
diff
changeset
|
2117 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2118 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2119 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
|
2120 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
|
2121 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
|
2122 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2123 /* No need to free def_string. */ |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2124 return xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2125 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2126 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2127 /* 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
|
2128 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2129 void |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2130 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
|
2131 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
|
2132 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2133 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
|
2134 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
|
2135 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2136 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
|
2137 return; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2138 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2139 /* 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
|
2140 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
|
2141 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2142 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
|
2143 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
|
2144 && 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
|
2145 && 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
|
2146 { |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2147 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
|
2148 break; |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2149 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2150 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2151 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2152 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
|
2153 /* 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
|
2154 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
|
2155 |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2156 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
|
2157 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
|
2158 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
|
2159 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
|
2160 } |
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2161 |
27502
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 /* 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
|
2164 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
|
2165 input method XIM. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2166 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2167 static XIMStyle |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2168 best_xim_style (user, xim) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2169 XIMStyles *user; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2170 XIMStyles *xim; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2171 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2172 int i, j; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2173 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2174 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
|
2175 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
|
2176 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
|
2177 return user->supported_styles[i]; |
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 /* Return the default style. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2180 return XIMPreeditNothing | XIMStatusNothing; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2181 } |
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 /* Create XIC for frame F. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2184 |
35592 | 2185 static XIMStyle xic_style; |
2186 | |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2187 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2188 create_frame_xic (f) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2189 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2190 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2191 XIM xim; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2192 XIC xic = NULL; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2193 XFontSet xfs = NULL; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2194 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2195 if (FRAME_XIC (f)) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2196 return; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2197 |
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2198 /* Create X fontset. */ |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2199 xfs = xic_create_xfontset |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2200 (f, (FRAME_FONTSET (f) < 0) ? NULL |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2201 : (char *) SDATA (fontset_ascii (FRAME_FONTSET (f)))); |
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2202 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2203 xim = FRAME_X_XIM (f); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2204 if (xim) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2205 { |
27659
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2206 XRectangle s_area; |
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2207 XPoint spot; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2208 XVaNestedList preedit_attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2209 XVaNestedList status_attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2210 |
27659
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2211 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
|
2212 spot.x = 0; spot.y = 1; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2213 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2214 /* Determine XIC style. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2215 if (xic_style == 0) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2216 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2217 XIMStyles supported_list; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2218 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
|
2219 / sizeof supported_xim_styles[0]); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2220 supported_list.supported_styles = supported_xim_styles; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2221 xic_style = best_xim_style (&supported_list, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2222 FRAME_X_XIM_STYLES (f)); |
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 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2225 preedit_attr = XVaCreateNestedList (0, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2226 XNFontSet, xfs, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2227 XNForeground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2228 FRAME_FOREGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2229 XNBackground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2230 FRAME_BACKGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2231 (xic_style & XIMPreeditPosition |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2232 ? XNSpotLocation |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2233 : NULL), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2234 &spot, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2235 NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2236 status_attr = XVaCreateNestedList (0, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2237 XNArea, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2238 &s_area, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2239 XNFontSet, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2240 xfs, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2241 XNForeground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2242 FRAME_FOREGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2243 XNBackground, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2244 FRAME_BACKGROUND_PIXEL (f), |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2245 NULL); |
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 xic = XCreateIC (xim, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2248 XNInputStyle, xic_style, |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2249 XNClientWindow, FRAME_X_WINDOW (f), |
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2250 XNFocusWindow, FRAME_X_WINDOW (f), |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2251 XNStatusAttributes, status_attr, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2252 XNPreeditAttributes, preedit_attr, |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2253 NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2254 XFree (preedit_attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2255 XFree (status_attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2256 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2257 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2258 FRAME_XIC (f) = xic; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2259 FRAME_XIC_STYLE (f) = xic_style; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2260 FRAME_XIC_FONTSET (f) = xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2261 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2262 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2263 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2264 /* 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
|
2265 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2266 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2267 free_frame_xic (f) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2268 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2269 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2270 if (FRAME_XIC (f) == NULL) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2271 return; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2272 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2273 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
|
2274 xic_free_xfontset (f); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2275 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2276 FRAME_XIC (f) = NULL; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2277 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2278 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2279 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2280 /* 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
|
2281 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
|
2282 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2283 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2284 xic_set_preeditarea (w, x, y) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2285 struct window *w; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2286 int x, y; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2287 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2288 struct frame *f = XFRAME (w->frame); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2289 XVaNestedList attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2290 XPoint spot; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2291 |
52059
4b5692f6703a
(xic_set_preeditarea): Add the left fringe width to spot.x.
Kenichi Handa <handa@m17n.org>
parents:
52015
diff
changeset
|
2292 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
|
2293 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
|
2294 attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2295 XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2296 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2297 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2298 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2299 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2300 /* 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
|
2301 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2302 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2303 xic_set_statusarea (f) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2304 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2305 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2306 XIC xic = FRAME_XIC (f); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2307 XVaNestedList attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2308 XRectangle area; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2309 XRectangle *needed; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2310 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2311 /* 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
|
2312 status area, use its current size. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2313 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
|
2314 attr = XVaCreateNestedList (0, XNAreaNeeded, &area, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2315 XSetICValues (xic, XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2316 XFree (attr); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2317 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2318 attr = XVaCreateNestedList (0, XNAreaNeeded, &needed, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2319 XGetICValues (xic, XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2320 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2321 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2322 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
|
2323 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2324 attr = XVaCreateNestedList (0, XNArea, &needed, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2325 XGetICValues (xic, XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2326 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2327 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2328 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2329 area.width = needed->width; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2330 area.height = needed->height; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2331 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
|
2332 area.y = (FRAME_PIXEL_HEIGHT (f) - area.height |
49322 | 2333 - FRAME_MENUBAR_HEIGHT (f) |
2334 - FRAME_TOOLBAR_HEIGHT (f) | |
2335 - FRAME_INTERNAL_BORDER_WIDTH (f)); | |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2336 XFree (needed); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2337 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2338 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
|
2339 XSetICValues (xic, XNStatusAttributes, attr, NULL); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2340 XFree (attr); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2341 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2342 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2343 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2344 /* 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
|
2345 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
|
2346 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2347 void |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2348 xic_set_xfontset (f, base_fontname) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2349 struct frame *f; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2350 char *base_fontname; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2351 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2352 XVaNestedList attr; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2353 XFontSet xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2354 |
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2355 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
|
2356 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2357 xfs = xic_create_xfontset (f, base_fontname); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2358 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2359 attr = XVaCreateNestedList (0, XNFontSet, xfs, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2360 if (FRAME_XIC_STYLE (f) & XIMPreeditPosition) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2361 XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2362 if (FRAME_XIC_STYLE (f) & XIMStatusArea) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2363 XSetICValues (FRAME_XIC (f), XNStatusAttributes, attr, NULL); |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2364 XFree (attr); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2365 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2366 FRAME_XIC_FONTSET (f) = xfs; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2367 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2368 |
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
2369 #endif /* HAVE_X_I18N */ |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2370 |
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
2371 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2372 |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2373 #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
|
2374 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2375 /* 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
|
2376 |
389 | 2377 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
|
2378 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
|
2379 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
|
2380 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
|
2381 int minibuffer_only; |
389 | 2382 { |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2383 XClassHint class_hints; |
6059
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2384 XSetWindowAttributes attributes; |
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2385 unsigned long attribute_mask; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2386 Widget shell_widget; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2387 Widget pane_widget; |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2388 Widget frame_widget; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2389 Arg al [25]; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2390 int ac; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2391 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2392 BLOCK_INPUT; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2393 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2394 /* 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
|
2395 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
|
2396 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
|
2397 |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2398 Elsewhere we specify the window name for the window manager. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2399 |
11496
db02849ee365
(x_window): Use (or reuse) frame's namebuf instead of a
Karl Heuer <kwzh@gnu.org>
parents:
11483
diff
changeset
|
2400 { |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2401 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
|
2402 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
|
2403 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
|
2404 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2405 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2406 ac = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2407 XtSetArg (al[ac], XtNallowShellResize, 1); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2408 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
|
2409 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
|
2410 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
|
2411 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
|
2412 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
|
2413 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
|
2414 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
|
2415 applicationShellWidgetClass, |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
2416 FRAME_X_DISPLAY (f), al, ac); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2417 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2418 f->output_data.x->widget = shell_widget; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2419 /* maybe_set_screen_title_format (shell_widget); */ |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2420 |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2421 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
|
2422 (widget_value *) NULL, |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2423 shell_widget, False, |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2424 (lw_callback) NULL, |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2425 (lw_callback) NULL, |
27343
43230463dfcf
(x_window): Call lw_create_widget with new parameter
Gerd Moellmann <gerd@gnu.org>
parents:
27157
diff
changeset
|
2426 (lw_callback) NULL, |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2427 (lw_callback) NULL); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2428 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2429 ac = 0; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2430 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
|
2431 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
|
2432 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
|
2433 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
|
2434 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
|
2435 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2436 /* 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
|
2437 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
|
2438 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2439 ac = 0; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2440 XtSetArg (al[ac], XtNmappedWhenManaged, 0); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2441 XtSetArg (al[ac], XtNshowGrip, 0); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2442 XtSetArg (al[ac], XtNallowResize, 1); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2443 XtSetArg (al[ac], XtNresizeToPreferred, 1); ac++; |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2444 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
|
2445 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
|
2446 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
|
2447 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
|
2448 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
|
2449 al, ac); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2450 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2451 f->output_data.x->edit_widget = frame_widget; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2452 |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2453 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
|
2454 |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2455 /* 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
|
2456 { |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2457 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
|
2458 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
|
2459 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
|
2460 int ac = 0; |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2461 int extra_borders = 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2462 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
|
2463 = (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
|
2464 ? (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
|
2465 + 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
|
2466 : 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
|
2467 |
15942
ff30ec8aab54
(x_window): Don't add ibw to menubar_size.
Richard M. Stallman <rms@gnu.org>
parents:
15891
diff
changeset
|
2468 #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
|
2469 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
|
2470 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
|
2471 { |
9808
4c43c9dbe130
(x_window): Make ibw 0 by default.
Richard M. Stallman <rms@gnu.org>
parents:
9742
diff
changeset
|
2472 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
|
2473 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
|
2474 menubar_size += ibw; |
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2475 } |
15942
ff30ec8aab54
(x_window): Don't add ibw to menubar_size.
Richard M. Stallman <rms@gnu.org>
parents:
15891
diff
changeset
|
2476 #endif |
7969
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2477 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2478 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
|
2479 |
16305
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2480 #ifndef USE_LUCID |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2481 /* 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
|
2482 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
|
2483 Both conclusions reached experimentally. -- rms. */ |
16305
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2484 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
|
2485 &extra_borders, NULL); |
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2486 extra_borders *= 2; |
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2487 #endif |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2488 |
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2489 /* 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
|
2490 and specify it. |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2491 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
|
2492 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
|
2493 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
|
2494 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2495 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
|
2496 int xneg = window_prompting & XNegative; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2497 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
|
2498 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
|
2499 if (xneg) |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2500 left = -left; |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2501 if (yneg) |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2502 top = -top; |
11893
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2503 |
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2504 if (window_prompting & USPosition) |
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2505 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
|
2506 FRAME_PIXEL_WIDTH (f) + extra_borders, |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2507 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
|
2508 (xneg ? '-' : '+'), left, |
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2509 (yneg ? '-' : '+'), top); |
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2510 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
|
2511 { |
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
|
2512 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
|
2513 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
|
2514 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
|
2515 |
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
|
2516 /* 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
|
2517 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
|
2518 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
|
2519 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
|
2520 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
|
2521 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
|
2522 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
|
2523 } |
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2524 } |
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2525 |
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
|
2526 len = strlen (shell_position) + 1; |
17579 | 2527 /* We don't free this because we don't know whether |
2528 it is safe to free it while the frame exists. | |
2529 It isn't worth the trouble of arranging to free it | |
2530 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
|
2531 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
|
2532 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
|
2533 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
|
2534 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
|
2535 } |
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2536 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2537 XtManageChild (pane_widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2538 XtRealizeWidget (shell_widget); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2539 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2540 FRAME_X_WINDOW (f) = XtWindow (frame_widget); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2541 |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2542 validate_x_resource_name (); |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2543 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2544 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
|
2545 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
|
2546 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
|
2547 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2548 #ifdef HAVE_X_I18N |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2549 FRAME_XIC (f) = NULL; |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2550 if (use_xim) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2551 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
|
2552 #endif |
13227
d8af44485b3c
(x_window, both versions): Add HAVE_X_I18N support.
Richard M. Stallman <rms@gnu.org>
parents:
13083
diff
changeset
|
2553 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2554 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
|
2555 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
|
2556 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
|
2557 &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
|
2558 |
9703
85ac0e4030d4
(x_window): Pass new arg f to hack_wm_protocols.
Richard M. Stallman <rms@gnu.org>
parents:
9690
diff
changeset
|
2559 hack_wm_protocols (f, shell_widget); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2560 |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2561 #ifdef HACK_EDITRES |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2562 XtAddEventHandler (shell_widget, 0, True, _XEditResCheckMessages, 0); |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2563 #endif |
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2564 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2565 /* 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
|
2566 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
|
2567 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
|
2568 */ |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2569 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
|
2570 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
|
2571 XA_ATOM, 32, PropModeAppend, |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2572 (unsigned char*) NULL, 0); |
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2573 |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2574 /* 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
|
2575 attributes.event_mask = STANDARD_EVENT_SET; |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2576 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2577 #ifdef HAVE_X_I18N |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2578 if (FRAME_XIC (f)) |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2579 { |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2580 /* XIM server might require some X events. */ |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2581 unsigned long fevent = NoEventMask; |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2582 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
|
2583 attributes.event_mask |= fevent; |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2584 } |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2585 #endif /* HAVE_X_I18N */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2586 |
6059
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2587 attribute_mask = CWEventMask; |
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2588 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
|
2589 attribute_mask, &attributes); |
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2590 |
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2591 XtMapWidget (frame_widget); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2592 |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2593 /* 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
|
2594 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
|
2595 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
|
2596 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
|
2597 { |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2598 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
|
2599 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
|
2600 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2601 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
|
2602 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
|
2603 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
|
2604 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
|
2605 } |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2606 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2607 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
|
2608 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
|
2609 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2610 UNBLOCK_INPUT; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2611 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
2612 /* 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
|
2613 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
|
2614 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
|
2615 } |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2616 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2617 #else /* not USE_X_TOOLKIT */ |
49322 | 2618 #ifdef USE_GTK |
2619 void | |
2620 x_window (f) | |
2621 FRAME_PTR f; | |
2622 { | |
2623 if (! xg_create_frame_widgets (f)) | |
2624 error ("Unable to create window"); | |
49434
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2625 |
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2626 #ifdef HAVE_X_I18N |
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2627 FRAME_XIC (f) = NULL; |
54185
f6e4e454800a
xfns.c (x_window): Fixed indentation
Jan Djärv <jan.h.d@swipnet.se>
parents:
54142
diff
changeset
|
2628 if (use_xim) |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2629 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2630 BLOCK_INPUT; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2631 create_frame_xic (f); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2632 if (FRAME_XIC (f)) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2633 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2634 /* XIM server might require some X events. */ |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2635 unsigned long fevent = NoEventMask; |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2636 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
|
2637 |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2638 if (fevent != NoEventMask) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2639 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2640 XSetWindowAttributes attributes; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2641 XWindowAttributes wattr; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2642 unsigned long attribute_mask; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2643 |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2644 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
|
2645 &wattr); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2646 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
|
2647 attribute_mask = CWEventMask; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2648 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
|
2649 attribute_mask, &attributes); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2650 } |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2651 } |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2652 UNBLOCK_INPUT; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2653 } |
49434
a4d0ee33dcce
Fix input methods for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2654 #endif |
49322 | 2655 } |
2656 | |
2657 #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
|
2658 /* 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
|
2659 |
21846 | 2660 void |
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2661 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
|
2662 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
|
2663 |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2664 { |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2665 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
|
2666 XSetWindowAttributes attributes; |
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2667 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
|
2668 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2669 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
|
2670 attributes.border_pixel = f->output_data.x->border_pixel; |
389 | 2671 attributes.bit_gravity = StaticGravity; |
2672 attributes.backing_store = NotUseful; | |
2673 attributes.save_under = True; | |
2674 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
|
2675 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
|
2676 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
|
2677 | CWColormap); |
389 | 2678 |
2679 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
|
2680 FRAME_X_WINDOW (f) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2681 = 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
|
2682 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
|
2683 f->left_pos, |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2684 f->top_pos, |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2685 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
|
2686 f->border_width, |
389 | 2687 CopyFromParent, /* depth */ |
2688 InputOutput, /* class */ | |
28144
71ebba3566ec
(X_I18N_INHIBITED): Don't define.
Gerd Moellmann <gerd@gnu.org>
parents:
28096
diff
changeset
|
2689 FRAME_X_VISUAL (f), |
389 | 2690 attribute_mask, &attributes); |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2691 |
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2692 #ifdef HAVE_X_I18N |
51175 | 2693 if (use_xim) |
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2694 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2695 create_frame_xic (f); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2696 if (FRAME_XIC (f)) |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2697 { |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2698 /* XIM server might require some X events. */ |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2699 unsigned long fevent = NoEventMask; |
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Djärv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2700 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
|
2701 attributes.event_mask |= fevent; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2702 attribute_mask = CWEventMask; |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2703 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
|
2704 attribute_mask, &attributes); |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2705 } |
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2706 } |
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2707 #endif /* HAVE_X_I18N */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2708 |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
2709 validate_x_resource_name (); |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2710 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2711 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
|
2712 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
|
2713 XSetClassHint (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), &class_hints); |
771 | 2714 |
11897
cbd3724a9696
(x_window) [both versions]: Set menubar_height.
Karl Heuer <kwzh@gnu.org>
parents:
11894
diff
changeset
|
2715 /* 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
|
2716 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
|
2717 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
|
2718 |
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
2719 /* 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
|
2720 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
|
2721 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
|
2722 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
|
2723 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2724 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
|
2725 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
|
2726 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
|
2727 &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
|
2728 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
|
2729 |
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2730 /* 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
|
2731 { |
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2732 Atom protocols[2]; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2733 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
|
2734 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
|
2735 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
|
2736 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2737 |
817 | 2738 /* x_set_name normally ignores requests to set the name if the |
2739 requested name is the same as the current name. This is the one | |
2740 place where that assumption isn't correct; f->name is set, but | |
2741 the X server hasn't been told. */ | |
2742 { | |
6519
22c56514eeb3
(x_set_frame_parameters, x_get_arg, x_window, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
6506
diff
changeset
|
2743 Lisp_Object name; |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2744 int explicit = f->explicit_name; |
817 | 2745 |
6519
22c56514eeb3
(x_set_frame_parameters, x_get_arg, x_window, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
6506
diff
changeset
|
2746 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
|
2747 name = f->name; |
817 | 2748 f->name = Qnil; |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2749 x_set_name (f, name, explicit); |
817 | 2750 } |
2751 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2752 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
|
2753 f->output_data.x->text_cursor); |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2754 |
389 | 2755 UNBLOCK_INPUT; |
2756 | |
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
|
2757 if (FRAME_X_WINDOW (f) == 0) |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2758 error ("Unable to create window"); |
389 | 2759 } |
2760 | |
49322 | 2761 #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
|
2762 #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
|
2763 |
56513
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2764 /* 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
|
2765 |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2766 static void |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2767 x_icon_verify (f, parms) |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2768 struct frame *f; |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2769 Lisp_Object parms; |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2770 { |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2771 Lisp_Object icon_x, icon_y; |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2772 |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2773 /* 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
|
2774 icons in an icon window. */ |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2775 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
|
2776 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
|
2777 if (!EQ (icon_x, Qunbound) && !EQ (icon_y, Qunbound)) |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2778 { |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2779 CHECK_NUMBER (icon_x); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2780 CHECK_NUMBER (icon_y); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2781 } |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2782 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
|
2783 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
|
2784 } |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2785 |
389 | 2786 /* Handle the icon stuff for this window. Perhaps later we might |
2787 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
|
2788 well. */ |
389 | 2789 |
2790 static void | |
771 | 2791 x_icon (f, parms) |
2792 struct frame *f; | |
389 | 2793 Lisp_Object parms; |
2794 { | |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2795 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
|
2796 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); |
389 | 2797 |
2798 /* 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
|
2799 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
|
2800 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
|
2801 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
|
2802 if (!EQ (icon_x, Qunbound) && !EQ (icon_y, Qunbound)) |
389 | 2803 { |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
2804 CHECK_NUMBER (icon_x); |
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
2805 CHECK_NUMBER (icon_y); |
389 | 2806 } |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2807 else if (!EQ (icon_x, Qunbound) || !EQ (icon_y, Qunbound)) |
389 | 2808 error ("Both left and top icon corners of icon must be specified"); |
2809 | |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2810 BLOCK_INPUT; |
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2811 |
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
|
2812 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
|
2813 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
|
2814 |
389 | 2815 /* 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
|
2816 x_wm_set_window_state |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2817 (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
|
2818 Qicon) |
2294
9bce20507666
Use the `visiblity' parameter to determine the initial state of
Jim Blandy <jimb@redhat.com>
parents:
2283
diff
changeset
|
2819 ? IconicState |
9bce20507666
Use the `visiblity' parameter to determine the initial state of
Jim Blandy <jimb@redhat.com>
parents:
2283
diff
changeset
|
2820 : NormalState)); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2821 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2822 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
|
2823 ? 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
|
2824 : f->name))); |
12073 | 2825 |
389 | 2826 UNBLOCK_INPUT; |
2827 } | |
2828 | |
31637
c1f4bdbf8465
(ALLOC_XPM_COLORS): Define if we can use Emacs' color
Gerd Moellmann <gerd@gnu.org>
parents:
31633
diff
changeset
|
2829 /* Make the GCs needed for this window, setting the |
389 | 2830 background, border and mouse colors; also create the |
2831 mouse cursor and the gray border tile. */ | |
2832 | |
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2833 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
|
2834 { |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2835 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
|
2836 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
|
2837 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
|
2838 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
|
2839 }; |
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
2840 |
389 | 2841 static void |
771 | 2842 x_make_gc (f) |
2843 struct frame *f; | |
389 | 2844 { |
2845 XGCValues gc_values; | |
2846 | |
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
|
2847 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
|
2848 |
31637
c1f4bdbf8465
(ALLOC_XPM_COLORS): Define if we can use Emacs' color
Gerd Moellmann <gerd@gnu.org>
parents:
31633
diff
changeset
|
2849 /* Create the GCs of this frame. |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2850 Note that many default values are used. */ |
389 | 2851 |
2852 /* Normal video */ | |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2853 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
|
2854 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
|
2855 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
|
2856 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
|
2857 f->output_data.x->normal_gc |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2858 = XCreateGC (FRAME_X_DISPLAY (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2859 FRAME_X_WINDOW (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2860 GCLineWidth | GCFont | GCForeground | GCBackground, |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2861 &gc_values); |
389 | 2862 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2863 /* 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
|
2864 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
|
2865 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
|
2866 f->output_data.x->reverse_gc |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2867 = XCreateGC (FRAME_X_DISPLAY (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2868 FRAME_X_WINDOW (f), |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2869 GCFont | GCForeground | GCBackground | GCLineWidth, |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2870 &gc_values); |
389 | 2871 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2872 /* 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
|
2873 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
|
2874 gc_values.background = f->output_data.x->cursor_pixel; |
389 | 2875 gc_values.fill_style = FillOpaqueStippled; |
2876 gc_values.stipple | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2877 = XCreateBitmapFromData (FRAME_X_DISPLAY (f), |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2878 FRAME_X_DISPLAY_INFO (f)->root_window, |
389 | 2879 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
|
2880 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
|
2881 = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
389 | 2882 (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
|
2883 | GCFillStyle /* | GCStipple */ | GCLineWidth), |
389 | 2884 &gc_values); |
2885 | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2886 /* Reliefs. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2887 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
|
2888 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
|
2889 |
389 | 2890 /* Create the gray border tile used when the pointer is not in |
771 | 2891 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
|
2892 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
|
2893 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
|
2894 = (XCreatePixmapFromBitmapData |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2895 (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
|
2896 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
|
2897 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
|
2898 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
|
2899 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
|
2900 |
1982e2983822
* xfns.c (x_make_gc): Don't forget to block X input around the
Jim Blandy <jimb@redhat.com>
parents:
2328
diff
changeset
|
2901 UNBLOCK_INPUT; |
389 | 2902 } |
2903 | |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2904 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2905 /* Free what was was allocated in x_make_gc. */ |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2906 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2907 void |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2908 x_free_gcs (f) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2909 struct frame *f; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2910 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2911 Display *dpy = FRAME_X_DISPLAY (f); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2912 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2913 BLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2914 |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2915 if (f->output_data.x->normal_gc) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2916 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2917 XFreeGC (dpy, f->output_data.x->normal_gc); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2918 f->output_data.x->normal_gc = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2919 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2920 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2921 if (f->output_data.x->reverse_gc) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2922 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2923 XFreeGC (dpy, f->output_data.x->reverse_gc); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2924 f->output_data.x->reverse_gc = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2925 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2926 |
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2927 if (f->output_data.x->cursor_gc) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2928 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2929 XFreeGC (dpy, f->output_data.x->cursor_gc); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2930 f->output_data.x->cursor_gc = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2931 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2932 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2933 if (f->output_data.x->border_tile) |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2934 { |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2935 XFreePixmap (dpy, f->output_data.x->border_tile); |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2936 f->output_data.x->border_tile = 0; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2937 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2938 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2939 UNBLOCK_INPUT; |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2940 } |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2941 |
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2942 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2943 /* 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
|
2944 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
|
2945 constructed. */ |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2946 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2947 static Lisp_Object |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2948 unwind_create_frame (frame) |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2949 Lisp_Object frame; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2950 { |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2951 struct frame *f = XFRAME (frame); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2952 |
83281
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
2953 /* If frame is already dead, nothing to do. This can happen if the |
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
2954 display is disconnected after the frame has become official, but |
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
2955 before x_create_frame removes the unwind protect. */ |
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
2956 if (!FRAME_LIVE_P (f)) |
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
2957 return Qnil; |
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
2958 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2959 /* If frame is ``official'', nothing to do. */ |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2960 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
|
2961 { |
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
2962 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2963 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
|
2964 #endif |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2965 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2966 x_free_frame_resources (f); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2967 |
59904
adc18da68682
(unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
Kim F. Storm <storm@cua.dk>
parents:
59789
diff
changeset
|
2968 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2969 /* Check that reference counts are indeed correct. */ |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2970 xassert (dpyinfo->reference_count == dpyinfo_refcount); |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2971 xassert (dpyinfo->image_cache->refcount == image_cache_refcount); |
59904
adc18da68682
(unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
Kim F. Storm <storm@cua.dk>
parents:
59789
diff
changeset
|
2972 #endif |
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
2973 return Qt; |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2974 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2975 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2976 return Qnil; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2977 } |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2978 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2979 |
771 | 2980 DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, |
389 | 2981 1, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
2982 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
|
2983 Returns an Emacs frame object. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2984 ALIST is an alist of frame parameters. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2985 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
|
2986 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
|
2987 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
|
2988 be shared by the new frame. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
2989 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
2990 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
|
2991 (parms) |
389 | 2992 Lisp_Object parms; |
2993 { | |
771 | 2994 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
|
2995 Lisp_Object frame, tem; |
389 | 2996 Lisp_Object name; |
2997 int minibuffer_only = 0; | |
2998 long window_prompting = 0; | |
2999 int width, height; | |
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
3000 int count = SPECPDL_INDEX (); |
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3001 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
|
3002 Lisp_Object display; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3003 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
|
3004 Lisp_Object parent; |
11774
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
3005 struct kboard *kb; |
389 | 3006 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3007 /* 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
|
3008 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
|
3009 Vx_resource_name = Vinvocation_name; |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3010 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3011 display = x_get_arg (dpyinfo, parms, Qdevice, 0, 0, RES_TYPE_NUMBER); |
83177
91cf385601e5
Fix creating frames on different X servers.
Karoly Lorentey <lorentey@elte.hu>
parents:
83167
diff
changeset
|
3012 if (EQ (display, Qunbound)) |
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
3013 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
|
3014 if (EQ (display, Qunbound)) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3015 display = Qnil; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3016 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
|
3017 #ifdef MULTI_KBOARD |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3018 kb = dpyinfo->device->kboard; |
11774
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
3019 #else |
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
3020 kb = &the_only_kboard; |
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
3021 #endif |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3022 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3023 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
|
3024 if (!STRINGP (name) |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3025 && ! EQ (name, Qunbound) |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3026 && ! NILP (name)) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3027 error ("Invalid frame name--not a string or nil"); |
398 | 3028 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3029 if (STRINGP (name)) |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3030 Vx_resource_name = name; |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3031 |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3032 /* 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
|
3033 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
|
3034 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
|
3035 parent = Qnil; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3036 if (! NILP (parent)) |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3037 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
|
3038 |
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3039 /* 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
|
3040 /* 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
|
3041 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
|
3042 frame = Qnil; |
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3043 GCPRO4 (parms, parent, name, frame); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3044 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
|
3045 RES_TYPE_SYMBOL); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3046 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
|
3047 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
|
3048 else if (EQ (tem, Qonly)) |
389 | 3049 { |
771 | 3050 f = make_minibuffer_frame (); |
389 | 3051 minibuffer_only = 1; |
3052 } | |
9103
948e8acb6990
(x_set_frame_parameters, x_set_menu_bar_lines, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
9022
diff
changeset
|
3053 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
|
3054 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
|
3055 else |
771 | 3056 f = make_frame (1); |
3057 | |
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3058 XSETFRAME (frame, f); |
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3059 |
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1932
diff
changeset
|
3060 /* 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
|
3061 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
|
3062 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3063 f->device = dpyinfo->device; |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3064 f->device->reference_count++; |
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
82992
diff
changeset
|
3065 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3066 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
|
3067 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
|
3068 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
|
3069 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
|
3070 FRAME_FONTSET (f) = -1; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3071 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
|
3072 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
|
3073 #ifdef USE_TOOLKIT_SCROLL_BARS |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
3074 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
|
3075 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
|
3076 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3077 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
|
3078 |
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
3079 f->icon_name |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3080 = 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
|
3081 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
|
3082 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
|
3083 f->icon_name = Qnil; |
12073 | 3084 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3085 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
|
3086 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3087 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
|
3088 dpyinfo_refcount = dpyinfo->reference_count; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3089 #endif /* GLYPH_DEBUG */ |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3090 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3091 /* 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
|
3092 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
|
3093 { |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3094 Lisp_Object black; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3095 struct gcpro gcpro1; |
38345
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
3096 |
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
3097 /* 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
|
3098 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
|
3099 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
|
3100 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
|
3101 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
|
3102 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
|
3103 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
|
3104 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
|
3105 f->output_data.x->mouse_pixel = -1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3106 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3107 black = build_string ("black"); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3108 GCPRO1 (black); |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3109 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
|
3110 = 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
|
3111 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
|
3112 = 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
|
3113 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
|
3114 = 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
|
3115 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
|
3116 = 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
|
3117 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
|
3118 = 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
|
3119 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
|
3120 = 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
|
3121 UNGCPRO; |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3122 } |
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3123 |
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3124 /* 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
|
3125 |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3126 if (!NILP (parent)) |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3127 { |
18612
88efccff8970
Fix bugs with inappropriate mixing of Lisp_Object with int.
Richard M. Stallman <rms@gnu.org>
parents:
18594
diff
changeset
|
3128 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
|
3129 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
|
3130 } |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3131 else |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3132 { |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3133 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
|
3134 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
|
3135 } |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3136 |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3137 /* 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
|
3138 be set. */ |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3139 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
|
3140 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3141 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
|
3142 f->explicit_name = 0; |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3143 } |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3144 else |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3145 { |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3146 f->name = name; |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3147 f->explicit_name = 1; |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3148 /* 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
|
3149 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
|
3150 } |
771 | 3151 |
83016
1d7467694692
Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents:
83014
diff
changeset
|
3152 Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qx), Qnil)); |
1d7467694692
Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents:
83014
diff
changeset
|
3153 |
389 | 3154 /* Extract the window parameters from the supplied values |
3155 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
|
3156 { |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3157 Lisp_Object font; |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
3158 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3159 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
|
3160 |
4150
e2e92cd737bf
* xfns.c (Fx_create_frame): Block input around call to
Jim Blandy <jimb@redhat.com>
parents:
4146
diff
changeset
|
3161 BLOCK_INPUT; |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3162 /* 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
|
3163 if (STRINGP (font)) |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
3164 { |
21555
0927f341e390
(x_set_font): Give 2nd arg nil to Fquery_fontset.
Kenichi Handa <handa@m17n.org>
parents:
21549
diff
changeset
|
3165 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
|
3166 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
|
3167 font = x_new_fontset (f, SDATA (tem)); |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
3168 else |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3169 font = x_new_font (f, SDATA (font)); |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
3170 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3171 |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3172 /* 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
|
3173 if (!STRINGP (font)) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3174 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
|
3175 if (!STRINGP (font)) |
8270
1a0af0f4fb1d
(Fx_create_frame): Use 140 as default font size.
Richard M. Stallman <rms@gnu.org>
parents:
8192
diff
changeset
|
3176 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
|
3177 if (! STRINGP (font)) |
8270
1a0af0f4fb1d
(Fx_create_frame): Use 140 as default font size.
Richard M. Stallman <rms@gnu.org>
parents:
8192
diff
changeset
|
3178 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
|
3179 if (! STRINGP (font)) |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3180 /* 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
|
3181 and takes too long. */ |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3182 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
|
3183 /* 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
|
3184 if (! STRINGP (font)) |
8270
1a0af0f4fb1d
(Fx_create_frame): Use 140 as default font size.
Richard M. Stallman <rms@gnu.org>
parents:
8192
diff
changeset
|
3185 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
|
3186 UNBLOCK_INPUT; |
e2e92cd737bf
* xfns.c (Fx_create_frame): Block input around call to
Jim Blandy <jimb@redhat.com>
parents:
4146
diff
changeset
|
3187 if (! STRINGP (font)) |
4259
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3188 font = build_string ("fixed"); |
085095792d99
(Fx_create_frame): Don't look for default font
Richard M. Stallman <rms@gnu.org>
parents:
4195
diff
changeset
|
3189 |
17722
27df69e20b98
(Fx_create_frame): Delete code for handling the X
Kenichi Handa <handa@m17n.org>
parents:
17629
diff
changeset
|
3190 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
|
3191 "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
|
3192 } |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3193 |
15720
f1549b7501af
(Fx_create_frame): Do xlwmenu hack only if USE_LUCID.
Karl Heuer <kwzh@gnu.org>
parents:
15706
diff
changeset
|
3194 #ifdef USE_LUCID |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3195 /* 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
|
3196 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
|
3197 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
|
3198 #endif |
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3199 |
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3200 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
|
3201 "borderWidth", "BorderWidth", RES_TYPE_NUMBER); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3202 |
40715 | 3203 /* 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
|
3204 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
|
3205 it). */ |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3206 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
|
3207 { |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3208 Lisp_Object value; |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3209 |
17779
094e5efd262d
(Fx_create_frame): Get X resources from the display
Richard M. Stallman <rms@gnu.org>
parents:
17722
diff
changeset
|
3210 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
|
3211 "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
|
3212 if (! EQ (value, Qunbound)) |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3213 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
|
3214 parms); |
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3215 } |
16302
025b3dc7a6ba
(Fx_create_frame): Default Qinternal_border_width to 1.
Richard M. Stallman <rms@gnu.org>
parents:
16254
diff
changeset
|
3216 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
|
3217 "internalBorderWidth", "internalBorderWidth", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3218 RES_TYPE_NUMBER); |
16254
3e8b16badf3d
(Fx_create_frame): Default Qvertical_scroll_bars to `left'.
Richard M. Stallman <rms@gnu.org>
parents:
16156
diff
changeset
|
3219 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
|
3220 "verticalScrollBars", "ScrollBars", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3221 RES_TYPE_SYMBOL); |
389 | 3222 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3223 /* 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
|
3224 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
|
3225 "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
|
3226 x_default_parameter (f, parms, Qbackground_color, build_string ("white"), |
26808 | 3227 "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
|
3228 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
|
3229 "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
|
3230 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
|
3231 "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
|
3232 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
|
3233 "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
|
3234 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
|
3235 "screenGamma", "ScreenGamma", RES_TYPE_FLOAT); |
28690
01a3287bb747
(x_set_line_spacing): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28597
diff
changeset
|
3236 x_default_parameter (f, parms, Qline_spacing, Qnil, |
01a3287bb747
(x_set_line_spacing): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28597
diff
changeset
|
3237 "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
|
3238 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
|
3239 "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
|
3240 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
|
3241 "rightFringe", "RightFringe", RES_TYPE_NUMBER); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3242 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3243 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
|
3244 "scrollBarForeground", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3245 "ScrollBarForeground", 1); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3246 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
|
3247 "scrollBarBackground", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3248 "ScrollBarBackground", 0); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3249 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3250 /* 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
|
3251 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
|
3252 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
|
3253 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
|
3254 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
|
3255 happen. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3256 init_frame_faces (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3257 |
8758
fac1c4722677
(Fx_create_frame): Make 1 the default for menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
8675
diff
changeset
|
3258 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
|
3259 "menuBar", "MenuBar", RES_TYPE_NUMBER); |
31824
b3295c7e7a60
(Fx_create_frame): Set default frame parameter value
Gerd Moellmann <gerd@gnu.org>
parents:
31768
diff
changeset
|
3260 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
|
3261 "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
|
3262 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
|
3263 "bufferPredicate", "BufferPredicate", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3264 RES_TYPE_SYMBOL); |
14381 | 3265 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
|
3266 "title", "Title", RES_TYPE_STRING); |
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
3267 x_default_parameter (f, parms, Qwait_for_wm, Qt, |
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
3268 "waitForWM", "WaitForWM", RES_TYPE_BOOLEAN); |
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
3269 x_default_parameter (f, parms, Qfullscreen, Qnil, |
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
3270 "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
|
3271 |
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3272 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
|
3273 |
919d77f8d0ff
(Fx_create_frame): Adjust the frame's height for presence
Gerd Moellmann <gerd@gnu.org>
parents:
36448
diff
changeset
|
3274 /* 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
|
3275 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
|
3276 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3277 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
|
3278 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
|
3279 |
56513
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
3280 x_icon_verify (f, parms); |
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
3281 |
35733
4f422aadd415
(Fx_create_frame): Add the tool bar height to the frame
Gerd Moellmann <gerd@gnu.org>
parents:
35592
diff
changeset
|
3282 /* 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
|
3283 #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
|
3284 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
|
3285 #else |
771 | 3286 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
|
3287 #endif |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3288 |
771 | 3289 x_icon (f, parms); |
3290 x_make_gc (f); | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3291 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3292 /* Now consider the frame official. */ |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3293 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
|
3294 Vframe_list = Fcons (frame, Vframe_list); |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3295 |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3296 /* 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
|
3297 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
|
3298 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
|
3299 "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
|
3300 |
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3301 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
|
3302 "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
|
3303 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
|
3304 "autoLower", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
3305 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
|
3306 "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
|
3307 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
|
3308 "scrollBarWidth", "ScrollBarWidth", |
06f887a1c834
(Fx_create_frame): Move x_default_parameter calls that
Gerd Moellmann <gerd@gnu.org>
parents:
26954
diff
changeset
|
3309 RES_TYPE_NUMBER); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3310 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3311 /* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size. |
389 | 3312 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
|
3313 FRAME_LINES (f). */ |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3314 width = FRAME_COLS (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3315 height = FRAME_LINES (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3316 |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3317 SET_FRAME_COLS (f, 0); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3318 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
|
3319 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
|
3320 |
49322 | 3321 #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
|
3322 /* Create the menu bar. */ |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3323 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
|
3324 { |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3325 /* 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
|
3326 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
|
3327 initialize_frame_menubar (f); |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3328 |
49322 | 3329 #ifndef USE_GTK |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3330 /* 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
|
3331 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
|
3332 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
|
3333 f->output_data.x->menubar_widget, |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3334 f->output_data.x->edit_widget); |
49322 | 3335 #endif /* not USE_GTK */ |
3336 } | |
3337 #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
|
3338 |
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3339 /* 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
|
3340 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
|
3341 bar so that its size can be taken into account. */ |
389 | 3342 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
|
3343 x_wm_set_size_hint (f, window_prompting, 0); |
389 | 3344 UNBLOCK_INPUT; |
3345 | |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3346 /* 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
|
3347 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
|
3348 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
|
3349 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
|
3350 { |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3351 Lisp_Object visibility; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3352 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3353 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
|
3354 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
|
3355 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
|
3356 visibility = Qt; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3357 |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3358 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
|
3359 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
|
3360 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
|
3361 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
|
3362 else |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3363 /* 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
|
3364 ; |
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3365 } |
771 | 3366 |
52298
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3367 /* 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
|
3368 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
|
3369 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
|
3370 { |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3371 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
|
3372 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
|
3373 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
|
3374 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
|
3375 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
|
3376 (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
|
3377 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
|
3378 } |
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Djärv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3379 |
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3380 UNGCPRO; |
36594
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3381 |
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3382 /* 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
|
3383 and similar functions. */ |
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3384 Vwindow_list = Qnil; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3385 |
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3386 return unbind_to (count, frame); |
389 | 3387 } |
3388 | |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3389 |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3390 /* 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
|
3391 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
|
3392 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
|
3393 |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3394 Lisp_Object |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3395 x_get_focus_frame (frame) |
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3396 struct frame *frame; |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3397 { |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3398 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
|
3399 Lisp_Object xfocus; |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3400 if (! dpyinfo->x_focus_frame) |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3401 return Qnil; |
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3402 |
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3403 XSETFRAME (xfocus, dpyinfo->x_focus_frame); |
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3404 return xfocus; |
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3405 } |
3048
96ff8e5744b2
* xfns.c (select_visual): Include the screen number in the
Jim Blandy <jimb@redhat.com>
parents:
3015
diff
changeset
|
3406 |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3407 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3408 /* 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
|
3409 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
|
3410 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
|
3411 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3412 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
|
3413 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
|
3414 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
|
3415 following a user-command. */ |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3416 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3417 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
|
3418 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
|
3419 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
|
3420 (frame) |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3421 Lisp_Object frame; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3422 { |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3423 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
|
3424 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
|
3425 int count; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3426 |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3427 BLOCK_INPUT; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3428 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
|
3429 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
|
3430 RevertToParent, CurrentTime); |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3431 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
|
3432 UNBLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3433 |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3434 return Qnil; |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3435 } |
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3436 |
3048
96ff8e5744b2
* xfns.c (select_visual): Include the screen number in the
Jim Blandy <jimb@redhat.com>
parents:
3015
diff
changeset
|
3437 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3438 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
|
3439 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
|
3440 (color, frame) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3441 Lisp_Object color, frame; |
389 | 3442 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3443 XColor foo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3444 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
|
3445 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3446 CHECK_STRING (color); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3447 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3448 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
|
3449 return Qt; |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3450 else |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3451 return Qnil; |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3452 } |
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3453 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3454 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
|
3455 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
|
3456 (color, frame) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3457 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
|
3458 { |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3459 XColor foo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3460 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
|
3461 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3462 CHECK_STRING (color); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3463 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3464 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
|
3465 { |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3466 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
|
3467 |
4c69fcaaa037
(Fx_color_defined_p): Return list of RGB values, not just t.
Richard M. Stallman <rms@gnu.org>
parents:
8405
diff
changeset
|
3468 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
|
3469 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
|
3470 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
|
3471 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
|
3472 } |
389 | 3473 else |
3474 return Qnil; | |
3475 } | |
3476 | |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3477 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
|
3478 doc: /* Internal function called by `display-color-p', which see. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3479 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3480 Lisp_Object device; |
389 | 3481 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3482 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3483 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3484 if (dpyinfo->n_planes <= 2) |
389 | 3485 return Qnil; |
3486 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3487 switch (dpyinfo->visual->class) |
389 | 3488 { |
3489 case StaticColor: | |
3490 case PseudoColor: | |
3491 case TrueColor: | |
3492 case DirectColor: | |
3493 return Qt; | |
3494 | |
3495 default: | |
3496 return Qnil; | |
3497 } | |
3498 } | |
3499 | |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3500 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
|
3501 0, 1, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3502 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
|
3503 Note that color displays do support shades of gray. |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3504 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3505 DEVICE should be a device id, a frame or a display name (a string). |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3506 If omitted or nil, that stands for the selected frame's display device. */) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3507 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3508 Lisp_Object device; |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3509 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3510 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3511 |
12347
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3512 if (dpyinfo->n_planes <= 1) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3513 return Qnil; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3514 |
12347
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3515 switch (dpyinfo->visual->class) |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3516 { |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3517 case StaticColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3518 case PseudoColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3519 case TrueColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3520 case DirectColor: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3521 case StaticGray: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3522 case GrayScale: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3523 return Qt; |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3524 |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3525 default: |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3526 return Qnil; |
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3527 } |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3528 } |
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3529 |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3530 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
|
3531 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3532 doc: /* Returns the width in pixels of the X display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3533 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3534 DEVICE should be a device id, 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
|
3535 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3536 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3537 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3538 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3539 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3540 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3541 return make_number (dpyinfo->width); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3542 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3543 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3544 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
|
3545 Sx_display_pixel_height, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3546 doc: /* Returns the height in pixels of the X display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3547 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3548 DEVICE should be a device id, 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
|
3549 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3550 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3551 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3552 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3553 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3554 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3555 return make_number (dpyinfo->height); |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3556 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3557 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3558 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
|
3559 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3560 doc: /* Returns the number of bitplanes of the X display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3561 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3562 DEVICE should be a device id, 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
|
3563 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3564 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3565 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3566 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3567 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3568 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3569 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
|
3570 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3571 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3572 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
|
3573 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3574 doc: /* Returns the number of color cells of the X display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3575 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3576 DEVICE should be a device id, 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
|
3577 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3578 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3579 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3580 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3581 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3582 |
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
|
3583 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
|
3584 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
|
3585 |
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
|
3586 /* 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
|
3587 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
|
3588 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
|
3589 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
|
3590 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
|
3591 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
|
3592 |
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
|
3593 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
|
3594 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3595 |
4279 | 3596 DEFUN ("x-server-max-request-size", Fx_server_max_request_size, |
3597 Sx_server_max_request_size, | |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3598 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3599 doc: /* Returns the maximum request size of the X server of display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3600 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3601 DEVICE should be a device id, 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
|
3602 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3603 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3604 Lisp_Object device; |
4279 | 3605 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3606 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3607 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3608 return make_number (MAXREQUEST (dpyinfo->display)); |
4279 | 3609 } |
3610 | |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3611 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3612 doc: /* Returns the "vendor ID" string of the X server of display DEVICE. |
57765
77c93cbb1721
(Fx_server_vendor, Fx_server_version): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
57714
diff
changeset
|
3613 \(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
|
3614 that operating systems cannot be developed and distributed noncommercially.) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3615 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3616 DEVICE should be a device id, 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
|
3617 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3618 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3619 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3620 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3621 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3622 char *vendor = ServerVendor (dpyinfo->display); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3623 |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3624 if (! vendor) vendor = ""; |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3625 return build_string (vendor); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3626 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3627 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3628 DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3629 doc: /* Returns the version numbers of the X server of display DEVICE. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3630 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
|
3631 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
|
3632 number. See also the function `x-server-vendor'. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3633 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3634 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3635 DEVICE should be a device id, 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
|
3636 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3637 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3638 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3639 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3640 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3641 Display *dpy = dpyinfo->display; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3642 |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3643 return Fcons (make_number (ProtocolVersion (dpy)), |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3644 Fcons (make_number (ProtocolRevision (dpy)), |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3645 Fcons (make_number (VendorRelease (dpy)), Qnil))); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3646 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3647 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3648 DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3649 doc: /* Return the number of screens on the X server of display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3650 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3651 DEVICE should be a device id, 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
|
3652 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3653 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3654 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3655 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3656 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3657 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3658 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
|
3659 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3660 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3661 DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3662 doc: /* Return the height in millimeters of the X display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3663 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3664 DEVICE should be a device id, 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
|
3665 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3666 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3667 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3668 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3669 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3670 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3671 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
|
3672 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3673 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3674 DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3675 doc: /* Return the width in millimeters of the X display DEVICE. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3676 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3677 DEVICE should be a device id, 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
|
3678 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3679 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3680 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3681 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3682 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3683 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3684 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
|
3685 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3686 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3687 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
|
3688 Sx_display_backing_store, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3689 doc: /* Returns an indication of whether X display DEVICE does backing store. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3690 The value may be `always', `when-mapped', or `not-useful'. |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3691 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3692 DEVICE should be a device id, 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
|
3693 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3694 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3695 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3696 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3697 struct x_display_info *dpyinfo = check_x_display_info (device); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3698 Lisp_Object result; |
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 switch (DoesBackingStore (dpyinfo->screen)) |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3701 { |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3702 case Always: |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3703 result = intern ("always"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3704 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3705 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3706 case WhenMapped: |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3707 result = intern ("when-mapped"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3708 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3709 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3710 case NotUseful: |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3711 result = intern ("not-useful"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3712 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3713 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3714 default: |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3715 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
|
3716 result = Qnil; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3717 } |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3718 |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3719 return result; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3720 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3721 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3722 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
|
3723 Sx_display_visual_class, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3724 doc: /* Return the visual class of the X display DEVICE. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3725 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
|
3726 `static-color', `pseudo-color', `true-color', or `direct-color'. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3727 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3728 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3729 DEVICE should a device id, 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
|
3730 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3731 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3732 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3733 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3734 struct x_display_info *dpyinfo = check_x_display_info (device); |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3735 Lisp_Object result; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3736 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3737 switch (dpyinfo->visual->class) |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3738 { |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3739 case StaticGray: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3740 result = intern ("static-gray"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3741 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3742 case GrayScale: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3743 result = intern ("gray-scale"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3744 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3745 case StaticColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3746 result = intern ("static-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3747 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3748 case PseudoColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3749 result = intern ("pseudo-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3750 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3751 case TrueColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3752 result = intern ("true-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3753 break; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3754 case DirectColor: |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3755 result = intern ("direct-color"); |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3756 break; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3757 default: |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3758 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
|
3759 result = Qnil; |
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3760 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3761 |
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3762 return result; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3763 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3764 |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3765 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
|
3766 Sx_display_save_under, 0, 1, 0, |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3767 doc: /* Returns t if the X display DEVICE supports the save-under feature. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3768 The optional argument DEVICE specifies which display to ask about. |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3769 DEVICE should be a device id, 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
|
3770 If omitted or nil, that stands for the selected frame's display. */) |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3771 (device) |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3772 Lisp_Object device; |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3773 { |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
3774 struct x_display_info *dpyinfo = check_x_display_info (device); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3775 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3776 if (DoesSaveUnders (dpyinfo->screen) == True) |
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3777 return Qt; |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3778 else |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3779 return Qnil; |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3780 } |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3781 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3782 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3783 x_pixel_width (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3784 register struct frame *f; |
389 | 3785 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3786 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
|
3787 } |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3788 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3789 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3790 x_pixel_height (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3791 register struct frame *f; |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3792 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3793 return FRAME_PIXEL_HEIGHT (f); |
389 | 3794 } |
3795 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3796 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3797 x_char_width (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3798 register struct frame *f; |
389 | 3799 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3800 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
|
3801 } |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3802 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3803 int |
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3804 x_char_height (f) |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3805 register struct frame *f; |
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3806 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3807 return FRAME_LINE_HEIGHT (f); |
389 | 3808 } |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3809 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3810 int |
19825
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3811 x_screen_planes (f) |
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3812 register struct frame *f; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3813 { |
19825
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3814 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
|
3815 } |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3816 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3817 |
389 | 3818 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3819 /************************************************************************ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3820 X Displays |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3821 ************************************************************************/ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3822 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3823 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3824 /* Mapping visual names to visuals. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3825 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3826 static struct visual_class |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3827 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3828 char *name; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3829 int class; |
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 visual_classes[] = |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3832 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3833 {"StaticGray", StaticGray}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3834 {"GrayScale", GrayScale}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3835 {"StaticColor", StaticColor}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3836 {"PseudoColor", PseudoColor}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3837 {"TrueColor", TrueColor}, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3838 {"DirectColor", DirectColor}, |
42123
7f5f06b97bfc
(x_frame_parms): Add missing braces around initializer.
Pavel Janík <Pavel@Janik.cz>
parents:
42006
diff
changeset
|
3839 {NULL, 0} |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3840 }; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3841 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3842 |
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3843 #ifndef HAVE_XSCREENNUMBEROFSCREEN |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3844 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3845 /* 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
|
3846 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
|
3847 |
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3848 int |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3849 XScreenNumberOfScreen (scr) |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3850 register Screen *scr; |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3851 { |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3852 Display *dpy = scr->display; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3853 int i; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3854 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3855 for (i = 0; i < dpy->nscreens; ++i) |
40325
2eb0395c1697
(XScreenNumberOfScreen): Fix struct to pointer
Gerd Moellmann <gerd@gnu.org>
parents:
40279
diff
changeset
|
3856 if (scr == dpy->screens + i) |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3857 break; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3858 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3859 return i; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3860 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3861 |
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3862 #endif /* not HAVE_XSCREENNUMBEROFSCREEN */ |
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3863 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3864 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3865 /* 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
|
3866 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
|
3867 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3868 void |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3869 select_visual (dpyinfo) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3870 struct x_display_info *dpyinfo; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3871 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3872 Display *dpy = dpyinfo->display; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3873 Screen *screen = dpyinfo->screen; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3874 Lisp_Object value; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3875 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3876 /* See if a visual is specified. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3877 value = display_x_get_resource (dpyinfo, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3878 build_string ("visualClass"), |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3879 build_string ("VisualClass"), |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3880 Qnil, Qnil); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3881 if (STRINGP (value)) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3882 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3883 /* 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
|
3884 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
|
3885 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
|
3886 char *s = (char *) alloca (SBYTES (value) + 1); |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3887 char *dash; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3888 int i, class = -1; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3889 XVisualInfo vinfo; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3890 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3891 strcpy (s, SDATA (value)); |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3892 dash = index (s, '-'); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3893 if (dash) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3894 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3895 dpyinfo->n_planes = atoi (dash + 1); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3896 *dash = '\0'; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3897 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3898 else |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3899 /* 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
|
3900 an error will be printed below. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3901 dpyinfo->n_planes = 0; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3902 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3903 /* Determine the visual class. */ |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3904 for (i = 0; visual_classes[i].name; ++i) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3905 if (xstricmp (s, visual_classes[i].name) == 0) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3906 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3907 class = visual_classes[i].class; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3908 break; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3909 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3910 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3911 /* 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
|
3912 if (class == -1 |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3913 || !XMatchVisualInfo (dpy, XScreenNumberOfScreen (screen), |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3914 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
|
3915 fatal ("Invalid visual specification `%s'", SDATA (value)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3916 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3917 dpyinfo->visual = vinfo.visual; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3918 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3919 else |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3920 { |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3921 int n_visuals; |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3922 XVisualInfo *vinfo, vinfo_template; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3923 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3924 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
|
3925 |
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
|
3926 #ifdef HAVE_X11R4 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3927 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
|
3928 #else |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3929 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
|
3930 #endif |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3931 vinfo_template.screen = XScreenNumberOfScreen (screen); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3932 vinfo = XGetVisualInfo (dpy, VisualIDMask | VisualScreenMask, |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3933 &vinfo_template, &n_visuals); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3934 if (n_visuals != 1) |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3935 fatal ("Can't get proper X visual info"); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3936 |
28199
56a776500341
* xfns.c (select_visual): Don't set dpyinfo->n_planes to the
Gerd Moellmann <gerd@gnu.org>
parents:
28144
diff
changeset
|
3937 dpyinfo->n_planes = vinfo->depth; |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3938 XFree ((char *) vinfo); |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3939 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3940 } |
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3941 |
389 | 3942 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3943 /* 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
|
3944 Open a new connection if necessary. */ |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3945 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3946 struct x_display_info * |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3947 x_display_info_for_name (name) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3948 Lisp_Object name; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3949 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3950 Lisp_Object names; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3951 struct x_display_info *dpyinfo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3952 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3953 CHECK_STRING (name); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3954 |
83014
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
3955 #if 0 |
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
3956 if (! EQ (Vinitial_window_system, intern ("x"))) |
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
3957 error ("Not using X Windows"); /* That doesn't stop us anymore. */ |
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
3958 #endif |
12381
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
3959 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3960 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
|
3961 dpyinfo; |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
3962 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
|
3963 { |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3964 Lisp_Object tem; |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
3965 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
|
3966 if (!NILP (tem)) |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3967 return dpyinfo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3968 } |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3969 |
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3970 /* 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
|
3971 Vx_resource_name = Vinvocation_name; |
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3972 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3973 validate_x_resource_name (); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3974 |
34976
05c36b1fa618
(x_display_info_for_name): Cast 0 to "char *" in the call
Eli Zaretskii <eliz@gnu.org>
parents:
34911
diff
changeset
|
3975 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
|
3976 (char *) SDATA (Vx_resource_name)); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3977 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3978 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
|
3979 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
|
3980 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3981 x_in_use = 1; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3982 XSETFASTINT (Vwindow_system_version, 11); |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3983 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3984 return dpyinfo; |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3985 } |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3986 |
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3987 |
389 | 3988 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
|
3989 1, 3, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3990 doc: /* Open a connection to an X server. |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3991 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
|
3992 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
|
3993 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
|
3994 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
|
3995 (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
|
3996 Lisp_Object display, xrm_string, must_succeed; |
389 | 3997 { |
3998 unsigned char *xrm_option; | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3999 struct x_display_info *dpyinfo; |
389 | 4000 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4001 CHECK_STRING (display); |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4002 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
|
4003 CHECK_STRING (xrm_string); |
389 | 4004 |
83014
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4005 #if 0 |
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4006 if (! EQ (Vinitial_window_system, intern ("x"))) |
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4007 error ("Not using X Windows"); /* That doesn't stop us anymore. */ |
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4008 #endif |
12381
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
4009 |
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4010 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
|
4011 xrm_option = (unsigned char *) SDATA (xrm_string); |
389 | 4012 else |
4013 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
|
4014 |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4015 validate_x_resource_name (); |
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4016 |
7802
d687e885fa6a
(Fx_open_connection): Set up Vx_resource_name and xrm_option
Richard M. Stallman <rms@gnu.org>
parents:
7797
diff
changeset
|
4017 /* 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
|
4018 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
|
4019 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
|
4020 (char *) SDATA (Vx_resource_name)); |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4021 |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4022 if (dpyinfo == 0) |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4023 { |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4024 if (!NILP (must_succeed)) |
39907 | 4025 fatal ("Cannot connect to X server %s.\n\ |
4026 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
|
4027 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
|
4028 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
|
4029 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
|
4030 SDATA (display)); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4031 else |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4032 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
|
4033 } |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4034 |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4035 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
|
4036 |
9327
b3398cf56fba
(Fx_open_connection): Don't use XFASTINT as an lvalue.
Karl Heuer <kwzh@gnu.org>
parents:
9285
diff
changeset
|
4037 XSETFASTINT (Vwindow_system_version, 11); |
389 | 4038 return Qnil; |
4039 } | |
4040 | |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4041 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
|
4042 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
|
4043 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
|
4044 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
|
4045 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
|
4046 (display) |
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4047 Lisp_Object display; |
389 | 4048 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4049 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
|
4050 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4051 if (dpyinfo->reference_count > 0) |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4052 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
|
4053 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
4054 x_delete_device (dpyinfo->device); |
8782
51241477cfc5
Delete X11 conditionals.
Richard M. Stallman <rms@gnu.org>
parents:
8780
diff
changeset
|
4055 |
389 | 4056 return Qnil; |
4057 } | |
4058 | |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4059 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
|
4060 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
|
4061 () |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4062 { |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4063 Lisp_Object tail, result; |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4064 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4065 result = Qnil; |
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
4066 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
|
4067 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
|
4068 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4069 return result; |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4070 } |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4071 |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4072 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
|
4073 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
|
4074 If ON is nil, allow buffering of requests. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4075 Turning on synchronization prohibits the Xlib routines from buffering |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4076 requests and seriously degrades performance, but makes debugging much |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4077 easier. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4078 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
|
4079 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
|
4080 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
|
4081 (on, display) |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4082 Lisp_Object display, on; |
389 | 4083 { |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4084 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
|
4085 |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4086 XSynchronize (dpyinfo->display, !EQ (on, Qnil)); |
389 | 4087 |
4088 return Qnil; | |
4089 } | |
4090 | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4091 /* Wait for responses to all X commands issued so far for frame F. */ |
5536 | 4092 |
4093 void | |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4094 x_sync (f) |
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4095 FRAME_PTR f; |
5536 | 4096 { |
5558 | 4097 BLOCK_INPUT; |
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4098 XSync (FRAME_X_DISPLAY (f), False); |
5558 | 4099 UNBLOCK_INPUT; |
5536 | 4100 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4101 |
389 | 4102 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4103 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4104 Window properties |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4105 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4106 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4107 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
|
4108 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
|
4109 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
|
4110 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
|
4111 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
|
4112 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
|
4113 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
|
4114 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
|
4115 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
|
4116 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
|
4117 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
|
4118 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
|
4119 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
|
4120 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
|
4121 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
|
4122 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
|
4123 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
|
4124 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4125 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
|
4126 (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
|
4127 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
|
4128 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4129 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
|
4130 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
|
4131 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
|
4132 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
|
4133 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
|
4134 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
|
4135 Window w; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4136 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4137 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
|
4138 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4139 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
|
4140 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4141 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
|
4142 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
|
4143 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4144 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
|
4145 && 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
|
4146 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
|
4147 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4148 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4149 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
|
4150 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4151 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
|
4152 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
|
4153 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
|
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 (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
|
4156 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
|
4157 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
|
4158 data = (unsigned char *) xmalloc (nelements*2); |
59976
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4159 else /* format == 32 */ |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4160 /* The man page for XChangeProperty: |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4161 "If the specified format is 32, the property data must be a |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4162 long array." |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4163 This applies even if long is more than 64 bits. The X library |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4164 converts to 32 bits before sending to the X server. */ |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4165 data = (unsigned char *) xmalloc (nelements * sizeof(long)); |
53787
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 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
|
4168 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4169 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4170 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4171 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
|
4172 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
|
4173 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
|
4174 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4175 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4176 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
|
4177 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
|
4178 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
|
4179 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4180 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
|
4181 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
|
4182 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4183 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4184 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
|
4185 else w = FRAME_X_WINDOW (f); |
59904
adc18da68682
(unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
Kim F. Storm <storm@cua.dk>
parents:
59789
diff
changeset
|
4186 |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4187 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
|
4188 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
|
4189 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
|
4190 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4191 if (CONSP (value)) xfree (data); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4192 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4193 /* 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
|
4194 XFlush (FRAME_X_DISPLAY (f)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4195 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4196 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4197 return value; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4198 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4199 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4200 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4201 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
|
4202 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
|
4203 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
|
4204 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
|
4205 (prop, frame) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4206 Lisp_Object prop, frame; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4207 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4208 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
|
4209 Atom prop_atom; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4210 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4211 CHECK_STRING (prop); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4212 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
|
4213 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
|
4214 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
|
4215 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4216 /* 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
|
4217 XFlush (FRAME_X_DISPLAY (f)); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4218 UNBLOCK_INPUT; |
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 return prop; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4221 } |
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 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4224 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
|
4225 1, 6, 0, |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4226 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
|
4227 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
|
4228 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
|
4229 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
|
4230 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
|
4231 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
|
4232 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
|
4233 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
|
4234 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4235 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
|
4236 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
|
4237 (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
|
4238 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
|
4239 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4240 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
|
4241 Atom prop_atom; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4242 int rc; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4243 Lisp_Object prop_value = Qnil; |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
4244 unsigned char *tmp_data = NULL; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4245 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
|
4246 Atom target_type = XA_STRING; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4247 int actual_format; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4248 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
|
4249 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
|
4250 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
|
4251 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4252 GCPRO1 (prop_value); |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4253 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
|
4254 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4255 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
|
4256 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4257 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
|
4258 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4259 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
|
4260 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
|
4261 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4262 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
|
4263 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4264 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
|
4265 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
|
4266 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4267 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
|
4268 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
|
4269 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4270 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4271 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
|
4272 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
|
4273 { |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4274 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
|
4275 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
|
4276 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4277 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
|
4278 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4279 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4280 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
|
4281 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
|
4282 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
|
4283 &actual_type, &actual_format, &actual_size, |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
4284 &bytes_remaining, &tmp_data); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4285 if (rc == Success) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4286 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4287 int size = bytes_remaining; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4288 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4289 XFree (tmp_data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4290 tmp_data = NULL; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4291 |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4292 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
|
4293 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
|
4294 ! NILP (delete_p), target_type, |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4295 &actual_type, &actual_format, |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4296 &actual_size, &bytes_remaining, |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
4297 &tmp_data); |
39277
df33715cdcf8
(Fx_window_property): Handle case that property gets
Gerd Moellmann <gerd@gnu.org>
parents:
39159
diff
changeset
|
4298 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
|
4299 { |
59976
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4300 /* The man page for XGetWindowProperty says: |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4301 "If the returned format is 32, the returned data is represented |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4302 as a long array and should be cast to that type to obtain the |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4303 elements." |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4304 This applies even if long is more than 32 bits, the X library |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4305 converts from 32 bit elements received from the X server to long |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4306 and passes the long array to us. Thus, for that case bcopy can not |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4307 be used. We convert to a 32 bit type here, because so much code |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4308 assume on that. |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4309 |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4310 The bytes and offsets passed to XGetWindowProperty refers to the |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4311 property and those are indeed in 32 bit quantities if format is |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4312 32. */ |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4313 |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4314 if (actual_format == 32 && actual_format < BITS_PER_LONG) |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4315 { |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4316 unsigned long i; |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4317 int *idata = (int *) tmp_data; |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4318 long *ldata = (long *) tmp_data; |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4319 |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4320 for (i = 0; i < actual_size; ++i) |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
4321 idata[i] = (int) ldata[i]; |
59976
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4322 } |
10ab4fe55163
* xfns.c (Fx_change_window_property): Use long array when format is 32.
Jan Djärv <jan.h.d@swipnet.se>
parents:
59974
diff
changeset
|
4323 |
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4324 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
|
4325 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
|
4326 else |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4327 prop_value = x_property_data_to_lisp (f, |
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
4328 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
|
4329 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
|
4330 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
|
4331 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
|
4332 } |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4333 |
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Djärv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4334 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
|
4335 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4336 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4337 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
|
4338 UNGCPRO; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4339 return prop_value; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4340 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4341 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4342 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4343 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4344 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4345 Busy cursor |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4346 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4347 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4348 /* 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
|
4349 an hourglass cursor on all frames. */ |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4350 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4351 static struct atimer *hourglass_atimer; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4352 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4353 /* 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
|
4354 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4355 static int hourglass_shown_p; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4356 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4357 /* 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
|
4358 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4359 static Lisp_Object Vhourglass_delay; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4360 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4361 /* 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
|
4362 cursor. */ |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4363 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4364 #define DEFAULT_HOURGLASS_DELAY 1 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4365 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4366 /* Function prototypes. */ |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4367 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4368 static void show_hourglass P_ ((struct atimer *)); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4369 static void hide_hourglass P_ ((void)); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4370 |
60555
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4371 /* Return non-zero if houglass timer has been started or hourglass is shown. */ |
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4372 |
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4373 int |
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4374 hourglass_started () |
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4375 { |
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4376 return hourglass_shown_p || hourglass_atimer != NULL; |
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4377 } |
2895b0a63b0e
* xfns.c (hourglass_started): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
60133
diff
changeset
|
4378 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4379 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4380 /* 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
|
4381 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4382 void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4383 start_hourglass () |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4384 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4385 EMACS_TIME delay; |
27915
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4386 int secs, usecs = 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4387 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4388 cancel_hourglass (); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4389 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4390 if (INTEGERP (Vhourglass_delay) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4391 && XINT (Vhourglass_delay) > 0) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4392 secs = XFASTINT (Vhourglass_delay); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4393 else if (FLOATP (Vhourglass_delay) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4394 && 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
|
4395 { |
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4396 Lisp_Object tem; |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4397 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
|
4398 secs = XFASTINT (tem); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4399 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
|
4400 } |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4401 else |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4402 secs = DEFAULT_HOURGLASS_DELAY; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4403 |
27915
e5b8e194d279
(start_busy_cursor): Allow floats for busy-cursor-delay.
Gerd Moellmann <gerd@gnu.org>
parents:
27902
diff
changeset
|
4404 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
|
4405 hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay, |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4406 show_hourglass, NULL); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4407 } |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4408 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4409 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4410 /* 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
|
4411 shown. */ |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4412 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4413 void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4414 cancel_hourglass () |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4415 { |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4416 if (hourglass_atimer) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4417 { |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4418 cancel_atimer (hourglass_atimer); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4419 hourglass_atimer = NULL; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4420 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4421 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4422 if (hourglass_shown_p) |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4423 hide_hourglass (); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4424 } |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4425 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4426 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4427 /* 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
|
4428 hourglass_atimer. |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4429 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4430 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
|
4431 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
|
4432 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
|
4433 shown on the frames. */ |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4434 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4435 static void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4436 show_hourglass (timer) |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4437 struct atimer *timer; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4438 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4439 /* 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
|
4440 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
|
4441 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
|
4442 hourglass_atimer = NULL; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4443 |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4444 if (!hourglass_shown_p) |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4445 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4446 Lisp_Object rest, frame; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4447 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4448 BLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4449 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4450 FOR_EACH_FRAME (rest, frame) |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4451 { |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4452 struct frame *f = XFRAME (frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4453 |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4454 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
|
4455 { |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4456 Display *dpy = FRAME_X_DISPLAY (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4457 |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4458 #ifdef USE_X_TOOLKIT |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4459 if (f->output_data.x->widget) |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4460 #else |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4461 if (FRAME_OUTER_WINDOW (f)) |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4462 #endif |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4463 { |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4464 f->output_data.x->hourglass_p = 1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4465 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4466 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
|
4467 { |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4468 unsigned long mask = CWCursor; |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4469 XSetWindowAttributes attrs; |
59789
97d17acaf4e7
* xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
Jan Djärv <jan.h.d@swipnet.se>
parents:
59102
diff
changeset
|
4470 #ifdef USE_GTK |
97d17acaf4e7
* xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
Jan Djärv <jan.h.d@swipnet.se>
parents:
59102
diff
changeset
|
4471 Window parent = FRAME_X_WINDOW (f); |
97d17acaf4e7
* xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
Jan Djärv <jan.h.d@swipnet.se>
parents:
59102
diff
changeset
|
4472 #else |
97d17acaf4e7
* xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
Jan Djärv <jan.h.d@swipnet.se>
parents:
59102
diff
changeset
|
4473 Window parent = FRAME_OUTER_WINDOW (f); |
97d17acaf4e7
* xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
Jan Djärv <jan.h.d@swipnet.se>
parents:
59102
diff
changeset
|
4474 #endif |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4475 attrs.cursor = f->output_data.x->hourglass_cursor; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4476 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4477 f->output_data.x->hourglass_window |
59789
97d17acaf4e7
* xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
Jan Djärv <jan.h.d@swipnet.se>
parents:
59102
diff
changeset
|
4478 = XCreateWindow (dpy, parent, |
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4479 0, 0, 32000, 32000, 0, 0, |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4480 InputOnly, |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4481 CopyFromParent, |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4482 mask, &attrs); |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4483 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4484 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4485 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
|
4486 XFlush (dpy); |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4487 } |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4488 } |
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4489 } |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4490 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4491 hourglass_shown_p = 1; |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4492 UNBLOCK_INPUT; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4493 } |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4494 } |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4495 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4496 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4497 /* 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
|
4498 shown. */ |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4499 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4500 static void |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4501 hide_hourglass () |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4502 { |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4503 if (hourglass_shown_p) |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4504 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4505 Lisp_Object rest, frame; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4506 |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4507 BLOCK_INPUT; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4508 FOR_EACH_FRAME (rest, frame) |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4509 { |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4510 struct frame *f = XFRAME (frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4511 |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4512 if (FRAME_X_P (f) |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4513 /* Watch out for newly created frames. */ |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4514 && f->output_data.x->hourglass_window) |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4515 { |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4516 XUnmapWindow (FRAME_X_DISPLAY (f), |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4517 f->output_data.x->hourglass_window); |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4518 /* 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
|
4519 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
|
4520 XSync (FRAME_X_DISPLAY (f), False); |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4521 f->output_data.x->hourglass_p = 0; |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4522 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4523 } |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4524 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4525 hourglass_shown_p = 0; |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4526 UNBLOCK_INPUT; |
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4527 } |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4528 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4529 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4530 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4531 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4532 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4533 Tool tips |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4534 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4535 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4536 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
|
4537 Lisp_Object, Lisp_Object)); |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4538 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
|
4539 Lisp_Object, int, int, int *, int *)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4540 |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4541 /* 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
|
4542 |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4543 Lisp_Object tip_frame; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4544 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4545 /* 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
|
4546 fires. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4547 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4548 Lisp_Object tip_timer; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4549 Window tip_window; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4550 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4551 /* 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
|
4552 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
|
4553 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4554 Lisp_Object last_show_tip_args; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4555 |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4556 /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */ |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4557 |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4558 Lisp_Object Vx_max_tooltip_size; |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4559 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4560 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4561 static Lisp_Object |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4562 unwind_create_tip_frame (frame) |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4563 Lisp_Object frame; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4564 { |
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4565 Lisp_Object deleted; |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4566 |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4567 deleted = unwind_create_frame (frame); |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4568 if (EQ (deleted, Qt)) |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4569 { |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4570 tip_window = None; |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4571 tip_frame = Qnil; |
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4572 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4573 |
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4574 return deleted; |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4575 } |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4576 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4577 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4578 /* 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
|
4579 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
|
4580 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
|
4581 |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4582 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
|
4583 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
|
4584 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
|
4585 when this happens. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4586 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4587 static Lisp_Object |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4588 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
|
4589 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
|
4590 Lisp_Object parms, text; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4591 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4592 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4593 Lisp_Object frame, tem; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4594 Lisp_Object name; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4595 long window_prompting = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4596 int width, height; |
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
4597 int count = SPECPDL_INDEX (); |
25715
feaedc03dbc8
(x_set_background_color): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents:
25691
diff
changeset
|
4598 struct gcpro gcpro1, gcpro2, gcpro3; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4599 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
|
4600 Lisp_Object buffer; |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4601 struct buffer *old_buffer; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4602 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4603 check_x (); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4604 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4605 /* 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
|
4606 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
|
4607 if (!STRINGP (name) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4608 && !EQ (name, Qunbound) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4609 && !NILP (name)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4610 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
|
4611 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4612 frame = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4613 GCPRO3 (parms, name, frame); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4614 f = make_frame (1); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4615 XSETFRAME (frame, f); |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4616 |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4617 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
|
4618 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
|
4619 old_buffer = current_buffer; |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4620 set_buffer_internal_1 (XBUFFER (buffer)); |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4621 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
|
4622 specbind (Qinhibit_read_only, Qt); |
43663119f752
(x_create_tip_frame): Bind inhibit-read-only and
Kenichi Handa <handa@m17n.org>
parents:
54392
diff
changeset
|
4623 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
|
4624 Ferase_buffer (); |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4625 Finsert (1, &text); |
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4626 set_buffer_internal_1 (old_buffer); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4627 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4628 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
|
4629 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
|
4630 |
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
4631 f->device = dpyinfo->device; |
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
4632 f->device->reference_count++; |
82990
2ecd1f669db9
Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents:
53339
diff
changeset
|
4633 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4634 /* 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
|
4635 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
|
4636 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
|
4637 counts etc. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4638 f->output_method = output_x_window; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4639 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
|
4640 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
|
4641 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
|
4642 FRAME_FONTSET (f) = -1; |
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4643 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
|
4644 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
|
4645 #ifdef USE_TOOLKIT_SCROLL_BARS |
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
4646 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
|
4647 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
|
4648 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4649 f->icon_name = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4650 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
|
4651 #if GLYPH_DEBUG |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4652 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
|
4653 dpyinfo_refcount = dpyinfo->reference_count; |
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4654 #endif /* GLYPH_DEBUG */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4655 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
|
4656 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
|
4657 |
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4658 /* 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
|
4659 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
|
4660 { |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4661 Lisp_Object black; |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4662 struct gcpro gcpro1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4663 |
83234
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4664 /* Function x_decode_color can signal an error. Make |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4665 sure to initialize color slots so that we won't try |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4666 to free colors we haven't allocated. */ |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4667 f->output_data.x->foreground_pixel = -1; |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4668 f->output_data.x->background_pixel = -1; |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4669 f->output_data.x->cursor_pixel = -1; |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4670 f->output_data.x->cursor_foreground_pixel = -1; |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4671 f->output_data.x->border_pixel = -1; |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4672 f->output_data.x->mouse_pixel = -1; |
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4673 |
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4674 black = build_string ("black"); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4675 GCPRO1 (black); |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4676 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
|
4677 = 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
|
4678 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
|
4679 = 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
|
4680 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
|
4681 = 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
|
4682 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
|
4683 = 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
|
4684 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
|
4685 = 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
|
4686 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
|
4687 = 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
|
4688 UNGCPRO; |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4689 } |
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4690 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4691 /* 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
|
4692 be set. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4693 if (EQ (name, Qunbound) || NILP (name)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4694 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4695 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
|
4696 f->explicit_name = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4697 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4698 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4699 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4700 f->name = name; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4701 f->explicit_name = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4702 /* 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
|
4703 specbind (Qx_resource_name, name); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4704 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4705 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4706 /* 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
|
4707 needed to determine window geometry. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4708 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4709 Lisp_Object font; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4710 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4711 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
|
4712 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4713 BLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4714 /* 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
|
4715 if (STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4716 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4717 tem = Fquery_fontset (font, Qnil); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4718 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
|
4719 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
|
4720 else |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4721 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
|
4722 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4723 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4724 /* 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
|
4725 if (!STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4726 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
|
4727 if (!STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4728 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
|
4729 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4730 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
|
4731 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4732 /* 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
|
4733 and takes too long. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4734 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
|
4735 /* 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
|
4736 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4737 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
|
4738 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4739 if (! STRINGP (font)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4740 font = build_string ("fixed"); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4741 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4742 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
|
4743 "font", "Font", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4744 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4745 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4746 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
|
4747 "borderWidth", "BorderWidth", RES_TYPE_NUMBER); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4748 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4749 /* 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
|
4750 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
|
4751 it). */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4752 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
|
4753 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4754 Lisp_Object value; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4755 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4756 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
|
4757 "internalBorder", "internalBorder", RES_TYPE_NUMBER); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4758 if (! EQ (value, Qunbound)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4759 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
|
4760 parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4761 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4762 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4763 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
|
4764 "internalBorderWidth", "internalBorderWidth", |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4765 RES_TYPE_NUMBER); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4766 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4767 /* 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
|
4768 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
|
4769 "foreground", "Foreground", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4770 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
|
4771 "background", "Background", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4772 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
|
4773 "pointerColor", "Foreground", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4774 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
|
4775 "cursorColor", "Foreground", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4776 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
|
4777 "borderColor", "BorderColor", RES_TYPE_STRING); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4778 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4779 /* 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
|
4780 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
|
4781 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
|
4782 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
|
4783 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
|
4784 happen. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4785 init_frame_faces (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4786 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4787 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
|
4788 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
4789 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
|
4790 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4791 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4792 XSetWindowAttributes attrs; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4793 unsigned long mask; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4794 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4795 BLOCK_INPUT; |
33657
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4796 mask = CWBackPixel | CWOverrideRedirect | CWEventMask; |
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4797 if (DoesSaveUnders (dpyinfo->screen)) |
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4798 mask |= CWSaveUnder; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4799 |
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
4800 /* 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
|
4801 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
|
4802 3.2.8). */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4803 attrs.override_redirect = True; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4804 attrs.save_under = True; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4805 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
|
4806 /* 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
|
4807 attrs.event_mask = StructureNotifyMask; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4808 tip_window |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4809 = FRAME_X_WINDOW (f) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4810 = XCreateWindow (FRAME_X_DISPLAY (f), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4811 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
|
4812 /* x, y, width, height */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4813 0, 0, 1, 1, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4814 /* Border. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4815 1, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4816 CopyFromParent, InputOutput, CopyFromParent, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4817 mask, &attrs); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4818 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4819 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4820 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4821 x_make_gc (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4822 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4823 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
|
4824 "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4825 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
|
4826 "autoLower", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4827 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
|
4828 "cursorType", "CursorType", RES_TYPE_SYMBOL); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4829 |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4830 /* 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
|
4831 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
|
4832 FRAME_LINES (f). */ |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4833 width = FRAME_COLS (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4834 height = FRAME_LINES (f); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4835 SET_FRAME_COLS (f, 0); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4836 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
|
4837 change_frame_size (f, height, width, 1, 0, 0); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4838 |
47731
755c4233cfba
* frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents:
47434
diff
changeset
|
4839 /* 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
|
4840 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
|
4841 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
|
4842 Qnil)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4843 |
35042
3088c9745e92
(x_create_tip_frame): Call face-set-after-frame-default,
Gerd Moellmann <gerd@gnu.org>
parents:
34976
diff
changeset
|
4844 /* 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
|
4845 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
|
4846 |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4847 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
|
4848 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
|
4849 `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
|
4850 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
|
4851 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
|
4852 { |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4853 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
|
4854 |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4855 /* 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
|
4856 tip_frame = frame; |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4857 call1 (Qface_set_after_frame_default, frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4858 |
35508
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4859 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
|
4860 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
|
4861 Qnil)); |
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4862 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4863 |
83016
1d7467694692
Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents:
83014
diff
changeset
|
4864 Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qx), Qnil)); |
1d7467694692
Fix initialization of the window-system variable.
Karoly Lorentey <lorentey@elte.hu>
parents:
83014
diff
changeset
|
4865 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4866 f->no_split = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4867 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4868 UNGCPRO; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4869 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4870 /* 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
|
4871 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
|
4872 visible won't work. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4873 Vframe_list = Fcons (frame, Vframe_list); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4874 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4875 /* 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
|
4876 its display. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4877 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
|
4878 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4879 /* 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
|
4880 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
|
4881 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
|
4882 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
|
4883 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
|
4884 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
|
4885 |
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4886 /* Discard the unwind_protect. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4887 return unbind_to (count, frame); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4888 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4889 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4890 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4891 /* 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
|
4892 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
|
4893 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
|
4894 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
|
4895 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
|
4896 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4897 static void |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4898 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
|
4899 struct frame *f; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4900 Lisp_Object parms, dx, dy; |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4901 int width, height; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4902 int *root_x, *root_y; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4903 { |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4904 Lisp_Object left, top; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4905 int win_x, win_y; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4906 Window root, child; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4907 unsigned pmask; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4908 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4909 /* User-specified position? */ |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4910 left = Fcdr (Fassq (Qleft, parms)); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4911 top = Fcdr (Fassq (Qtop, parms)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4912 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4913 /* 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
|
4914 show it. */ |
41449
4416668397d7
(compute_tip_xy): Initialize root_x and root_y from
Jason Rumney <jasonr@gnu.org>
parents:
41132
diff
changeset
|
4915 if (!INTEGERP (left) || !INTEGERP (top)) |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4916 { |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4917 BLOCK_INPUT; |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4918 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
|
4919 &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
|
4920 UNBLOCK_INPUT; |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4921 } |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4922 |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4923 if (INTEGERP (top)) |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4924 *root_y = XINT (top); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4925 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
|
4926 *root_y -= XINT (dy); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4927 else |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4928 { |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4929 *root_y -= height; |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4930 *root_y += XINT (dy); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4931 } |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4932 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4933 if (INTEGERP (left)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4934 *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
|
4935 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
|
4936 /* 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
|
4937 *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
|
4938 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
|
4939 /* 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
|
4940 *root_x -= width + XINT (dx); |
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4941 else |
42247
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4942 /* 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
|
4943 *root_x = 0; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4944 } |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4945 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4946 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4947 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
|
4948 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
|
4949 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
|
4950 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4951 FRAME nil or omitted means use the selected frame. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4952 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4953 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
|
4954 change the tooltip's appearance. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4955 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4956 Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4957 means use the default timeout of 5 seconds. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4958 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4959 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
|
4960 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
|
4961 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
|
4962 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
|
4963 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
|
4964 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
|
4965 DY added (default is -10). |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4966 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4967 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
|
4968 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
|
4969 (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
|
4970 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
|
4971 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4972 struct frame *f; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4973 struct window *w; |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4974 int root_x, root_y; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4975 struct buffer *old_buffer; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4976 struct text_pos pos; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4977 int i, width, height; |
26980
f0d5e95ccce9
(Fx_show_tip): Gcpro `timeout' too.
Dave Love <fx@gnu.org>
parents:
26978
diff
changeset
|
4978 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
|
4979 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
|
4980 int count = SPECPDL_INDEX (); |
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 specbind (Qinhibit_redisplay, Qt); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4983 |
26980
f0d5e95ccce9
(Fx_show_tip): Gcpro `timeout' too.
Dave Love <fx@gnu.org>
parents:
26978
diff
changeset
|
4984 GCPRO4 (string, parms, frame, timeout); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4985 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4986 CHECK_STRING (string); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4987 f = check_x_frame (frame); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4988 if (NILP (timeout)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4989 timeout = make_number (5); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4990 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4991 CHECK_NATNUM (timeout); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4992 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4993 if (NILP (dx)) |
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4994 dx = make_number (5); |
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4995 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4996 CHECK_NUMBER (dx); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4997 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
4998 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
|
4999 dy = make_number (-10); |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5000 else |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5001 CHECK_NUMBER (dy); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5002 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5003 if (NILP (last_show_tip_args)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5004 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
|
5005 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5006 if (!NILP (tip_frame)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5007 { |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5008 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
|
5009 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
|
5010 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
|
5011 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5012 if (EQ (frame, last_frame) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5013 && !NILP (Fequal (last_string, string)) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5014 && !NILP (Fequal (last_parms, parms))) |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5015 { |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5016 struct frame *f = XFRAME (tip_frame); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5017 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5018 /* Only DX and DY have changed. */ |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5019 if (!NILP (tip_timer)) |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5020 { |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5021 Lisp_Object timer = tip_timer; |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5022 tip_timer = Qnil; |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5023 call1 (Qcancel_timer, timer); |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5024 } |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5025 |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5026 BLOCK_INPUT; |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5027 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
|
5028 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
|
5029 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
|
5030 root_x, root_y); |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5031 UNBLOCK_INPUT; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5032 goto start_timer; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5033 } |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5034 } |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5035 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5036 /* Hide a previous tip, if any. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5037 Fx_hide_tip (); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5038 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5039 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
|
5040 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
|
5041 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
|
5042 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5043 /* Add default values to frame parameters. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5044 if (NILP (Fassq (Qname, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5045 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
|
5046 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
|
5047 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
|
5048 if (NILP (Fassq (Qborder_width, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5049 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
|
5050 if (NILP (Fassq (Qborder_color, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5051 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
|
5052 if (NILP (Fassq (Qbackground_color, parms))) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5053 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
|
5054 parms); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5055 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5056 /* 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
|
5057 variable tip_frame. */ |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
5058 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
|
5059 f = XFRAME (frame); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5060 |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5061 /* 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
|
5062 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
|
5063 w->left_col = w->top_line = make_number (0); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5064 |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5065 if (CONSP (Vx_max_tooltip_size) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5066 && INTEGERP (XCAR (Vx_max_tooltip_size)) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5067 && XINT (XCAR (Vx_max_tooltip_size)) > 0 |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5068 && INTEGERP (XCDR (Vx_max_tooltip_size)) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5069 && XINT (XCDR (Vx_max_tooltip_size)) > 0) |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5070 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5071 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
|
5072 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
|
5073 } |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5074 else |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5075 { |
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5076 w->total_cols = make_number (80); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5077 w->total_lines = make_number (40); |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5078 } |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5079 |
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5080 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
|
5081 adjust_glyphs (f); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5082 w->pseudo_window_p = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5083 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5084 /* 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
|
5085 old_buffer = current_buffer; |
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
5086 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
|
5087 current_buffer->truncate_lines = Qnil; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5088 clear_glyph_matrix (w->desired_matrix); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5089 clear_glyph_matrix (w->current_matrix); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5090 SET_TEXT_POS (pos, BEGV, BEGV_BYTE); |
63772
b9edfe751512
(Fx_show_tip): Pass new arg to try_window.
Richard M. Stallman <rms@gnu.org>
parents:
62216
diff
changeset
|
5091 try_window (FRAME_ROOT_WINDOW (f), pos, 0); |
24994
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 /* 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
|
5094 width = height = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5095 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
|
5096 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5097 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
|
5098 struct glyph *last; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5099 int row_width; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5100 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5101 /* 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
|
5102 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
|
5103 break; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5104 |
25082
ba6bf065b287
(x_create_tip_frame): Don't set bitmapIcon resource.
Gerd Moellmann <gerd@gnu.org>
parents:
25075
diff
changeset
|
5105 /* 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
|
5106 row->full_width_p = 1; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5107 |
28410
2812a333e746
(free_image_cache): Free the cache structure itself
Gerd Moellmann <gerd@gnu.org>
parents:
28355
diff
changeset
|
5108 /* 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
|
5109 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
|
5110 if (row->used[TEXT_AREA]) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5111 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5112 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
|
5113 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
|
5114 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5115 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5116 row_width = row->pixel_width; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5117 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5118 height += row->height; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5119 width = max (width, row_width); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5120 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5121 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5122 /* 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
|
5123 window should have. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5124 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
|
5125 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
|
5126 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5127 /* 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
|
5128 show it. */ |
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
5129 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
|
5130 |
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5131 BLOCK_INPUT; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5132 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
|
5133 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
|
5134 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
|
5135 UNBLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5136 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5137 /* Draw into the window. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5138 w->must_be_updated_p = 1; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5139 update_single_window (w, 1); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5140 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5141 /* Restore original current buffer. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5142 set_buffer_internal_1 (old_buffer); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5143 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
|
5144 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5145 start_timer: |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5146 /* 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
|
5147 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
|
5148 intern ("x-hide-tip")); |
26954
e388d69f4269
(Fx_show_tip): Add missing UNGCPRO.
Dave Love <fx@gnu.org>
parents:
26876
diff
changeset
|
5149 |
e388d69f4269
(Fx_show_tip): Add missing UNGCPRO.
Dave Love <fx@gnu.org>
parents:
26876
diff
changeset
|
5150 UNGCPRO; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5151 return unbind_to (count, Qnil); |
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 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5154 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5155 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
|
5156 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
|
5157 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
|
5158 () |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5159 { |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5160 int count; |
34476 | 5161 Lisp_Object deleted, frame, timer; |
5162 struct gcpro gcpro1, gcpro2; | |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5163 |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5164 /* Return quickly if nothing to do. */ |
34476 | 5165 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
|
5166 return Qnil; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5167 |
34476 | 5168 frame = tip_frame; |
5169 timer = tip_timer; | |
5170 GCPRO2 (frame, timer); | |
5171 tip_frame = tip_timer = deleted = Qnil; | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5172 |
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
5173 count = SPECPDL_INDEX (); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5174 specbind (Qinhibit_redisplay, Qt); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5175 specbind (Qinhibit_quit, Qt); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5176 |
34476 | 5177 if (!NILP (timer)) |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5178 call1 (Qcancel_timer, timer); |
34476 | 5179 |
5180 if (FRAMEP (frame)) | |
5181 { | |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5182 Fdelete_frame (frame, Qnil); |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5183 deleted = Qt; |
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5184 |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5185 #ifdef USE_LUCID |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5186 /* 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
|
5187 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
|
5188 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
|
5189 { |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5190 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
|
5191 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
|
5192 extern void xlwmenu_redisplay P_ ((Widget)); |
39675 | 5193 |
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5194 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
|
5195 && w != NULL) |
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5196 { |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5197 BLOCK_INPUT; |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5198 xlwmenu_redisplay (w); |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5199 UNBLOCK_INPUT; |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5200 } |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5201 } |
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5202 #endif /* USE_LUCID */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5203 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5204 |
34476 | 5205 UNGCPRO; |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5206 return unbind_to (count, deleted); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5207 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5208 |
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 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5211 /*********************************************************************** |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5212 File selection dialog |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5213 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5214 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5215 #ifdef USE_MOTIF |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5216 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5217 /* 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
|
5218 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5219 static void |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5220 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
|
5221 Widget widget; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5222 XtPointer call_data, client_data; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5223 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5224 int *result = (int *) client_data; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5225 XmAnyCallbackStruct *cb = (XmAnyCallbackStruct *) call_data; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5226 *result = cb->reason; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5227 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5228 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5229 |
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5230 /* 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
|
5231 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
|
5232 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
|
5233 in this case. */ |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5234 |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5235 static void |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5236 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
|
5237 Widget widget; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5238 XtPointer call_data, client_data; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5239 { |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5240 int *result = (int *) client_data; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5241 *result = XmCR_CANCEL; |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5242 } |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5243 |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5244 static Lisp_Object |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5245 clean_up_file_dialog (arg) |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5246 Lisp_Object arg; |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5247 { |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5248 struct Lisp_Save_Value *p = XSAVE_VALUE (arg); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5249 Widget dialog = (Widget) p->pointer; |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5250 |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5251 /* Clean up. */ |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5252 BLOCK_INPUT; |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5253 XtUnmanageChild (dialog); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5254 XtDestroyWidget (dialog); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5255 x_menu_set_in_use (0); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5256 UNBLOCK_INPUT; |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5257 |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5258 return Qnil; |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5259 } |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5260 |
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5261 |
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
|
5262 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
|
5263 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
|
5264 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
|
5265 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
|
5266 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
|
5267 (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
|
5268 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
|
5269 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5270 int result; |
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
5271 struct frame *f = SELECTED_FRAME (); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5272 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
|
5273 Widget dialog, text, help; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5274 Arg al[10]; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5275 int ac = 0; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5276 extern XtAppContext Xt_app_con; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5277 XmString dir_xmstring, pattern_xmstring; |
46295
b77ef572e1c9
Use macro SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
46285
diff
changeset
|
5278 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
|
5279 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
|
5280 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5281 GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, file); |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5282 |
58283
c163562b2d59
* xmenu.c (x_menu_in_use): Removed.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58214
diff
changeset
|
5283 if (popup_activated ()) |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5284 error ("Trying to use a menu from within a menu-entry"); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5285 |
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5286 CHECK_STRING (prompt); |
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5287 CHECK_STRING (dir); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5288 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5289 /* Prevent redisplay. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5290 specbind (Qinhibit_redisplay, Qt); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5291 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5292 BLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5293 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5294 /* 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
|
5295 directory and using "*" as pattern. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5296 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
|
5297 dir_xmstring = XmStringCreateLocalized (SDATA (dir)); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5298 pattern_xmstring = XmStringCreateLocalized ("*"); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5299 |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
5300 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
|
5301 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
|
5302 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
|
5303 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
|
5304 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
|
5305 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
|
5306 "fsb", al, ac); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5307 XmStringFree (dir_xmstring); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5308 XmStringFree (pattern_xmstring); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5309 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5310 /* Add callbacks for OK and Cancel. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5311 XtAddCallback (dialog, XmNokCallback, file_dialog_cb, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5312 (XtPointer) &result); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5313 XtAddCallback (dialog, XmNcancelCallback, file_dialog_cb, |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5314 (XtPointer) &result); |
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5315 XtAddCallback (dialog, XmNunmapCallback, file_dialog_unmap_cb, |
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5316 (XtPointer) &result); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5317 |
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
|
5318 /* 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
|
5319 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
|
5320 XtUnmanageChild (help); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5321 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5322 /* Mark OK button as default. */ |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5323 XtVaSetValues (XmFileSelectionBoxGetChild (dialog, XmDIALOG_OK_BUTTON), |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5324 XmNshowAsDefault, True, NULL); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5325 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5326 /* 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
|
5327 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
|
5328 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
|
5329 the result file name, then. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5330 text = XmFileSelectionBoxGetChild (dialog, XmDIALOG_TEXT); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5331 if (!NILP (mustmatch)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5332 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5333 Widget label; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5334 label = XmFileSelectionBoxGetChild (dialog, XmDIALOG_SELECTION_LABEL); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5335 XtSetSensitive (text, False); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5336 XtSetSensitive (label, False); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5337 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5338 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5339 /* 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
|
5340 XtManageChild (dialog); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5341 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5342 if (STRINGP (default_filename)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5343 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5344 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
|
5345 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
|
5346 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
|
5347 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5348 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
|
5349 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
|
5350 (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
|
5351 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5352 /* 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
|
5353 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
|
5354 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5355 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
|
5356 |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5357 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
|
5358 { |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5359 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
|
5360 /* 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
|
5361 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
|
5362 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
|
5363 } |
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Djärv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5364 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5365 XmStringFree (default_xmstring); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5366 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5367 |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5368 record_unwind_protect (clean_up_file_dialog, make_save_value (dialog, 0)); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5369 |
49117 | 5370 /* Process events until the user presses Cancel or OK. */ |
58283
c163562b2d59
* xmenu.c (x_menu_in_use): Removed.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58214
diff
changeset
|
5371 x_menu_set_in_use (1); |
29866
c31c4d7dd0e0
(Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
Gerd Moellmann <gerd@gnu.org>
parents:
29728
diff
changeset
|
5372 result = 0; |
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5373 while (result == 0) |
38548
58603538f196
(Fx_file_dialog): Block/unblock input while processing
Gerd Moellmann <gerd@gnu.org>
parents:
38542
diff
changeset
|
5374 { |
49117 | 5375 XEvent event; |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5376 x_menu_wait_for_event (0); |
49117 | 5377 XtAppNextEvent (Xt_app_con, &event); |
59102
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5378 if (event.type == KeyPress |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5379 && FRAME_X_DISPLAY (f) == event.xkey.display) |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5380 { |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5381 KeySym keysym = XLookupKeysym (&event.xkey, 0); |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5382 |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5383 /* Pop down on C-g. */ |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5384 if (keysym == XK_g && (event.xkey.state & ControlMask) != 0) |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5385 XtUnmanageChild (dialog); |
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5386 } |
59904
adc18da68682
(unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
Kim F. Storm <storm@cua.dk>
parents:
59789
diff
changeset
|
5387 |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5388 (void) x_dispatch_event (&event, FRAME_X_DISPLAY (f)); |
49117 | 5389 } |
29866
c31c4d7dd0e0
(Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
Gerd Moellmann <gerd@gnu.org>
parents:
29728
diff
changeset
|
5390 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5391 /* Get the result. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5392 if (result == XmCR_OK) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5393 { |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5394 XmString text; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5395 String data; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5396 |
30573
3bb43339533c
(Fx_file_dialog): Use NULL instead of 0 at the end of
Gerd Moellmann <gerd@gnu.org>
parents:
30383
diff
changeset
|
5397 XtVaGetValues (dialog, XmNtextString, &text, NULL); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5398 XmStringGetLtoR (text, XmFONTLIST_DEFAULT_TAG, &data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5399 XmStringFree (text); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5400 file = build_string (data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5401 XtFree (data); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5402 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5403 else |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5404 file = Qnil; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5405 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5406 UNBLOCK_INPUT; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5407 UNGCPRO; |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5408 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5409 /* Make "Cancel" equivalent to C-g. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5410 if (NILP (file)) |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5411 Fsignal (Qquit, Qnil); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5412 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5413 return unbind_to (count, file); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5414 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5415 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5416 #endif /* USE_MOTIF */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5417 |
49322 | 5418 #ifdef USE_GTK |
5419 | |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5420 static Lisp_Object |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5421 clean_up_dialog (arg) |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5422 Lisp_Object arg; |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5423 { |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5424 x_menu_set_in_use (0); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5425 |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5426 return Qnil; |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5427 } |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5428 |
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
|
5429 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
|
5430 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
|
5431 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
|
5432 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
|
5433 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
|
5434 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
|
5435 (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
|
5436 Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p; |
49322 | 5437 { |
5438 FRAME_PTR f = SELECTED_FRAME (); | |
5439 char *fn; | |
5440 Lisp_Object file = Qnil; | |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5441 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
|
5442 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; |
49322 | 5443 char *cdef_file; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5444 |
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
|
5445 GCPRO6 (prompt, dir, default_filename, mustmatch, only_dir_p, file); |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5446 |
58283
c163562b2d59
* xmenu.c (x_menu_in_use): Removed.
Jan Djärv <jan.h.d@swipnet.se>
parents:
58214
diff
changeset
|
5447 if (popup_activated ()) |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5448 error ("Trying to use a menu from within a menu-entry"); |
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5449 |
49322 | 5450 CHECK_STRING (prompt); |
5451 CHECK_STRING (dir); | |
5452 | |
5453 /* Prevent redisplay. */ | |
5454 specbind (Qinhibit_redisplay, Qt); | |
58214
aaad85fd645c
* xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
Jan Djärv <jan.h.d@swipnet.se>
parents:
57941
diff
changeset
|
5455 record_unwind_protect (clean_up_dialog, Qnil); |
49322 | 5456 |
5457 BLOCK_INPUT; | |
5458 | |
5459 if (STRINGP (default_filename)) | |
5460 cdef_file = SDATA (default_filename); | |
5461 else | |
5462 cdef_file = SDATA (dir); | |
5463 | |
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
|
5464 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
|
5465 ! 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
|
5466 ! NILP (only_dir_p)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5467 |
49322 | 5468 if (fn) |
5469 { | |
5470 file = build_string (fn); | |
5471 xfree (fn); | |
5472 } | |
5473 | |
5474 UNBLOCK_INPUT; | |
5475 UNGCPRO; | |
5476 | |
5477 /* Make "Cancel" equivalent to C-g. */ | |
5478 if (NILP (file)) | |
5479 Fsignal (Qquit, Qnil); | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5480 |
49322 | 5481 return unbind_to (count, file); |
5482 } | |
5483 | |
5484 #endif /* USE_GTK */ | |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5485 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5486 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5487 /*********************************************************************** |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5488 Keyboard |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5489 ***********************************************************************/ |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5490 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5491 #ifdef HAVE_XKBGETKEYBOARD |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5492 #include <X11/XKBlib.h> |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5493 #include <X11/keysym.h> |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5494 #endif |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5495 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5496 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
|
5497 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
|
5498 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
|
5499 FRAME nil means use the selected frame. |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5500 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
|
5501 usual X keysyms. */) |
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5502 (frame) |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5503 Lisp_Object frame; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5504 { |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5505 #ifdef HAVE_XKBGETKEYBOARD |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5506 XkbDescPtr kb; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5507 struct frame *f = check_x_frame (frame); |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5508 Display *dpy = FRAME_X_DISPLAY (f); |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5509 Lisp_Object have_keys; |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5510 int major, minor, op, event, error; |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5511 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5512 BLOCK_INPUT; |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5513 |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5514 /* 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
|
5515 major = XkbMajorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5516 minor = XkbMinorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5517 if (!XkbLibraryVersion (&major, &minor)) |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5518 { |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5519 UNBLOCK_INPUT; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5520 return Qnil; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5521 } |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5522 |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5523 /* 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
|
5524 major = XkbMajorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5525 minor = XkbMinorVersion; |
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5526 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
|
5527 { |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5528 UNBLOCK_INPUT; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5529 return Qnil; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5530 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5531 |
59974
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5532 /* In this code we check that the keyboard has physical keys with names |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5533 that start with BKSP (Backspace) and DELE (Delete), and that they |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5534 generate keysym XK_BackSpace and XK_Delete respectively. |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5535 This function is used to test if normal-erase-is-backspace should be |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5536 turned on. |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5537 An alternative approach would be to just check if XK_BackSpace and |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5538 XK_Delete are mapped to any key. But if any of those are mapped to |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5539 some non-intuitive key combination (Meta-Shift-Ctrl-whatever) and the |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5540 user doesn't know about it, it is better to return false here. |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5541 It is more obvious to the user what to do if she/he has two keys |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5542 clearly marked with names/symbols and one key does something not |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5543 expected (i.e. she/he then tries the other). |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5544 The cases where Backspace/Delete is mapped to some other key combination |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5545 are rare, and in those cases, normal-erase-is-backspace can be turned on |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5546 manually. */ |
bb6a99f86b5d
* xfns.c (Fx_backspace_delete_keys_p): Added comment about the
Jan Djärv <jan.h.d@swipnet.se>
parents:
59905
diff
changeset
|
5547 |
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5548 have_keys = Qnil; |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5549 kb = XkbGetMap (dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5550 if (kb) |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5551 { |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5552 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
|
5553 |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5554 if (XkbGetNames (dpy, XkbAllNamesMask, kb) == Success) |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5555 { |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5556 for (i = kb->min_key_code; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5557 (i < kb->max_key_code |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5558 && (delete_keycode == 0 || backspace_keycode == 0)); |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5559 ++i) |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5560 { |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5561 /* 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
|
5562 the PS file generated by `xkbprint -label name |
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5563 $DISPLAY'. */ |
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5564 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
|
5565 delete_keycode = i; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5566 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
|
5567 backspace_keycode = i; |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5568 } |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5569 |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5570 XkbFreeNames (kb, 0, True); |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5571 } |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5572 |
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5573 XkbFreeClientMap (kb, 0, True); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5574 |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5575 if (delete_keycode |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5576 && backspace_keycode |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5577 && XKeysymToKeycode (dpy, XK_Delete) == delete_keycode |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5578 && XKeysymToKeycode (dpy, XK_BackSpace) == backspace_keycode) |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5579 have_keys = Qt; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5580 } |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5581 UNBLOCK_INPUT; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5582 return have_keys; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5583 #else /* not HAVE_XKBGETKEYBOARD */ |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5584 return Qnil; |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5585 #endif /* not HAVE_XKBGETKEYBOARD */ |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5586 } |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5587 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5588 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5589 |
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5590 /*********************************************************************** |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5591 Initialization |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5592 ***********************************************************************/ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5593 |
51175 | 5594 /* 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
|
5595 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
|
5596 |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5597 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
|
5598 { |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5599 x_set_autoraise, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5600 x_set_autolower, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5601 x_set_background_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5602 x_set_border_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5603 x_set_border_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5604 x_set_cursor_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5605 x_set_cursor_type, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5606 x_set_font, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5607 x_set_foreground_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5608 x_set_icon_name, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5609 x_set_icon_type, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5610 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
|
5611 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
|
5612 x_set_mouse_color, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5613 x_explicitly_set_name, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5614 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
|
5615 x_set_title, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5616 x_set_unsplittable, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5617 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
|
5618 x_set_visibility, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5619 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
|
5620 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
|
5621 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
|
5622 x_set_screen_gamma, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5623 x_set_line_spacing, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5624 x_set_fringe_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5625 x_set_fringe_width, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5626 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
|
5627 x_set_fullscreen, |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5628 }; |
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5629 |
21846 | 5630 void |
389 | 5631 syms_of_xfns () |
5632 { | |
5633 /* 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
|
5634 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
|
5635 |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5636 /* 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
|
5637 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
|
5638 /*&&& init symbols here &&&*/ |
1874
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
5639 Qnone = intern ("none"); |
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
5640 staticpro (&Qnone); |
2328
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
5641 Qsuppress_icon = intern ("suppress-icon"); |
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
5642 staticpro (&Qsuppress_icon); |
389 | 5643 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
|
5644 staticpro (&Qundefined_color); |
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
5645 Qcompound_text = intern ("compound-text"); |
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
5646 staticpro (&Qcompound_text); |
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5647 Qcancel_timer = intern ("cancel-timer"); |
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5648 staticpro (&Qcancel_timer); |
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5649 /* 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
|
5650 |
26876 | 5651 /* Text property `display' should be nonsticky by default. */ |
5652 Vtext_property_default_nonsticky | |
5653 = Fcons (Fcons (Qdisplay, Qt), Vtext_property_default_nonsticky); | |
5654 | |
5655 | |
389 | 5656 Fput (Qundefined_color, Qerror_conditions, |
5657 Fcons (Qundefined_color, Fcons (Qerror, Qnil))); | |
5658 Fput (Qundefined_color, Qerror_message, | |
5659 build_string ("Undefined color")); | |
5660 | |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5661 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
|
5662 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
|
5663 Changing the value does not affect existing frames |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5664 unless you set the mouse color. */); |
389 | 5665 Vx_pointer_shape = Qnil; |
5666 | |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5667 #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
|
5668 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
|
5669 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
|
5670 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
|
5671 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
|
5672 #endif |
389 | 5673 Vx_nontext_pointer_shape = Qnil; |
5674 | |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5675 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
|
5676 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
|
5677 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
|
5678 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
|
5679 Vx_hourglass_pointer_shape = Qnil; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5680 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5681 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
|
5682 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
|
5683 display_hourglass_p = 1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5684 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5685 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
|
5686 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
|
5687 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
|
5688 Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY); |
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
5689 |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5690 #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
|
5691 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
|
5692 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
|
5693 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
|
5694 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
|
5695 #endif |
389 | 5696 Vx_mode_pointer_shape = Qnil; |
5697 | |
16396
4e4cc27b2a2a
(x_set_internal_border_width): Only change
Richard M. Stallman <rms@gnu.org>
parents:
16357
diff
changeset
|
5698 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
|
5699 &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
|
5700 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
|
5701 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
|
5702 or when you set the mouse color. */); |
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5703 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
|
5704 |
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
5705 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
|
5706 &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
|
5707 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
|
5708 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
|
5709 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
|
5710 Vx_window_horizontal_drag_shape = Qnil; |
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
5711 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5712 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
|
5713 doc: /* A string indicating the foreground color of the cursor box. */); |
389 | 5714 Vx_cursor_fore_pixel = Qnil; |
5715 | |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5716 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
|
5717 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
|
5718 Text larger than this is clipped. */); |
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5719 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
|
5720 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5721 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
|
5722 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
|
5723 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
|
5724 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
|
5725 /* 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
|
5726 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
|
5727 Vx_no_window_manager = Qnil; |
8170
d92a24366b22
(x_toolkit): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8103
diff
changeset
|
5728 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5729 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
|
5730 &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
|
5731 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
|
5732 |
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5733 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
|
5734 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
|
5735 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
|
5736 Chinese, Japanese, and Korean. */); |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5737 Vx_pixel_size_width_font_regexp = Qnil; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5738 |
58463
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5739 /* This is not ifdef:ed, so other builds than GTK can customize it. */ |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5740 DEFVAR_BOOL ("x-use-old-gtk-file-dialog", &x_use_old_gtk_file_dialog, |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5741 doc: /* *Non-nil means prompt with the old GTK file selection dialog. |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5742 If nil or if the file selection dialog is not available, the new GTK file |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5743 chooser is used instead. To turn off all file dialogs set the |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5744 variable `use-file-dialog'. */); |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5745 x_use_old_gtk_file_dialog = 0; |
86fddd350b35
* gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
Jan Djärv <jan.h.d@swipnet.se>
parents:
58283
diff
changeset
|
5746 |
8170
d92a24366b22
(x_toolkit): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8103
diff
changeset
|
5747 #ifdef USE_X_TOOLKIT |
39862
da336e9d1ab5
(syms_of_xfns): Update calls to Fprovide.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39812
diff
changeset
|
5748 Fprovide (intern ("x-toolkit"), Qnil); |
12094
a9fda5417acf
(syms_of_xfns): Provide motif in Motif version.
Karl Heuer <kwzh@gnu.org>
parents:
12080
diff
changeset
|
5749 #ifdef USE_MOTIF |
39862
da336e9d1ab5
(syms_of_xfns): Update calls to Fprovide.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39812
diff
changeset
|
5750 Fprovide (intern ("motif"), Qnil); |
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5751 |
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5752 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
|
5753 doc: /* Version info for LessTif/Motif. */); |
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5754 Vmotif_version_string = build_string (XmVERSION_STRING); |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5755 #endif /* USE_MOTIF */ |
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5756 #endif /* USE_X_TOOLKIT */ |
389 | 5757 |
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5758 #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
|
5759 /* 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
|
5760 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
|
5761 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
|
5762 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
|
5763 Fprovide (intern ("x-toolkit"), Qnil); |
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5764 Fprovide (intern ("gtk"), Qnil); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5765 |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5766 DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string, |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5767 doc: /* Version info for GTK+. */); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5768 { |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5769 char gtk_version[40]; |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5770 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
|
5771 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5772 Vgtk_version_string = build_string (gtk_version); |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5773 } |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5774 #endif /* USE_GTK */ |
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5775 |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5776 /* X window properties. */ |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5777 defsubr (&Sx_change_window_property); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5778 defsubr (&Sx_delete_window_property); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5779 defsubr (&Sx_window_property); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5780 |
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
5781 defsubr (&Sxw_display_color_p); |
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
5782 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
|
5783 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
|
5784 defsubr (&Sxw_color_values); |
4279 | 5785 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
|
5786 defsubr (&Sx_server_vendor); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5787 defsubr (&Sx_server_version); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5788 defsubr (&Sx_display_pixel_width); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5789 defsubr (&Sx_display_pixel_height); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5790 defsubr (&Sx_display_mm_width); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5791 defsubr (&Sx_display_mm_height); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5792 defsubr (&Sx_display_screens); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5793 defsubr (&Sx_display_planes); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5794 defsubr (&Sx_display_color_cells); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5795 defsubr (&Sx_display_visual_class); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5796 defsubr (&Sx_display_backing_store); |
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5797 defsubr (&Sx_display_save_under); |
771 | 5798 defsubr (&Sx_create_frame); |
389 | 5799 defsubr (&Sx_open_connection); |
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
5800 defsubr (&Sx_close_connection); |
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
5801 defsubr (&Sx_display_list); |
389 | 5802 defsubr (&Sx_synchronize); |
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
5803 defsubr (&Sx_focus_frame); |
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5804 defsubr (&Sx_backspace_delete_keys_p); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5805 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5806 /* Setting callback functions for fontset handler. */ |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5807 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
|
5808 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5809 #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
|
5810 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
|
5811 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
|
5812 #endif |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5813 |
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5814 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
|
5815 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
|
5816 query_font_func = x_query_font; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5817 set_frame_fontset_func = x_set_font; |
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5818 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
|
5819 |
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5820 hourglass_atimer = NULL; |
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5821 hourglass_shown_p = 0; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5822 |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5823 defsubr (&Sx_show_tip); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5824 defsubr (&Sx_hide_tip); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5825 tip_timer = Qnil; |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5826 staticpro (&tip_timer); |
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5827 tip_frame = Qnil; |
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5828 staticpro (&tip_frame); |
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5829 |
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5830 last_show_tip_args = Qnil; |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5831 staticpro (&last_show_tip_args); |
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5832 |
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
|
5833 #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
|
5834 defsubr (&Sx_file_dialog); |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5835 #endif |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5836 } |
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5837 |
389 | 5838 #endif /* HAVE_X_WINDOWS */ |
52401 | 5839 |
5840 /* arch-tag: 55040d02-5485-4d58-8b22-95a7a05f3288 | |
5841 (do not change this comment) */ |