Mercurial > emacs
annotate src/xfns.c @ 106085:cd4cbab8bb21
Handle system default font and changing font parameters.
* xterm.h (struct x_display_info): Add atoms and Window for xsettings.
* xterm.c (handle_one_xevent): Call xft_settings_event for
ClientMessage, PropertyNotify and DestroyNotify.
(x_term_init): If we have XFT, get DPI from Xft.dpi.
Call xsettings_initialize.
* xftfont.c (xftfont_fix_match): New function.
(xftfont_open): Call XftDefaultSubstitute before XftFontMatch.
Call xftfont_fix_match after XftFontMatch.
* xfont.c (xfont_driver): Initialize all members.
* xfns.c (x_default_font_parameter): Try font from Ffont_get_system_font.
Do not get font from x_default_parameter if we got one from
Ffont_get_system_font.
(Fx_select_font): Get the defaut font name from :name of FRAME_FONT (f).
* w32font.c (w32font_driver): Initialize all members.
* termhooks.h (enum event_kind): CONFIG_CHANGED_EVENT is new.
* lisp.h: Declare syms_of_xsettings.
* keyboard.c (kbd_buffer_get_event, make_lispy_event): Handle
CONFIG_CHANGED_EVENT.
* ftfont.c (ftfont_filter_properties): New function.
* frame.c (x_set_font): Remove unused variable lval.
* font.h (struct font_driver): filter_properties is new.
* font.c (font_put_extra): Don't return if val is nil, it means
boolean option is off.
(font_parse_fcname): Collect all extra properties in extra_props
and call filter_properties for all drivers with extra_props and
font as parameter.
(font_open_entity): Do not use cache, it does not pick up new fontconfig
settings like hinting.
(font_load_for_lface): If spec had a name in it, store it in entity.
* emacs.c (main): Call syms_of_xsettings
* config.in: HAVE_GCONF is new.
* Makefile.in (GCONF_CFLAGS, GCONF_LIBS): New variables for HAVE_GCONF.
xsettings.o is new.
* menu-bar.el: Put "Use system font" in Option-menu.
* loadup.el: If feature system-font-setting or font-render-setting is
there, load font-setting.
* Makefile.in (ELCFILES): font-settings.el is new.
* font-setting.el: New file.
* NEWS: Mention dynamic font changes (font-use-system-font).
* configure.in: New option: --with(out)-gconf.
Set HAVE_GCONF if we find gconf.
| author | Jan Dj?rv <jan.h.d@swipnet.se> |
|---|---|
| date | Tue, 17 Nov 2009 08:21:23 +0000 |
| parents | ba3ffbd9c422 |
| children | 58fd09a16d9e |
| 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, |
| 100951 | 3 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 |
| 79759 | 4 Free Software Foundation, Inc. |
| 389 | 5 |
| 6 This file is part of GNU Emacs. | |
| 7 | |
|
94963
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94939
diff
changeset
|
8 GNU Emacs is free software: you can redistribute it and/or modify |
| 389 | 9 it under the terms of the GNU General Public License as published by |
|
94963
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94939
diff
changeset
|
10 the Free Software Foundation, either version 3 of the License, or |
|
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94939
diff
changeset
|
11 (at your option) any later version. |
| 389 | 12 |
| 13 GNU Emacs is distributed in the hope that it will be useful, | |
| 14 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 16 GNU General Public License for more details. | |
| 17 | |
| 18 You should have received a copy of the GNU General Public License | |
|
94963
8971ddf55736
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94939
diff
changeset
|
19 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
| 389 | 20 |
|
26088
b7aa6ac26872
Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents:
26032
diff
changeset
|
21 #include <config.h> |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
22 #include <stdio.h> |
|
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
23 #include <math.h> |
|
105669
68dd71358159
* alloc.c: Do not define struct catchtag.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105426
diff
changeset
|
24 #include <setjmp.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> |
| 88395 | 44 #include "character.h" |
|
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
45 #include "charset.h" |
|
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
46 #include "coding.h" |
|
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
47 #include "fontset.h" |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
48 #include "systime.h" |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
49 #include "termhooks.h" |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
50 #include "atimer.h" |
|
53226
dd3018b4785b
Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents:
53069
diff
changeset
|
51 #include "termchar.h" |
| 90423 | 52 #include "font.h" |
| 53 | |
| 389 | 54 #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
|
55 |
|
786ab5197e4b
Include <stdlib.h> if available, and declare abort only if not. Include
Andreas Schwab <schwab@suse.de>
parents:
25390
diff
changeset
|
56 #include <ctype.h> |
|
27069
b2934c683b5e
(gif_load): Avoid sign extension and thus out of bounds
Gerd Moellmann <gerd@gnu.org>
parents:
27066
diff
changeset
|
57 #include <sys/types.h> |
|
b2934c683b5e
(gif_load): Avoid sign extension and thus out of bounds
Gerd Moellmann <gerd@gnu.org>
parents:
27066
diff
changeset
|
58 #include <sys/stat.h> |
| 389 | 59 |
|
3821
8f353c2491d0
* xfns.c: Always #include "bitmaps/gray.xbm"; the bitmaps seem to
Jim Blandy <jimb@redhat.com>
parents:
3692
diff
changeset
|
60 #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
|
61 #include "bitmaps/gray.xbm" |
|
2657b04dd324
[EMACS_BIT_MAPS]: Include gray.xbm from ./bitmaps.
Richard M. Stallman <rms@gnu.org>
parents:
3507
diff
changeset
|
62 #else |
|
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
63 #include <X11/bitmaps/gray> |
|
3512
2657b04dd324
[EMACS_BIT_MAPS]: Include gray.xbm from ./bitmaps.
Richard M. Stallman <rms@gnu.org>
parents:
3507
diff
changeset
|
64 #endif |
|
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
65 |
| 49322 | 66 #ifdef USE_GTK |
| 67 #include "gtkutil.h" | |
| 68 #endif | |
| 69 | |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
70 #ifdef USE_X_TOOLKIT |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
71 #include <X11/Shell.h> |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
72 |
|
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
|
73 #ifndef USE_MOTIF |
|
81374
c567f60cd935
Link to xaw3d if available.
Chong Yidong <cyd@stupidchicken.com>
parents:
81291
diff
changeset
|
74 #ifdef HAVE_XAW3D |
|
c567f60cd935
Link to xaw3d if available.
Chong Yidong <cyd@stupidchicken.com>
parents:
81291
diff
changeset
|
75 #include <X11/Xaw3d/Paned.h> |
| 81375 | 76 #include <X11/Xaw3d/Label.h> |
|
81374
c567f60cd935
Link to xaw3d if available.
Chong Yidong <cyd@stupidchicken.com>
parents:
81291
diff
changeset
|
77 #else /* !HAVE_XAW3D */ |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
78 #include <X11/Xaw/Paned.h> |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
79 #include <X11/Xaw/Label.h> |
|
81374
c567f60cd935
Link to xaw3d if available.
Chong Yidong <cyd@stupidchicken.com>
parents:
81291
diff
changeset
|
80 #endif /* HAVE_XAW3D */ |
|
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
|
81 #endif /* USE_MOTIF */ |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
82 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
83 #ifdef USG |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
84 #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
|
85 #include <X11/Xos.h> |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
86 #define USG |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
87 #else |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
88 #include <X11/Xos.h> |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
89 #endif |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
90 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
91 #include "widget.h" |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
92 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
93 #include "../lwlib/lwlib.h" |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
94 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
95 #ifdef USE_MOTIF |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
96 #include <Xm/Xm.h> |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
97 #include <Xm/DialogS.h> |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
98 #include <Xm/FileSB.h> |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
99 #endif |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
100 |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
101 #include "xsettings.h" |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
102 |
| 105671 | 103 #if !defined(NO_EDITRES) |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
104 #define HACK_EDITRES |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
105 extern void _XEditResCheckMessages (); |
| 105671 | 106 #endif /* not defined NO_EDITRES */ |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
107 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
108 /* 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
|
109 |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
110 extern LWLIB_ID widget_id_tick; |
|
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
111 |
|
15720
f1549b7501af
(Fx_create_frame): Do xlwmenu hack only if USE_LUCID.
Karl Heuer <kwzh@gnu.org>
parents:
15706
diff
changeset
|
112 #ifdef USE_LUCID |
|
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
113 /* 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
|
114 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
|
115 #endif |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
116 |
|
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
|
117 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
|
118 extern double atof (); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
119 |
|
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
120 #ifdef USE_MOTIF |
|
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 /* LessTif/Motif version info. */ |
|
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 static Lisp_Object Vmotif_version_string; |
|
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
125 |
|
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
126 #endif /* USE_MOTIF */ |
|
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
127 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
128 #endif /* USE_X_TOOLKIT */ |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
129 |
|
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
130 #ifdef USE_GTK |
|
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 /* GTK+ version info */ |
|
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 static Lisp_Object Vgtk_version_string; |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
135 |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
136 #endif /* USE_GTK */ |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
137 |
| 4279 | 138 #define MAXREQUEST(dpy) (XMaxRequestSize (dpy)) |
| 139 | |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
140 /* 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
|
141 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
|
142 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
|
143 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
144 int gray_bitmap_width = gray_width; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
145 int gray_bitmap_height = gray_height; |
|
34512
d069886667e6
(gray_bitmap_bits): Declare `char *'.
Gerd Moellmann <gerd@gnu.org>
parents:
34476
diff
changeset
|
146 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
|
147 |
|
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
|
148 /* 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
|
149 |
|
72964
4e1cc9325b0e
* xfns.c (syms_of_xfns): Rename x-use-old-gtk-file-dialog
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72932
diff
changeset
|
150 int x_gtk_use_old_file_dialog; |
|
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
|
151 |
|
67842
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
152 /* If non-zero, by default show hidden files in the GTK file chooser. */ |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
153 |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
154 int x_gtk_show_hidden_files; |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
155 |
|
72932
eea4777d0d23
* xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72777
diff
changeset
|
156 /* If non-zero, don't show additional help text in the GTK file chooser. */ |
|
eea4777d0d23
* xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72777
diff
changeset
|
157 |
|
72969
f8188a2ff5f6
* xfns.c (syms_of_xfns): Rename x_gtk_show_chooser_help_text to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72964
diff
changeset
|
158 int x_gtk_file_dialog_help_text; |
|
72932
eea4777d0d23
* xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72777
diff
changeset
|
159 |
|
68880
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
160 /* If non-zero, don't collapse to tool bar when it is detached. */ |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
161 |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
162 int x_gtk_whole_detached_tool_bar; |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
163 |
| 389 | 164 /* 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
|
165 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
|
166 |
| 389 | 167 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
|
168 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
|
169 |
|
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
170 /* 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
|
171 |
|
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
172 Lisp_Object Vx_sensitive_text_pointer_shape; |
| 389 | 173 |
|
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
174 /* 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
|
175 dragged horizontally. */ |
|
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
176 |
|
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
177 Lisp_Object Vx_window_horizontal_drag_shape; |
|
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
178 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
179 /* 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
|
180 |
| 389 | 181 Lisp_Object Vx_cursor_fore_pixel; |
| 182 | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
183 /* Nonzero if using X. */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
184 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
185 static int x_in_use; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
186 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
187 /* 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
|
188 |
| 389 | 189 Lisp_Object Vx_no_window_manager; |
| 190 | |
|
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
191 /* 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
|
192 |
|
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
193 Lisp_Object Vx_pixel_size_width_font_regexp; |
|
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
194 |
|
1874
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
195 Lisp_Object Qnone; |
|
2328
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
196 Lisp_Object Qsuppress_icon; |
| 389 | 197 Lisp_Object Qundefined_color; |
|
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
198 Lisp_Object Qcompound_text, Qcancel_timer; |
|
96079
efbaf6995245
* w32fns.c, xfns.c (Qfont_param): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95974
diff
changeset
|
199 static Lisp_Object Qfont_param; |
|
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
200 |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
201 /* In dispnew.c */ |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
202 |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
203 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
|
204 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
205 /* 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
|
206 |
|
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
207 #if GLYPH_DEBUG |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
208 int image_cache_refcount, dpyinfo_refcount; |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
209 #endif |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
210 |
|
103840
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
211 #if defined (USE_GTK) && defined (HAVE_FREETYPE) |
|
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
212 char *x_last_font_name; |
|
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
213 #endif |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
214 |
| 389 | 215 |
|
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
216 /* 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
|
217 |
| 5948 | 218 void |
|
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
219 check_x () |
|
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
220 { |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
221 if (! x_in_use) |
|
2999
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
222 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
|
223 } |
|
33c820044087
(check_x): New function.
Richard M. Stallman <rms@gnu.org>
parents:
2964
diff
changeset
|
224 |
|
13867
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
225 /* 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
|
226 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
|
227 |
|
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
228 int |
|
13867
19a05b5a597d
(check_x_display_info, check_x_frame, x_set_font)
Richard M. Stallman <rms@gnu.org>
parents:
13781
diff
changeset
|
229 have_menus_p () |
|
7791
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
230 { |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
231 return x_in_use; |
|
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 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
234 /* 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
|
235 and checking validity for X. */ |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
236 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
237 FRAME_PTR |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
238 check_x_frame (frame) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
239 Lisp_Object frame; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
240 { |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
241 FRAME_PTR f; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
242 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
243 if (NILP (frame)) |
|
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
244 frame = selected_frame; |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
245 CHECK_LIVE_FRAME (frame); |
|
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
246 f = XFRAME (frame); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
247 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
|
248 error ("Non-X frame used"); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
249 return f; |
|
7791
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
250 } |
|
2b4e4a76468b
(using_x_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7683
diff
changeset
|
251 |
|
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
252 /* Let the user specify an X display with a Lisp object. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
253 OBJECT may be nil, a frame or a terminal object. |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
254 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
|
255 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
|
256 |
|
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
257 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
|
258 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
|
259 Lisp_Object object; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
260 { |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
261 struct x_display_info *dpyinfo = NULL; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
262 |
|
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
263 if (NILP (object)) |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
264 { |
|
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
265 struct frame *sf = XFRAME (selected_frame); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
266 |
|
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
267 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
|
268 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
|
269 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
|
270 dpyinfo = x_display_list; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
271 else |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
272 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
|
273 } |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
274 else if (TERMINALP (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
|
275 { |
|
83760
aa5347e75afa
(check_x_display_info): Yet Another Int/Lisp_Object Mixup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83648
diff
changeset
|
276 struct terminal *t = get_terminal (object, 1); |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
277 |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
278 if (t->type != output_x_window) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
279 error ("Terminal %d is not an X display", XINT (object)); |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
280 |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
281 dpyinfo = t->display_info.x; |
|
83167
69ebc75cb461
Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
83123
diff
changeset
|
282 } |
|
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
283 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
|
284 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
|
285 else |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
286 { |
|
83342
9216636c02fc
Rename `struct display' to `struct device'. Update function, parameter and variable names accordingly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83332
diff
changeset
|
287 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
|
288 dpyinfo = FRAME_X_DISPLAY_INFO (f); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
289 } |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
290 |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
291 return dpyinfo; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
292 } |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
293 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
294 |
| 771 | 295 /* Return the Emacs frame-object corresponding to an X window. |
| 296 It could be the frame's main window or an icon window. */ | |
| 297 | |
|
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
|
298 /* 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
|
299 |
| 771 | 300 struct frame * |
|
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
301 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
|
302 struct x_display_info *dpyinfo; |
| 389 | 303 int wdesc; |
| 304 { | |
| 771 | 305 Lisp_Object tail, frame; |
| 306 struct frame *f; | |
| 307 | |
|
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
|
308 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
|
309 |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
310 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail)) |
|
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
311 { |
|
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
312 frame = XCAR (tail); |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
313 if (!FRAMEP (frame)) |
| 389 | 314 continue; |
| 771 | 315 f = XFRAME (frame); |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
316 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
|
317 continue; |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
318 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
|
319 return f; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
320 #ifdef USE_X_TOOLKIT |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
321 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
|
322 && 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
|
323 /* A tooltip frame? */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
324 || (!f->output_data.x->edit_widget |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
325 && 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
|
326 || f->output_data.x->icon_desc == wdesc) |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
327 return f; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
328 #else /* not USE_X_TOOLKIT */ |
| 49322 | 329 #ifdef USE_GTK |
| 330 if (f->output_data.x->edit_widget) | |
| 331 { | |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
332 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
| 49322 | 333 struct x_output *x = f->output_data.x; |
| 334 if (gwdesc != 0 && gwdesc == x->edit_widget) | |
| 335 return f; | |
| 336 } | |
| 337 #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
|
338 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
|
339 || f->output_data.x->icon_desc == wdesc) |
| 771 | 340 return f; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
341 #endif /* not USE_X_TOOLKIT */ |
| 389 | 342 } |
| 343 return 0; | |
| 344 } | |
| 345 | |
| 49322 | 346 #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
|
347 /* 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
|
348 windows. */ |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
349 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
350 struct frame * |
|
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
351 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
|
352 struct x_display_info *dpyinfo; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
353 int wdesc; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
354 { |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
355 Lisp_Object tail, frame; |
|
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
356 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
|
357 struct x_output *x; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
358 |
|
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
|
359 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
|
360 |
|
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
361 found = NULL; |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
362 for (tail = Vframe_list; 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
|
363 { |
|
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
364 frame = XCAR (tail); |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
365 if (!FRAMEP (frame)) |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
366 continue; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
367 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
368 f = XFRAME (frame); |
|
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
369 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
|
370 { |
|
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
371 /* 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
|
372 x = f->output_data.x; |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
373 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
|
374 found = f; |
|
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
375 else if (x->widget) |
|
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
376 { |
| 49322 | 377 #ifdef USE_GTK |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
378 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
| 49322 | 379 if (gwdesc != 0 |
|
104815
b3c991e42448
* xterm.h: Rename x_non_menubar_window_to_frame to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103840
diff
changeset
|
380 && gtk_widget_get_toplevel (gwdesc) == x->widget) |
| 49322 | 381 found = f; |
| 382 #else | |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
383 if (wdesc == XtWindow (x->widget) |
|
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
384 || 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
|
385 || wdesc == XtWindow (x->edit_widget)) |
|
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
386 found = f; |
|
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
387 /* 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
|
388 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
|
389 found = f; |
| 49322 | 390 #endif |
|
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
391 } |
|
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
392 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
|
393 /* A tooltip frame. */ |
|
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
394 found = f; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
395 } |
|
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
396 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
397 |
|
27798
d00730392332
(x_window_to_frame, x_any_window_to_frame)
Gerd Moellmann <gerd@gnu.org>
parents:
27659
diff
changeset
|
398 return found; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
399 } |
|
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
400 |
|
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
401 /* 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
|
402 |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
403 struct frame * |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
404 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
|
405 struct x_display_info *dpyinfo; |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
406 int wdesc; |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
407 { |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
408 Lisp_Object tail, frame; |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
409 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
|
410 struct x_output *x; |
|
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
411 |
|
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
|
412 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
|
413 |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
414 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail)) |
|
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
415 { |
|
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
416 frame = XCAR (tail); |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
417 if (!FRAMEP (frame)) |
|
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
418 continue; |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
419 f = XFRAME (frame); |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
420 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
|
421 continue; |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
422 x = f->output_data.x; |
|
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
423 /* Match if the window is this frame's menubar. */ |
| 49322 | 424 #ifdef USE_GTK |
| 425 if (x->menubar_widget) | |
| 426 { | |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
427 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
|
104815
b3c991e42448
* xterm.h: Rename x_non_menubar_window_to_frame to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103840
diff
changeset
|
428 |
|
b3c991e42448
* xterm.h: Rename x_non_menubar_window_to_frame to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103840
diff
changeset
|
429 /* This gives false positives, but the rectangle check in xterm.c |
|
b3c991e42448
* xterm.h: Rename x_non_menubar_window_to_frame to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103840
diff
changeset
|
430 where this is called takes care of that. */ |
| 49322 | 431 if (gwdesc != 0 |
| 432 && (gwdesc == x->menubar_widget | |
|
104815
b3c991e42448
* xterm.h: Rename x_non_menubar_window_to_frame to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103840
diff
changeset
|
433 || gtk_widget_is_ancestor (x->menubar_widget, gwdesc) |
|
b3c991e42448
* xterm.h: Rename x_non_menubar_window_to_frame to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103840
diff
changeset
|
434 || gtk_widget_is_ancestor (gwdesc, x->menubar_widget))) |
|
b3c991e42448
* xterm.h: Rename x_non_menubar_window_to_frame to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103840
diff
changeset
|
435 return f; |
| 49322 | 436 } |
| 437 #else | |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
438 if (x->menubar_widget |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
439 && 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
|
440 return f; |
| 49322 | 441 #endif |
|
12656
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
442 } |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
443 return 0; |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
444 } |
|
5beb1d2be5c1
(x_menubar_window_to_frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
12616
diff
changeset
|
445 |
|
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
446 /* 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
|
447 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
|
448 |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
449 struct frame * |
|
11197
1bdc265aab86
(x_window_to_frame): New arg DPYINFO. All callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11060
diff
changeset
|
450 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
|
451 struct x_display_info *dpyinfo; |
|
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
452 int wdesc; |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
453 { |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
454 Lisp_Object tail, frame; |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
455 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
|
456 struct x_output *x; |
|
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
457 |
|
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
|
458 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
|
459 |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
460 for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail)) |
|
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
461 { |
|
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
462 frame = XCAR (tail); |
|
90970
3371fc48749b
Replace uses of GC_* macros with the non-GC_ versions.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
90951
diff
changeset
|
463 if (!FRAMEP (frame)) |
|
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
464 continue; |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
465 f = XFRAME (frame); |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
466 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
|
467 continue; |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
468 x = f->output_data.x; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
469 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
470 if (x->widget) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
471 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
472 /* This frame matches if the window is its topmost widget. */ |
| 49322 | 473 #ifdef USE_GTK |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
474 GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc); |
| 49322 | 475 if (gwdesc == x->widget) |
| 476 return f; | |
| 477 #else | |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
478 if (wdesc == XtWindow (x->widget)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
479 return f; |
|
12019
63ee64941021
(x_top_window_to_frame): Don't match menu-bar widget.
Karl Heuer <kwzh@gnu.org>
parents:
12011
diff
changeset
|
480 #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
|
481 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
|
482 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
|
483 /* Match if the window is this frame's menubar. */ |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
484 if (x->menubar_widget |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
485 && wdesc == XtWindow (x->menubar_widget)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
486 return f; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
487 #endif |
| 49322 | 488 #endif |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
489 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
490 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
|
491 /* Tooltip frame. */ |
|
7040
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
492 return f; |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
493 } |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
494 return 0; |
|
cd4dd38925f9
(x_window): Test FRAME_EXTERNAL_MENU_BAR
Richard M. Stallman <rms@gnu.org>
parents:
6940
diff
changeset
|
495 } |
| 49322 | 496 #endif /* USE_X_TOOLKIT || USE_GTK */ |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
497 |
| 389 | 498 |
|
9543
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
499 |
| 90423 | 500 static void x_default_font_parameter P_ ((struct frame *, Lisp_Object)); |
| 501 | |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
502 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
|
503 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
|
504 |
|
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
505 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
|
506 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
|
507 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
|
508 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
|
509 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
|
510 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
|
511 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
|
512 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
|
513 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
|
514 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
|
515 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
|
516 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
|
517 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
|
518 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
|
519 Lisp_Object)); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
520 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
|
521 Lisp_Object)); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
522 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
|
523 Lisp_Object, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
524 Lisp_Object, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
525 char *, char *, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
526 int)); |
| 389 | 527 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
528 |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
529 /* 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
|
530 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
|
531 not Emacs's own window. */ |
|
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
532 |
|
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
533 void |
|
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
534 x_real_positions (f, xptr, yptr) |
|
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
535 FRAME_PTR f; |
|
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
536 int *xptr, *yptr; |
|
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
537 { |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
538 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
|
539 int real_x = 0, real_y = 0; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
540 int had_errors = 0; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
541 Window win = f->output_data.x->parent_desc; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
542 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
543 BLOCK_INPUT; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
544 |
|
69152
f2147c1027b6
* xterm.h (x_catch_errors) Return value changed to void.
Chong Yidong <cyd@stupidchicken.com>
parents:
69065
diff
changeset
|
545 x_catch_errors (FRAME_X_DISPLAY (f)); |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
546 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
547 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
|
548 win = FRAME_OUTER_WINDOW (f); |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
549 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
550 /* 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
|
551 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
|
552 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
|
553 should be the outer WM window. */ |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
554 for (;;) |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
555 { |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
556 Window wm_window, rootw; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
557 Window *tmp_children; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
558 unsigned int tmp_nchildren; |
|
43914
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
559 int success; |
|
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
560 |
|
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
561 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
|
562 &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
|
563 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
564 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
|
565 |
|
43914
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
566 /* 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
|
567 if (! success) |
|
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
568 break; |
|
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
569 |
|
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
570 XFree ((char *) tmp_children); |
|
fed15ed090bc
(x_real_positions): Handle failure in XQueryTree.
Richard M. Stallman <rms@gnu.org>
parents:
43670
diff
changeset
|
571 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
572 if (wm_window == rootw || had_errors) |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
573 break; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
574 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
575 win = wm_window; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
576 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
577 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
578 if (! had_errors) |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
579 { |
|
67264
d50a6a8cfd1e
* xfns.c (x_real_positions): int ign => unsigned int.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
66931
diff
changeset
|
580 unsigned int ign; |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
581 Window child, rootw; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
582 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
583 /* 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
|
584 XGetGeometry (FRAME_X_DISPLAY (f), win, |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
585 &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
|
586 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
587 /* Translate real coordinates to coordinates relative to our |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
588 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
|
589 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
|
590 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
|
591 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
592 ------------------ ---> x |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
593 | title | |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
594 | ----------------- v y |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
595 | | our window |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
596 */ |
|
17954
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
597 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
|
598 |
|
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
599 /* From-window, to-window. */ |
|
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
600 FRAME_X_DISPLAY_INFO (f)->root_window, |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
601 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
|
602 |
|
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
603 /* From-position, to-position. */ |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
604 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
|
605 |
|
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
606 /* Child of win. */ |
|
7c919d7f8217
(x_real_positions): Directly compare the frame's window
Richard M. Stallman <rms@gnu.org>
parents:
17836
diff
changeset
|
607 &child); |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
608 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
609 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
|
610 { |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
611 outer_x = win_x; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
612 outer_y = win_y; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
613 } |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
614 else |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
615 { |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
616 XTranslateCoordinates (FRAME_X_DISPLAY (f), |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
617 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
618 /* From-window, to-window. */ |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
619 FRAME_X_DISPLAY_INFO (f)->root_window, |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
620 FRAME_OUTER_WINDOW (f), |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
621 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
622 /* From-position, to-position. */ |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
623 real_x, real_y, &outer_x, &outer_y, |
|
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 /* Child of win. */ |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
626 &child); |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
627 } |
|
42721
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 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
|
630 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
631 |
|
69173
fdee8318ddc9
* xterm.h, xterm.c (x_uncatch_errors): Delete unneccessary
Chong Yidong <cyd@stupidchicken.com>
parents:
69152
diff
changeset
|
632 x_uncatch_errors (); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
633 |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
634 UNBLOCK_INPUT; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
635 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
636 if (had_errors) return; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
637 |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
638 f->x_pixels_diff = -win_x; |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
639 f->y_pixels_diff = -win_y; |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
640 |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
641 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
|
642 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
|
643 |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
644 *xptr = real_x; |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
645 *yptr = real_y; |
|
7408
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
646 } |
|
65c133b66371
(x_real_positions): New function.
Richard M. Stallman <rms@gnu.org>
parents:
7308
diff
changeset
|
647 |
| 389 | 648 |
|
10920
bb3f9aaf0e46
(defined_color): If colormap is full, find closest match.
Richard M. Stallman <rms@gnu.org>
parents:
10742
diff
changeset
|
649 |
|
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
650 |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
651 /* 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
|
652 |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
653 void |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
654 gamma_correct (f, color) |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
655 struct frame *f; |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
656 XColor *color; |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
657 { |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
658 if (f->gamma) |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
659 { |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
660 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
|
661 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
|
662 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
|
663 } |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
664 } |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
665 |
|
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
666 |
|
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
667 /* 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
|
668 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
|
669 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
|
670 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
|
671 |
| 389 | 672 int |
|
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
673 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
|
674 struct frame *f; |
|
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
675 char *color_name; |
|
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
676 XColor *color; |
|
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
677 int alloc_p; |
|
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
678 { |
|
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
679 int success_p; |
|
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
680 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
|
681 Colormap cmap = FRAME_X_COLORMAP (f); |
| 389 | 682 |
| 683 BLOCK_INPUT; | |
|
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
684 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
|
685 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
|
686 success_p = x_alloc_nearest_color (f, cmap, color); |
| 389 | 687 UNBLOCK_INPUT; |
| 688 | |
|
28096
244f283b3d03
(x_defined_color): Rewritten to use x_allocate_nearest_color.
Gerd Moellmann <gerd@gnu.org>
parents:
28050
diff
changeset
|
689 return success_p; |
| 389 | 690 } |
| 691 | |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
692 |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
693 /* 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
|
694 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
|
695 Signal an error if color can't be allocated. */ |
| 389 | 696 |
| 697 int | |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
698 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
|
699 FRAME_PTR f; |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
700 Lisp_Object color_name; |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
701 int mono_color; |
| 389 | 702 { |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
703 XColor cdef; |
| 389 | 704 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
705 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
|
706 |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
707 #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
|
708 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
|
709 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
|
710 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
|
711 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
|
712 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
|
713 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
|
714 #endif |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
715 |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
716 /* 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
|
717 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
|
718 return mono_color; |
| 389 | 719 |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
720 /* 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
|
721 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
|
722 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
|
723 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
|
724 |
|
71993
3f1637b3adcb
(x_decode_color): Use signal_error.
Kim F. Storm <storm@cua.dk>
parents:
71577
diff
changeset
|
725 signal_error ("Undefined color", color_name); |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
726 } |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
727 |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
728 |
| 389 | 729 |
|
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
730 /* 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
|
731 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
|
732 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
|
733 |
|
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
734 static void |
|
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
735 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
|
736 struct frame *f; |
|
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
737 Lisp_Object new_value, old_value; |
|
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
738 { |
|
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
739 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
|
740 } |
|
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
741 |
|
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
|
742 #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
|
743 |
|
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
|
744 /* 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
|
745 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
|
746 |
|
b65c743ccded
(x_bitmap_mask, x_create_bitmap_mask): New functions to handle mask of bitmaps.
Juanma Barranquero <lekktu@gmail.com>
parents:
51876
diff
changeset
|
747 int |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
748 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
|
749 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
|
750 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
|
751 { |
|
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
|
752 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
|
753 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
|
754 |
|
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
|
755 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
|
756 |
|
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
|
757 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
|
758 { |
|
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
|
759 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
|
760 GError *err = NULL; |
|
67264
d50a6a8cfd1e
* xfns.c (x_real_positions): int ign => unsigned int.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
66931
diff
changeset
|
761 char *filename = (char *) SDATA (found); |
|
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
|
762 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
|
763 |
|
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
|
764 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
|
765 |
|
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
|
766 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
|
767 { |
|
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
|
768 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
|
769 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
|
770 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
|
771 |
|
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
|
772 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
|
773 } |
|
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
774 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
|
775 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
|
776 |
|
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
|
777 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
|
778 } |
|
a2208fe45c36
* xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
52091
diff
changeset
|
779 |
|
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
|
780 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
|
781 } |
|
66931
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
782 |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
783 int |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
784 xg_set_icon_from_xpm_data (f, data) |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
785 FRAME_PTR f; |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
786 char **data; |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
787 { |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
788 int result = 0; |
|
67264
d50a6a8cfd1e
* xfns.c (x_real_positions): int ign => unsigned int.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
66931
diff
changeset
|
789 GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) data); |
|
66931
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
790 |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
791 if (!pixbuf) |
|
67264
d50a6a8cfd1e
* xfns.c (x_real_positions): int ign => unsigned int.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
66931
diff
changeset
|
792 return 0; |
|
d50a6a8cfd1e
* xfns.c (x_real_positions): int ign => unsigned int.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
66931
diff
changeset
|
793 |
|
d50a6a8cfd1e
* xfns.c (x_real_positions): int ign => unsigned int.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
66931
diff
changeset
|
794 gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), pixbuf); |
|
66931
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
795 g_object_unref (pixbuf); |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
796 return 1; |
|
1a573209abf9
* xfns.c (xg_set_icon_from_xpm_data): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
66502
diff
changeset
|
797 } |
|
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
|
798 #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
|
799 |
|
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
800 |
| 771 | 801 /* Functions called only from `x_set_frame_param' |
| 389 | 802 to set individual parameters. |
| 803 | |
|
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
|
804 If FRAME_X_WINDOW (f) is 0, |
| 771 | 805 the frame is being created and its X-window does not exist yet. |
| 389 | 806 In that case, just record the parameter's new value |
| 807 in the standard place; do not attempt to change the window. */ | |
| 808 | |
| 809 void | |
| 771 | 810 x_set_foreground_color (f, arg, oldval) |
| 811 struct frame *f; | |
| 389 | 812 Lisp_Object arg, oldval; |
| 813 { | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
814 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
|
815 unsigned long fg, old_fg; |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
816 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
817 fg = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
818 old_fg = FRAME_FOREGROUND_PIXEL (f); |
|
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
819 FRAME_FOREGROUND_PIXEL (f) = fg; |
|
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
820 |
|
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
|
821 if (FRAME_X_WINDOW (f) != 0) |
| 389 | 822 { |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
823 Display *dpy = FRAME_X_DISPLAY (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
824 |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
825 BLOCK_INPUT; |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
826 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
|
827 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
|
828 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
829 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
|
830 { |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
831 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
|
832 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
|
833 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
|
834 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
835 |
| 389 | 836 UNBLOCK_INPUT; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
837 |
|
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
838 update_face_from_frame_parameter (f, Qforeground_color, arg); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
839 |
|
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
840 if (FRAME_VISIBLE_P (f)) |
| 771 | 841 redraw_frame (f); |
| 389 | 842 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
843 |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
844 unload_color (f, old_fg); |
| 389 | 845 } |
| 846 | |
| 847 void | |
| 771 | 848 x_set_background_color (f, arg, oldval) |
| 849 struct frame *f; | |
| 389 | 850 Lisp_Object arg, oldval; |
| 851 { | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
852 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
|
853 unsigned long bg; |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
854 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
855 bg = x_decode_color (f, arg, WHITE_PIX_DEFAULT (f)); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
856 unload_color (f, FRAME_BACKGROUND_PIXEL (f)); |
|
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
857 FRAME_BACKGROUND_PIXEL (f) = bg; |
|
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
858 |
|
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
|
859 if (FRAME_X_WINDOW (f) != 0) |
| 389 | 860 { |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
861 Display *dpy = FRAME_X_DISPLAY (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
862 |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
863 BLOCK_INPUT; |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
864 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
|
865 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
|
866 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
|
867 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
|
868 |
| 49322 | 869 #ifdef USE_GTK |
| 870 xg_set_background_color (f, bg); | |
| 871 #endif | |
| 872 | |
|
39159
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
873 #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
|
874 toolkit scroll bars. */ |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
875 { |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
876 Lisp_Object bar; |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
877 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
|
878 !NILP (bar); |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
879 bar = XSCROLL_BAR (bar)->next) |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
880 { |
|
86161
3408ab8b4152
* xterm.h (struct scroll_bar): Only use Lisp_Object for lisp data.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
86073
diff
changeset
|
881 Window window = XSCROLL_BAR (bar)->x_window; |
|
39159
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
882 XSetWindowBackground (dpy, window, bg); |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
883 } |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
884 } |
|
2c7a6a1b047e
(x_set_background_color): Don't change the colors
Gerd Moellmann <gerd@gnu.org>
parents:
38749
diff
changeset
|
885 #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
|
886 |
| 389 | 887 UNBLOCK_INPUT; |
|
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
888 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
|
889 |
|
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
890 if (FRAME_VISIBLE_P (f)) |
| 771 | 891 redraw_frame (f); |
| 389 | 892 } |
| 893 } | |
| 894 | |
|
103704
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
895 static Cursor |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
896 make_invisible_cursor (f) |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
897 struct frame *f; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
898 { |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
899 Display *dpy = FRAME_X_DISPLAY (f); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
900 static char const no_data[] = { 0 }; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
901 Pixmap pix; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
902 XColor col; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
903 Cursor c; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
904 |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
905 x_catch_errors (dpy); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
906 pix = XCreateBitmapFromData (dpy, FRAME_X_DISPLAY_INFO (f)->root_window, |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
907 no_data, 1, 1); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
908 if (! x_had_errors_p (dpy) && pix != None) |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
909 { |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
910 col.pixel = 0; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
911 col.red = col.green = col.blue = 0; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
912 col.flags = DoRed | DoGreen | DoBlue; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
913 c = XCreatePixmapCursor (dpy, pix, pix, &col, &col, 0, 0); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
914 if (x_had_errors_p (dpy) || c == None) |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
915 c = 0; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
916 XFreePixmap (dpy, pix); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
917 } |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
918 |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
919 x_uncatch_errors (); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
920 |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
921 return c; |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
922 } |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
923 |
| 389 | 924 void |
| 771 | 925 x_set_mouse_color (f, arg, oldval) |
| 926 struct frame *f; | |
| 389 | 927 Lisp_Object arg, oldval; |
| 928 { | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
929 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
|
930 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
|
931 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
|
932 Cursor hourglass_cursor, horizontal_drag_cursor; |
|
25075
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
933 unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
934 unsigned long mask_color = FRAME_BACKGROUND_PIXEL (f); |
|
25075
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
935 |
|
9f5d679349e9
(x_set_mouse_color): Always unload the old color.
Karl Heuer <kwzh@gnu.org>
parents:
24994
diff
changeset
|
936 /* 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
|
937 if (mask_color == pixel) |
|
35261
ba1f849f9381
(x_set_mouse_color): Fix color allocation.
Gerd Moellmann <gerd@gnu.org>
parents:
35191
diff
changeset
|
938 { |
|
ba1f849f9381
(x_set_mouse_color): Fix color allocation.
Gerd Moellmann <gerd@gnu.org>
parents:
35191
diff
changeset
|
939 x_free_colors (f, &pixel, 1); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
940 pixel = x_copy_color (f, FRAME_FOREGROUND_PIXEL (f)); |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
941 } |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
942 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
943 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
|
944 x->mouse_pixel = pixel; |
| 389 | 945 |
| 946 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
|
947 |
|
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3512
diff
changeset
|
948 /* It's not okay to crash if the user selects a screwy cursor. */ |
|
69152
f2147c1027b6
* xterm.h (x_catch_errors) Return value changed to void.
Chong Yidong <cyd@stupidchicken.com>
parents:
69065
diff
changeset
|
949 x_catch_errors (dpy); |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
950 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
951 if (!NILP (Vx_pointer_shape)) |
| 389 | 952 { |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
953 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
|
954 cursor = XCreateFontCursor (dpy, XINT (Vx_pointer_shape)); |
| 389 | 955 } |
| 956 else | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
957 cursor = XCreateFontCursor (dpy, XC_xterm); |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
958 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
|
959 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
960 if (!NILP (Vx_nontext_pointer_shape)) |
| 389 | 961 { |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
962 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
|
963 nontext_cursor |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
964 = XCreateFontCursor (dpy, XINT (Vx_nontext_pointer_shape)); |
| 389 | 965 } |
| 966 else | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
967 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
|
968 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
|
969 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
970 if (!NILP (Vx_hourglass_pointer_shape)) |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
971 { |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
972 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
|
973 hourglass_cursor |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
974 = 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
|
975 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
976 else |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
977 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
|
978 x_check_errors (dpy, "bad hourglass pointer cursor: %s"); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
979 |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
980 if (!NILP (Vx_mode_pointer_shape)) |
| 389 | 981 { |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
982 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
|
983 mode_cursor = XCreateFontCursor (dpy, XINT (Vx_mode_pointer_shape)); |
| 389 | 984 } |
| 985 else | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
986 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
|
987 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
|
988 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
989 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
|
990 { |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
991 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
|
992 hand_cursor |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
993 = 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
|
994 } |
|
e0938c42218c
(syms_of_xfns): Define Vx_cross_pointer_shape.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6610
diff
changeset
|
995 else |
|
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
996 hand_cursor = XCreateFontCursor (dpy, XC_hand2); |
| 389 | 997 |
|
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
998 if (!NILP (Vx_window_horizontal_drag_shape)) |
|
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
999 { |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1000 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
|
1001 horizontal_drag_cursor |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1002 = 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
|
1003 } |
|
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
1004 else |
|
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
1005 horizontal_drag_cursor |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1006 = 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
|
1007 |
|
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
|
1008 /* 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
|
1009 x_check_errors (dpy, "can't set cursor shape: %s"); |
|
69173
fdee8318ddc9
* xterm.h, xterm.c (x_uncatch_errors): Delete unneccessary
Chong Yidong <cyd@stupidchicken.com>
parents:
69152
diff
changeset
|
1010 x_uncatch_errors (); |
|
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
|
1011 |
| 389 | 1012 { |
| 1013 XColor fore_color, back_color; | |
| 1014 | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1015 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
|
1016 x_query_color (f, &fore_color); |
| 389 | 1017 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
|
1018 x_query_color (f, &back_color); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1019 |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1020 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
|
1021 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
|
1022 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
|
1023 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
|
1024 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
|
1025 XRecolorCursor (dpy, horizontal_drag_cursor, &fore_color, &back_color); |
| 389 | 1026 } |
| 1027 | |
|
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
|
1028 if (FRAME_X_WINDOW (f) != 0) |
|
103704
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
1029 XDefineCursor (dpy, FRAME_X_WINDOW (f), |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
1030 f->output_data.x->current_cursor = cursor); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
1031 |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
1032 if (FRAME_X_DISPLAY_INFO (f)->invisible_cursor == 0) |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
1033 FRAME_X_DISPLAY_INFO (f)->invisible_cursor = make_invisible_cursor (f); |
|
6a4e411bd83b
* xterm.h (struct x_display_info): Add invisible_cursor.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103674
diff
changeset
|
1034 |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1035 if (cursor != x->text_cursor |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1036 && x->text_cursor != 0) |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1037 XFreeCursor (dpy, 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 = cursor; |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1039 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1040 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
|
1041 && x->nontext_cursor != 0) |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1042 XFreeCursor (dpy, 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 = nontext_cursor; |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1044 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1045 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
|
1046 && x->hourglass_cursor != 0) |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1047 XFreeCursor (dpy, 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 = hourglass_cursor; |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1049 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1050 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
|
1051 && x->modeline_cursor != 0) |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1052 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
|
1053 x->modeline_cursor = mode_cursor; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1054 |
|
50236
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1055 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
|
1056 && x->hand_cursor != 0) |
|
156baddab173
Setup and use hand_cursor instead of cross_cursor.
Kim F. Storm <storm@cua.dk>
parents:
50099
diff
changeset
|
1057 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
|
1058 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
|
1059 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1060 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
|
1061 && x->horizontal_drag_cursor != 0) |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1062 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
|
1063 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
|
1064 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1065 XFlush (dpy); |
| 389 | 1066 UNBLOCK_INPUT; |
|
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1067 |
|
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1068 update_face_from_frame_parameter (f, Qmouse_color, arg); |
| 389 | 1069 } |
| 1070 | |
| 1071 void | |
| 771 | 1072 x_set_cursor_color (f, arg, oldval) |
| 1073 struct frame *f; | |
| 389 | 1074 Lisp_Object arg, oldval; |
| 1075 { | |
|
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1076 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
|
1077 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
|
1078 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
|
1079 |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1080 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
|
1081 { |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1082 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
|
1083 WHITE_PIX_DEFAULT (f)); |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1084 fore_pixel_allocated_p = 1; |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1085 } |
| 389 | 1086 else |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
1087 fore_pixel = FRAME_BACKGROUND_PIXEL (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1088 |
|
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1089 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
|
1090 pixel_allocated_p = 1; |
|
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1091 |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
1092 /* Make sure that the cursor color differs from the background color. */ |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
1093 if (pixel == FRAME_BACKGROUND_PIXEL (f)) |
| 389 | 1094 { |
|
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1095 if (pixel_allocated_p) |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1096 { |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1097 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
|
1098 pixel_allocated_p = 0; |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1099 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1100 |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1101 pixel = x->mouse_pixel; |
|
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1102 if (pixel == fore_pixel) |
|
28355
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1103 { |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1104 if (fore_pixel_allocated_p) |
|
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 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
|
1107 fore_pixel_allocated_p = 0; |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1108 } |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
1109 fore_pixel = FRAME_BACKGROUND_PIXEL (f); |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1110 } |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1111 } |
|
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 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
|
1114 if (!fore_pixel_allocated_p) |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1115 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
|
1116 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
|
1117 |
|
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1118 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
|
1119 if (!pixel_allocated_p) |
|
11d7a6fdad5f
(x_set_cursor_color): Get color reference counts right.
Gerd Moellmann <gerd@gnu.org>
parents:
28347
diff
changeset
|
1120 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
|
1121 x->cursor_pixel = pixel; |
|
21779
6aaa0268fe91
(x_set_foreground_color, x_set_background_color)
Richard M. Stallman <rms@gnu.org>
parents:
21555
diff
changeset
|
1122 |
|
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
|
1123 if (FRAME_X_WINDOW (f) != 0) |
| 389 | 1124 { |
| 1125 BLOCK_INPUT; | |
|
37762
ddf0a963805f
(x_set_foreground_color): Change frame's cursor_pixel
Gerd Moellmann <gerd@gnu.org>
parents:
37608
diff
changeset
|
1126 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
|
1127 XSetForeground (FRAME_X_DISPLAY (f), x->cursor_gc, fore_pixel); |
| 389 | 1128 UNBLOCK_INPUT; |
| 1129 | |
|
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
1130 if (FRAME_VISIBLE_P (f)) |
| 389 | 1131 { |
|
15999
0e148af7d4ec
(x_set_cursor_color): Use x_update_cursor.
Richard M. Stallman <rms@gnu.org>
parents:
15942
diff
changeset
|
1132 x_update_cursor (f, 0); |
|
0e148af7d4ec
(x_set_cursor_color): Use x_update_cursor.
Richard M. Stallman <rms@gnu.org>
parents:
15942
diff
changeset
|
1133 x_update_cursor (f, 1); |
| 389 | 1134 } |
| 1135 } | |
|
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1136 |
|
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1137 update_face_from_frame_parameter (f, Qcursor_color, arg); |
| 389 | 1138 } |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1139 |
|
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1140 /* 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
|
1141 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
|
1142 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
|
1143 |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1144 void |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1145 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
|
1146 struct frame *f; |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1147 int pix; |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1148 { |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1149 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
|
1150 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
|
1151 |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1152 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
|
1153 { |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1154 BLOCK_INPUT; |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1155 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
|
1156 (unsigned long)pix); |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1157 UNBLOCK_INPUT; |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1158 |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1159 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
|
1160 redraw_frame (f); |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1161 } |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1162 } |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1163 |
| 771 | 1164 /* Set the border-color of frame F to value described by ARG. |
| 389 | 1165 ARG can be a string naming a color. |
| 1166 The border-color is used for the border that is drawn by the X server. | |
| 1167 Note that this does not fully take effect if done before | |
| 771 | 1168 F has an x-window; it must be redone when the window is created. |
| 389 | 1169 |
| 1170 Note: this is done in two routines because of the way X10 works. | |
| 1171 | |
| 1172 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
|
1173 and so emacs' border colors may be overridden. */ |
| 389 | 1174 |
| 1175 void | |
| 771 | 1176 x_set_border_color (f, arg, oldval) |
| 1177 struct frame *f; | |
| 389 | 1178 Lisp_Object arg, oldval; |
| 1179 { | |
| 1180 int pix; | |
| 1181 | |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1182 CHECK_STRING (arg); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1183 pix = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f)); |
| 771 | 1184 x_set_border_pixel (f, pix); |
|
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1185 update_face_from_frame_parameter (f, Qborder_color, arg); |
| 389 | 1186 } |
| 1187 | |
|
28347
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1188 |
|
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1189 void |
|
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1190 x_set_cursor_type (f, arg, oldval) |
|
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1191 FRAME_PTR f; |
|
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1192 Lisp_Object arg, oldval; |
|
ce7dddf6dfb7
(x_specified_cursor_type): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28229
diff
changeset
|
1193 { |
|
47142
21cac7a2dcb9
(Vblink_cursor_alist): Removed.
Kim F. Storm <storm@cua.dk>
parents:
47086
diff
changeset
|
1194 set_frame_cursor_types (f, arg); |
|
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1195 |
|
43987
ea6530f23937
(x_set_cursor_type): Set cursor_type_changed,
Richard M. Stallman <rms@gnu.org>
parents:
43917
diff
changeset
|
1196 /* 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
|
1197 cursor_type_changed = 1; |
|
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1198 } |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1199 |
|
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
1200 void |
| 771 | 1201 x_set_icon_type (f, arg, oldval) |
| 1202 struct frame *f; | |
| 389 | 1203 Lisp_Object arg, oldval; |
| 1204 { | |
| 1205 int result; | |
| 1206 | |
|
9543
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1207 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
|
1208 { |
|
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 (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
|
1210 return; |
|
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1211 } |
|
3cf8aa53c4cf
(x_set_icon_type): If icon-type is a string, then use
Richard M. Stallman <rms@gnu.org>
parents:
9528
diff
changeset
|
1212 else if (!STRINGP (oldval) && EQ (oldval, Qnil) == EQ (arg, Qnil)) |
| 389 | 1213 return; |
| 1214 | |
| 1215 BLOCK_INPUT; | |
| 485 | 1216 if (NILP (arg)) |
| 12073 | 1217 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
|
1218 (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
|
1219 ? 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
|
1220 : f->name))); |
| 9563 | 1221 else |
| 1222 result = x_bitmap_icon (f, arg); | |
| 389 | 1223 |
| 1224 if (result) | |
| 1225 { | |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
1226 UNBLOCK_INPUT; |
|
9353
30659ed71a1b
(x_set_icon_type): Remove period from error message.
Richard M. Stallman <rms@gnu.org>
parents:
9329
diff
changeset
|
1227 error ("No icon window available"); |
| 389 | 1228 } |
| 1229 | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1230 XFlush (FRAME_X_DISPLAY (f)); |
| 389 | 1231 UNBLOCK_INPUT; |
| 1232 } | |
| 1233 | |
| 12073 | 1234 void |
| 1235 x_set_icon_name (f, arg, oldval) | |
| 1236 struct frame *f; | |
| 1237 Lisp_Object arg, oldval; | |
| 1238 { | |
| 1239 int result; | |
| 1240 | |
| 1241 if (STRINGP (arg)) | |
| 1242 { | |
| 1243 if (STRINGP (oldval) && EQ (Fstring_equal (oldval, arg), Qt)) | |
| 1244 return; | |
| 1245 } | |
|
71166
54189ea7ad2a
* xfns.c (x_set_icon_name): No-op if arg is non-nil and not a
Chong Yidong <cyd@stupidchicken.com>
parents:
69729
diff
changeset
|
1246 else if (!NILP (arg) || NILP (oldval)) |
| 12073 | 1247 return; |
| 1248 | |
|
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
1249 f->icon_name = arg; |
| 12073 | 1250 |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
1251 if (f->output_data.x->icon_bitmap != 0) |
| 12073 | 1252 return; |
| 1253 | |
| 1254 BLOCK_INPUT; | |
| 1255 | |
| 1256 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
|
1257 (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
|
1258 ? 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
|
1259 : !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
|
1260 ? f->title |
|
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
1261 : f->name))); |
| 12073 | 1262 |
| 1263 if (result) | |
| 1264 { | |
| 1265 UNBLOCK_INPUT; | |
| 1266 error ("No icon window available"); | |
| 1267 } | |
| 1268 | |
| 1269 XFlush (FRAME_X_DISPLAY (f)); | |
| 1270 UNBLOCK_INPUT; | |
| 1271 } | |
|
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1272 |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1273 |
|
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1274 void |
|
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1275 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
|
1276 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
|
1277 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
|
1278 { |
|
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1279 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
|
1280 #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
|
1281 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
|
1282 #endif |
|
2136
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1283 |
|
2880
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1284 /* 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
|
1285 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
|
1286 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
|
1287 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
|
1288 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
|
1289 return; |
|
9a78169e44df
* xfns.c (x_set_menu_bar_lines): Minibuffer-only frames can't have
Jim Blandy <jimb@redhat.com>
parents:
2842
diff
changeset
|
1290 |
|
9103
948e8acb6990
(x_set_frame_parameters, x_set_menu_bar_lines, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
9022
diff
changeset
|
1291 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
|
1292 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
|
1293 else |
|
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1294 nlines = 0; |
|
17ab6ed0f98b
(x_frame_parms): Add elts for visibility and menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
2067
diff
changeset
|
1295 |
|
17556
c0f8f4264f7a
(x_set_menu_bar_lines): Increment windows_or_buffers_changed.
Richard M. Stallman <rms@gnu.org>
parents:
17106
diff
changeset
|
1296 /* 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
|
1297 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
|
1298 |
| 49322 | 1299 #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
|
1300 FRAME_MENU_BAR_LINES (f) = 0; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1301 if (nlines) |
|
12832
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1302 { |
|
0d750e41c4f2
(x_set_menu_bar_lines) [USE_X_TOOLKIT]: When turning
Richard M. Stallman <rms@gnu.org>
parents:
12773
diff
changeset
|
1303 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
|
1304 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
|
1305 /* 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
|
1306 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
|
1307 } |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1308 else |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1309 { |
|
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
|
1310 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
|
1311 free_frame_menubar (f); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1312 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
|
1313 if (FRAME_X_P (f)) |
|
714433bead7f
(x_set_menu_bar_lines) [USE_X_TOOLKIT]:
Richard M. Stallman <rms@gnu.org>
parents:
13508
diff
changeset
|
1314 f->output_data.x->menubar_widget = 0; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1315 } |
| 49322 | 1316 #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
|
1317 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
|
1318 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
|
1319 #endif /* not USE_X_TOOLKIT */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1320 adjust_glyphs (f); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1321 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1322 |
|
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 /* 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
|
1325 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
|
1326 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
|
1327 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
|
1328 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
|
1329 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1330 void |
|
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1331 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
|
1332 struct frame *f; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1333 Lisp_Object value, oldval; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1334 { |
|
31930
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1335 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
|
1336 Lisp_Object root_window; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1337 |
|
35819
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1338 /* 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
|
1339 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
|
1340 return; |
|
74e2d9de2fc1
(x_set_tool_bar_lines): Do nothing If frame is
Gerd Moellmann <gerd@gnu.org>
parents:
35733
diff
changeset
|
1341 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1342 /* 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
|
1343 if (INTEGERP (value) && XINT (value) >= 0) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1344 nlines = XFASTINT (value); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1345 else |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1346 nlines = 0; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1347 |
| 49322 | 1348 #ifdef USE_GTK |
| 1349 FRAME_TOOL_BAR_LINES (f) = 0; | |
| 1350 if (nlines) | |
| 1351 { | |
| 1352 FRAME_EXTERNAL_TOOL_BAR (f) = 1; | |
| 1353 if (FRAME_X_P (f) && f->output_data.x->toolbar_widget == 0) | |
| 1354 /* Make sure next redisplay shows the tool bar. */ | |
| 1355 XWINDOW (FRAME_SELECTED_WINDOW (f))->update_mode_line = Qt; | |
| 1356 update_frame_tool_bar (f); | |
| 1357 } | |
| 1358 else | |
| 1359 { | |
| 1360 if (FRAME_EXTERNAL_TOOL_BAR (f)) | |
| 1361 free_frame_tool_bar (f); | |
| 1362 FRAME_EXTERNAL_TOOL_BAR (f) = 0; | |
| 1363 } | |
| 1364 | |
| 1365 return; | |
| 1366 #endif | |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1367 |
| 49322 | 1368 /* 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
|
1369 ++windows_or_buffers_changed; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1370 |
|
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1371 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
|
1372 |
|
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1373 /* 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
|
1374 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
|
1375 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
|
1376 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
|
1377 { |
|
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1378 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
|
1379 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
|
1380 } |
|
9c779861abff
(x_set_tool_bar_lines): Don't use more lines for the
Gerd Moellmann <gerd@gnu.org>
parents:
31902
diff
changeset
|
1381 |
|
25544
693ca9ba497a
Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
Gerd Moellmann <gerd@gnu.org>
parents:
25528
diff
changeset
|
1382 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
|
1383 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
|
1384 adjust_glyphs (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1385 |
|
31999
d862c73ea0d5
(x_set_tool_bar_lines): Clear frame when tool bar
Gerd Moellmann <gerd@gnu.org>
parents:
31930
diff
changeset
|
1386 /* 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
|
1387 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
|
1388 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
|
1389 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
|
1390 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
|
1391 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 (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
|
1393 { |
|
83100
4970ad4995f5
Eliminated updating_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83078
diff
changeset
|
1394 clear_frame (f); |
|
33601
1ee8ea329b7b
(x_set_tool_bar_lines): When clearing the frame, also
Gerd Moellmann <gerd@gnu.org>
parents:
33589
diff
changeset
|
1395 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
|
1396 } |
|
33747
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1397 |
|
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1398 /* 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
|
1399 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
|
1400 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
|
1401 if (delta < 0) |
|
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1402 { |
|
e0e2461a24fe
(x_set_tool_bar_lines): Clear internal border when
Gerd Moellmann <gerd@gnu.org>
parents:
33713
diff
changeset
|
1403 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
|
1404 int width = FRAME_PIXEL_WIDTH (f); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1405 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
|
1406 |
|
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
|
1407 /* 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
|
1408 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
|
1409 { |
|
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 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
|
1411 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
|
1412 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
|
1413 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
|
1414 } |
|
38625
0bfdfd449f4a
(x_set_tool_bar_lines): Clear the tool bar window's
Gerd Moellmann <gerd@gnu.org>
parents:
38575
diff
changeset
|
1415 |
|
0bfdfd449f4a
(x_set_tool_bar_lines): Clear the tool bar window's
Gerd Moellmann <gerd@gnu.org>
parents:
38575
diff
changeset
|
1416 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
|
1417 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
|
1418 } |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1419 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1420 |
|
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 /* 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
|
1423 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
|
1424 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
|
1425 the frame parameter. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1426 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1427 void |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1428 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
|
1429 struct frame *f; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1430 Lisp_Object value, oldval; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1431 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1432 unsigned long pixel; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1433 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1434 if (STRINGP (value)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1435 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
|
1436 else |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1437 pixel = -1; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1438 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1439 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
|
1440 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
|
1441 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1442 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
|
1443 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
|
1444 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1445 /* Remove all scroll bars because they have wrong colors. */ |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1446 if (FRAME_TERMINAL (f)->condemn_scroll_bars_hook) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1447 (*FRAME_TERMINAL (f)->condemn_scroll_bars_hook) (f); |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1448 if (FRAME_TERMINAL (f)->judge_scroll_bars_hook) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1449 (*FRAME_TERMINAL (f)->judge_scroll_bars_hook) (f); |
|
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1450 |
|
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1451 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
|
1452 redraw_frame (f); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1453 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1454 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1455 |
|
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 /* 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
|
1458 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
|
1459 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
|
1460 parameter. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1461 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1462 void |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1463 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
|
1464 struct frame *f; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1465 Lisp_Object value, oldval; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1466 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1467 unsigned long pixel; |
|
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 if (STRINGP (value)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1470 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
|
1471 else |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1472 pixel = -1; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1473 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1474 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
|
1475 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
|
1476 |
|
39619
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1477 #ifdef USE_TOOLKIT_SCROLL_BARS |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1478 /* Scrollbar shadow colors. */ |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1479 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
|
1480 { |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1481 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
|
1482 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
|
1483 } |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1484 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
|
1485 { |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1486 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
|
1487 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
|
1488 } |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1489 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
1490 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1491 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
|
1492 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
|
1493 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1494 /* Remove all scroll bars because they have wrong colors. */ |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1495 if (FRAME_TERMINAL (f)->condemn_scroll_bars_hook) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1496 (*FRAME_TERMINAL (f)->condemn_scroll_bars_hook) (f); |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1497 if (FRAME_TERMINAL (f)->judge_scroll_bars_hook) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
1498 (*FRAME_TERMINAL (f)->judge_scroll_bars_hook) (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1499 |
|
25593
9aecfcf3cb43
(x_set_foreground_color): Call
Gerd Moellmann <gerd@gnu.org>
parents:
25550
diff
changeset
|
1500 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
|
1501 redraw_frame (f); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1502 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1503 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1504 |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1505 |
| 30383 | 1506 /* 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
|
1507 XICCC (X Inter Client Communication Conventions). |
|
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1508 |
|
77849
f68ce6aa4bd1
(x_encode_text): Add GCPRO.
Richard M. Stallman <rms@gnu.org>
parents:
77848
diff
changeset
|
1509 This can call Lisp code, so callers must GCPRO. |
|
f68ce6aa4bd1
(x_encode_text): Add GCPRO.
Richard M. Stallman <rms@gnu.org>
parents:
77848
diff
changeset
|
1510 |
|
30351
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 |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1527 static unsigned char * |
|
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1528 x_encode_text (string, coding_system, selectionp, text_bytes, stringp, freep) |
|
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; |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1532 int *freep; |
|
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1533 { |
| 88395 | 1534 int result = string_xstring_p (string); |
|
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1535 struct coding_system coding; |
|
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1536 |
| 88395 | 1537 if (result == 0) |
|
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1538 { |
|
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1539 /* No multibyte character in OBJ. We need not encode it. */ |
| 89483 | 1540 *text_bytes = SBYTES (string); |
| 30354 | 1541 *stringp = 1; |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1542 *freep = 0; |
| 89483 | 1543 return SDATA (string); |
|
30351
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 |
|
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1546 setup_coding_system (coding_system, &coding); |
| 88395 | 1547 coding.mode |= (CODING_MODE_SAFE_ENCODING | CODING_MODE_LAST_BLOCK); |
|
33242
421e3db4e24e
(x_encode_text): Suppress producing escape sequences for composition.
Kenichi Handa <handa@m17n.org>
parents:
32606
diff
changeset
|
1548 /* We suppress producing escape sequences for composition. */ |
| 88395 | 1549 coding.common_flags &= ~CODING_ANNOTATION_MASK; |
| 89483 | 1550 coding.dst_bytes = SCHARS (string) * 2; |
|
88509
0ac97e7062f5
(x_encode_text): Allocate coding.destination here, and
Kenichi Handa <handa@m17n.org>
parents:
88395
diff
changeset
|
1551 coding.destination = (unsigned char *) xmalloc (coding.dst_bytes); |
| 88395 | 1552 encode_coding_object (&coding, string, 0, 0, |
| 89483 | 1553 SCHARS (string), SBYTES (string), Qnil); |
|
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1554 *text_bytes = coding.produced; |
| 88395 | 1555 *stringp = (result == 1 || !EQ (coding_system, Qcompound_text)); |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1556 *freep = 1; |
|
88509
0ac97e7062f5
(x_encode_text): Allocate coding.destination here, and
Kenichi Handa <handa@m17n.org>
parents:
88395
diff
changeset
|
1557 return coding.destination; |
|
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1558 } |
|
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1559 |
|
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
1560 |
|
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
|
1561 /* 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
|
1562 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
|
1563 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
|
1564 |
|
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1565 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
|
1566 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
|
1567 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
|
1568 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
|
1569 { |
|
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1570 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
|
1571 { |
|
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1572 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
|
1573 { |
|
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1574 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
|
1575 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
|
1576 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
|
1577 Lisp_Object coding_system; |
|
77854
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1578 #ifdef USE_GTK |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1579 Lisp_Object encoded_name; |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1580 struct gcpro gcpro1; |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1581 |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1582 /* As ENCODE_UTF_8 may cause GC and relocation of string data, |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1583 we use it before x_encode_text that may return string data. */ |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1584 GCPRO1 (name); |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1585 encoded_name = ENCODE_UTF_8 (name); |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1586 UNGCPRO; |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1587 #endif |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1588 |
|
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
|
1589 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
|
1590 /* 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
|
1591 |
|
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 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
|
1593 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
|
1594 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
|
1595 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
|
1596 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
|
1597 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
|
1598 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
|
1599 |
|
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 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
|
1601 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
|
1602 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
|
1603 current window manager supports it or not. */ |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1604 text.value = x_encode_text (name, coding_system, 0, &bytes, &stringp, |
|
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1605 &do_free_text_value); |
|
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
|
1606 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
|
1607 : 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
|
1608 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
|
1609 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
|
1610 |
|
71173
ac5b57ff4647
(x_set_name_internal): Set icon to `text', derived from name, when
John Paul Wallington <jpw@pobox.com>
parents:
71166
diff
changeset
|
1611 if (!STRINGP (f->icon_name)) |
|
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
|
1612 { |
|
fcda7ee97ef5
* xfns.c (x_set_name_internal): New function. Check if we shall call
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
56781
diff
changeset
|
1613 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
|
1614 } |
|
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 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
|
1616 { |
|
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 /* 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
|
1618 icon.value = x_encode_text (f->icon_name, coding_system, 0, |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1619 &bytes, &stringp, &do_free_icon_value); |
|
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
|
1620 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
|
1621 : 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
|
1622 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
|
1623 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
|
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 |
|
77854
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1626 #ifdef USE_GTK |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1627 gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1628 (char *) SDATA (encoded_name)); |
|
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1629 #else /* not USE_GTK */ |
|
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
|
1630 XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); |
|
77854
96c01b44f51d
(x_set_name_internal): Undo last change.
Chong Yidong <cyd@stupidchicken.com>
parents:
77849
diff
changeset
|
1631 #endif /* not USE_GTK */ |
|
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
|
1632 |
|
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 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
|
1634 |
|
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 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
|
1636 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
|
1637 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
|
1638 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
|
1639 } |
|
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 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
|
1641 } |
|
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 } |
|
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 |
| 4650 | 1644 /* 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
|
1645 x_id_name. |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1646 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1647 If EXPLICIT is non-zero, that indicates that lisp code is setting the |
| 4650 | 1648 name; if NAME is a string, set F's name to NAME and set |
| 1649 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
|
1650 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1651 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
|
1652 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
|
1653 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
|
1654 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1655 void |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1656 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
|
1657 struct frame *f; |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1658 Lisp_Object name; |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1659 int explicit; |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1660 { |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1661 /* 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
|
1662 Emacs redisplay code. */ |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1663 if (explicit) |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1664 { |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1665 /* 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
|
1666 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
|
1667 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
|
1668 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
|
1669 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1670 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
|
1671 } |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1672 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
|
1673 return; |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1674 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1675 /* 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
|
1676 if (NILP (name)) |
|
8090
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1677 { |
|
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1678 /* 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
|
1679 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
|
1680 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
|
1681 SDATA (f->name))) |
|
8090
bb03e344f07e
(x_set_frame_parameters): Call x_set_offset directly.
Richard M. Stallman <rms@gnu.org>
parents:
7989
diff
changeset
|
1682 return; |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
1683 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
|
1684 } |
| 833 | 1685 else |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1686 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
|
1687 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1688 /* 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
|
1689 if (! NILP (Fstring_equal (name, f->name))) |
| 727 | 1690 return; |
| 1691 | |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1692 f->name = name; |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1693 |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1694 /* 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
|
1695 the name parameter. */ |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1696 if (! NILP (f->title)) |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1697 name = f->title; |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1698 |
|
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
|
1699 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
|
1700 } |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1701 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1702 /* 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
|
1703 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
|
1704 redisplay code. */ |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1705 void |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1706 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
|
1707 FRAME_PTR f; |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1708 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
|
1709 { |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1710 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
|
1711 } |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1712 |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1713 /* 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
|
1714 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
|
1715 lisp code. */ |
|
1125
059624bf9bf0
Declare x_implicitly_set_name to be void.
Jim Blandy <jimb@redhat.com>
parents:
1096
diff
changeset
|
1716 void |
|
1018
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1717 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
|
1718 FRAME_PTR f; |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1719 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
|
1720 { |
|
5fd29acd3db7
* xfns.c (x_set_name): Take new argument EXPLICIT, instead of
Jim Blandy <jimb@redhat.com>
parents:
974
diff
changeset
|
1721 x_set_name (f, arg, 0); |
| 389 | 1722 } |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1723 |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1724 /* Change the title of frame F to NAME. |
|
79055
3d1946da128d
*** empty log message ***
Martin Rudalics <rudalics@gmx.at>
parents:
78260
diff
changeset
|
1725 If NAME is nil, use the frame name as the title. */ |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1726 |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1727 void |
|
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
1728 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
|
1729 struct frame *f; |
|
25528
b5dd1bafd001
Include math.h. Add extern declaration for atof in case
Gerd Moellmann <gerd@gnu.org>
parents:
25511
diff
changeset
|
1730 Lisp_Object name, old_name; |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1731 { |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1732 /* 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
|
1733 if (EQ (name, f->title)) |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1734 return; |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1735 |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1736 update_mode_lines = 1; |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1737 |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1738 f->title = name; |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1739 |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1740 if (NILP (name)) |
|
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1741 name = f->name; |
|
16732
f52c4fd47f03
(x_set_title): Check data type of NAME.
Richard M. Stallman <rms@gnu.org>
parents:
16682
diff
changeset
|
1742 else |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
1743 CHECK_STRING (name); |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1744 |
|
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
|
1745 x_set_name_internal (f, name); |
|
14482
479987ba2c8d
(x_frame_parms): Add "title" element.
Richard M. Stallman <rms@gnu.org>
parents:
14439
diff
changeset
|
1746 } |
|
9580
bcc9342cf633
(x_set_unsplittable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
9563
diff
changeset
|
1747 |
|
bcc9342cf633
(x_set_unsplittable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
9563
diff
changeset
|
1748 void |
|
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1749 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
|
1750 struct frame *f; |
|
8942
a43f3b56ed47
(x_set_scroll_bar_width): New function.
Karl Heuer <kwzh@gnu.org>
parents:
8845
diff
changeset
|
1751 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1752 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
|
1753 |
|
25511
9bc9d4d6c716
(x_set_scroll_bar_width): Change conditional compilation
Gerd Moellmann <gerd@gnu.org>
parents:
25464
diff
changeset
|
1754 #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
|
1755 /* 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
|
1756 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
|
1757 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
|
1758 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
|
1759 #else |
|
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1760 /* 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
|
1761 character width. */ |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1762 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
|
1763 |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1764 /* 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
|
1765 scroll bar. */ |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
1766 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
|
1767 #endif |
|
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
1768 } |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1769 |
| 389 | 1770 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1771 /* 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
|
1772 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
|
1773 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
|
1774 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
|
1775 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1776 static Lisp_Object |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1777 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
|
1778 foreground_p) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1779 struct frame *f; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1780 Lisp_Object alist; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1781 Lisp_Object prop; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1782 char *xprop; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1783 char *xclass; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1784 int foreground_p; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1785 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1786 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
|
1787 Lisp_Object tem; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1788 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1789 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
|
1790 if (EQ (tem, Qunbound)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1791 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1792 #ifdef USE_TOOLKIT_SCROLL_BARS |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1793 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1794 /* 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
|
1795 specified. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1796 tem = display_x_get_resource (dpyinfo, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1797 build_string (foreground_p |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1798 ? "foreground" |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1799 : "background"), |
|
81274
516508c377db
(x_default_scroll_bar_color_parameter):
Juanma Barranquero <lekktu@gmail.com>
parents:
77848
diff
changeset
|
1800 empty_unibyte_string, |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1801 build_string ("verticalScrollBar"), |
|
81274
516508c377db
(x_default_scroll_bar_color_parameter):
Juanma Barranquero <lekktu@gmail.com>
parents:
77848
diff
changeset
|
1802 empty_unibyte_string); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1803 if (!STRINGP (tem)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1804 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1805 /* 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
|
1806 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
|
1807 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
|
1808 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
|
1809 specified. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1810 tem = Qnil; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1811 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1812 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1813 #else /* not USE_TOOLKIT_SCROLL_BARS */ |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1814 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1815 tem = Qnil; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
1816 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1817 #endif /* not USE_TOOLKIT_SCROLL_BARS */ |
|
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 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1820 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
|
1821 return tem; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1822 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1823 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
1824 |
| 389 | 1825 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1826 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1827 #ifdef USE_X_TOOLKIT |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1828 |
|
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
|
1829 /* 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
|
1830 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
|
1831 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
|
1832 for example, but Xt doesn't). */ |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1833 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1834 static void |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1835 hack_wm_protocols (f, widget) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1836 FRAME_PTR f; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1837 Widget widget; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1838 { |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1839 Display *dpy = XtDisplay (widget); |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1840 Window w = XtWindow (widget); |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1841 int need_delete = 1; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1842 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
|
1843 int need_save = 1; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1844 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1845 BLOCK_INPUT; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1846 { |
|
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1847 Atom type; |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1848 unsigned char *catoms; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1849 int format = 0; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1850 unsigned long nitems = 0; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1851 unsigned long bytes_after; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1852 |
|
11882
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1853 if ((XGetWindowProperty (dpy, w, |
|
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1854 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
|
1855 (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
|
1856 &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
|
1857 &catoms) |
|
11882
8b3575269610
(hack_wm_protocols): Cast args of XGetWindowProperty.
Karl Heuer <kwzh@gnu.org>
parents:
11774
diff
changeset
|
1858 == Success) |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1859 && 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
|
1860 { |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1861 Atom *atoms = (Atom *) catoms; |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1862 while (nitems > 0) |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1863 { |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1864 nitems--; |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1865 if (atoms[nitems] |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1866 == 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
|
1867 need_delete = 0; |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1868 else if (atoms[nitems] |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1869 == 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
|
1870 need_focus = 0; |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1871 else if (atoms[nitems] |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1872 == 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
|
1873 need_save = 0; |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1874 } |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1875 } |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1876 if (catoms) |
|
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
1877 XFree (catoms); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1878 } |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1879 { |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1880 Atom props [10]; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1881 int count = 0; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1882 if (need_delete) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1883 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
|
1884 if (need_focus) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1885 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
|
1886 if (need_save) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1887 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
|
1888 if (count) |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
1889 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
|
1890 XA_ATOM, 32, PropModeAppend, |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1891 (unsigned char *) props, count); |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1892 } |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1893 UNBLOCK_INPUT; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1894 } |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
1895 #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
|
1896 |
|
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
1897 |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1898 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1899 /* Support routines for XIC (X Input Context). */ |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1900 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1901 #ifdef HAVE_X_I18N |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1902 |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
1903 static XFontSet xic_create_xfontset P_ ((struct frame *)); |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1904 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
|
1905 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1906 |
|
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
1907 /* Supported XIM styles, ordered by preference. */ |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1908 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1909 static XIMStyle supported_xim_styles[] = |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1910 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1911 XIMPreeditPosition | XIMStatusArea, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1912 XIMPreeditPosition | XIMStatusNothing, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1913 XIMPreeditPosition | XIMStatusNone, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1914 XIMPreeditNothing | XIMStatusArea, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1915 XIMPreeditNothing | XIMStatusNothing, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1916 XIMPreeditNothing | XIMStatusNone, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1917 XIMPreeditNone | XIMStatusArea, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1918 XIMPreeditNone | XIMStatusNothing, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1919 XIMPreeditNone | XIMStatusNone, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1920 0, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1921 }; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1922 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
1923 |
|
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
1924 /* 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
|
1925 |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1926 char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*"; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1927 |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1928 /* 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
|
1929 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
|
1930 char * |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1931 xic_create_fontsetname (base_fontname, motif) |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1932 char *base_fontname; |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1933 Bool motif; |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1934 { |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1935 const char *sep = motif ? ";" : ","; |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1936 char *fontsetname; |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1937 |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1938 /* 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
|
1939 if (xic_defaut_fontset == base_fontname) |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1940 { /* 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
|
1941 int len = strlen (base_fontname) + 2; |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1942 fontsetname = xmalloc (len); |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1943 bzero (fontsetname, len); |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1944 strcpy (fontsetname, base_fontname); |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1945 } |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1946 else |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1947 { |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1948 /* 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
|
1949 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
|
1950 - the base font. |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1951 - 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
|
1952 - 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
|
1953 char *p = base_fontname; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1954 int i; |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1955 |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1956 for (i = 0; *p; p++) |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1957 if (*p == '-') i++; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1958 if (i != 14) |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1959 { /* 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
|
1960 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
|
1961 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
|
1962 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
|
1963 fontsetname = xmalloc (len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1964 bzero (fontsetname, len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1965 strcpy (fontsetname, base_fontname); |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
1966 strcat (fontsetname, sep); |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1967 strcat (fontsetname, xic_defaut_fontset); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1968 } |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1969 else |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1970 { |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1971 int len; |
|
73448
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1972 char *p1 = NULL, *p2 = NULL, *p3 = NULL; |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1973 char *font_allcs = NULL; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1974 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
|
1975 char *font_all = NULL; |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1976 char *allcs = "*-*-*-*-*-*-*"; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1977 char *allfamilies = "-*-*-"; |
|
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
1978 char *all = "*-*-*-*-"; |
|
73448
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1979 char *base; |
|
65459
41f88837ca5b
(x_encode_text): Declare static. Add FREEP arg.
Kim F. Storm <storm@cua.dk>
parents:
64770
diff
changeset
|
1980 |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1981 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
|
1982 { |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1983 if (*p == '-') |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1984 { |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1985 i++; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1986 if (i == 3) |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1987 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
|
1988 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
|
1989 p2 = p + 1; |
|
73448
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1990 else if (i == 6) |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1991 p3 = p + 1; |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1992 } |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
1993 } |
|
73448
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1994 /* If base_fontname specifies ADSTYLE, make it a |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1995 wildcard. */ |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1996 if (*p3 != '*') |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1997 { |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1998 int diff = (p2 - p3) - 2; |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
1999 |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2000 base = alloca (strlen (base_fontname) + 1); |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2001 bcopy (base_fontname, base, p3 - base_fontname); |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2002 base[p3 - base_fontname] = '*'; |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2003 base[(p3 - base_fontname) + 1] = '-'; |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2004 strcpy (base + (p3 - base_fontname) + 2, p2); |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2005 p = base + (p - base_fontname) - diff; |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2006 p1 = base + (p1 - base_fontname); |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2007 p2 = base + (p2 - base_fontname) - diff; |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2008 base_fontname = base; |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2009 } |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2010 |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2011 /* Build the font spec that matches all charsets. */ |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2012 len = p - base_fontname + strlen (allcs) + 1; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2013 font_allcs = (char *) alloca (len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2014 bzero (font_allcs, len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2015 bcopy (base_fontname, font_allcs, p - base_fontname); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2016 strcat (font_allcs, allcs); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2017 |
|
73448
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2018 /* Build the font spec that matches all families and |
|
1fd4b3c12646
(xic_create_fontsetname): If ADSTYLE field is not a wild
Kenichi Handa <handa@m17n.org>
parents:
73045
diff
changeset
|
2019 add-styles. */ |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2020 len = p - p1 + strlen (allcs) + strlen (allfamilies) + 1; |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2021 font_allfamilies = (char *) alloca (len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2022 bzero (font_allfamilies, len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2023 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
|
2024 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
|
2025 strcat (font_allfamilies, allcs); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2026 |
|
60695
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2027 /* 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
|
2028 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
|
2029 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
|
2030 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
|
2031 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
|
2032 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
|
2033 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
|
2034 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
|
2035 |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2036 /* Build the actual font set name. */ |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2037 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
|
2038 + strlen (font_allfamilies) + strlen (font_all) + 5; |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2039 fontsetname = xmalloc (len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2040 bzero (fontsetname, len); |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2041 strcpy (fontsetname, base_fontname); |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2042 strcat (fontsetname, sep); |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2043 strcat (fontsetname, font_allcs); |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2044 strcat (fontsetname, sep); |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2045 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
|
2046 strcat (fontsetname, sep); |
|
d8c3512bc427
(xic_create_fontsetname): Add a final catch-all font pattern.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60668
diff
changeset
|
2047 strcat (fontsetname, font_all); |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2048 } |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2049 } |
|
60668
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2050 if (motif) |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2051 strcat (fontsetname, ":"); |
|
34f4b9f0b40d
(xic_create_fontsetname): Add `motif' argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60582
diff
changeset
|
2052 return fontsetname; |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2053 } |
|
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2054 |
| 90724 | 2055 #ifdef DEBUG_XIC_FONTSET |
| 2056 static void | |
| 2057 print_fontset_result (xfs, name, missing_list, missing_count) | |
| 2058 XFontSet xfs; | |
| 2059 char *name; | |
| 2060 char **missing_list; | |
| 2061 int missing_count; | |
| 2062 { | |
| 2063 if (xfs) | |
| 2064 fprintf (stderr, "XIC Fontset created: %s\n", name); | |
| 2065 else | |
| 2066 { | |
| 2067 fprintf (stderr, "XIC Fontset failed: %s\n", name); | |
| 2068 while (missing_count-- > 0) | |
| 2069 { | |
| 2070 fprintf (stderr, " missing: %s\n", *missing_list); | |
| 2071 missing_list++; | |
| 2072 } | |
| 2073 } | |
| 2074 | |
| 2075 } | |
| 2076 #endif | |
| 2077 | |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2078 static XFontSet |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2079 xic_create_xfontset (f) |
|
90693
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2080 struct frame *f; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2081 { |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2082 XFontSet xfs = NULL; |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2083 struct font *font = FRAME_FONT (f); |
|
90693
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2084 int pixel_size = font->pixel_size; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2085 Lisp_Object rest, frame; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2086 |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2087 /* See if there is another frame already using same fontset. */ |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2088 FOR_EACH_FRAME (rest, frame) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2089 { |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2090 struct frame *cf = XFRAME (frame); |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2091 |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2092 if (cf != f && FRAME_LIVE_P (f) && FRAME_X_P (cf) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2093 && FRAME_X_DISPLAY_INFO (cf) == FRAME_X_DISPLAY_INFO (f) |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2094 && FRAME_FONT (f) |
|
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2095 && FRAME_FONT (f)->pixel_size == pixel_size) |
|
90693
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2096 { |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2097 xfs = FRAME_XIC_FONTSET (cf); |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2098 break; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2099 } |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2100 } |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2101 |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2102 if (! xfs) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2103 { |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2104 char buf[256]; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2105 char **missing_list; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2106 int missing_count; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2107 char *def_string; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2108 char *xlfd_format = "-*-*-medium-r-normal--%d-*-*-*-*-*"; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2109 |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2110 sprintf (buf, xlfd_format, pixel_size); |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2111 missing_list = NULL; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2112 xfs = XCreateFontSet (FRAME_X_DISPLAY (f), buf, |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2113 &missing_list, &missing_count, &def_string); |
|
90719
3bba05d0a63c
(xic_create_xfontset2): Add debug code.
Kenichi Handa <handa@m17n.org>
parents:
90693
diff
changeset
|
2114 #ifdef DEBUG_XIC_FONTSET |
| 90721 | 2115 print_fontset_result (xfs, buf, missing_list, missing_count); |
|
90719
3bba05d0a63c
(xic_create_xfontset2): Add debug code.
Kenichi Handa <handa@m17n.org>
parents:
90693
diff
changeset
|
2116 #endif |
|
90693
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2117 if (missing_list) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2118 XFreeStringList (missing_list); |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2119 if (! xfs) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2120 { |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2121 /* List of pixel sizes most likely available. Find one that |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2122 is closest to pixel_size. */ |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2123 int sizes[] = {0, 8, 10, 11, 12, 14, 17, 18, 20, 24, 26, 34, 0}; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2124 int *smaller, *larger; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2125 |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2126 for (smaller = sizes; smaller[1]; smaller++) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2127 if (smaller[1] >= pixel_size) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2128 break; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2129 larger = smaller + 1; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2130 if (*larger == pixel_size) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2131 larger++; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2132 while (*smaller || *larger) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2133 { |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2134 int this_size; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2135 |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2136 if (! *larger) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2137 this_size = *smaller--; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2138 else if (! *smaller) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2139 this_size = *larger++; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2140 else if (pixel_size - *smaller < *larger - pixel_size) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2141 this_size = *smaller--; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2142 else |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2143 this_size = *larger++; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2144 sprintf (buf, xlfd_format, this_size); |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2145 missing_list = NULL; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2146 xfs = XCreateFontSet (FRAME_X_DISPLAY (f), buf, |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2147 &missing_list, &missing_count, &def_string); |
|
90719
3bba05d0a63c
(xic_create_xfontset2): Add debug code.
Kenichi Handa <handa@m17n.org>
parents:
90693
diff
changeset
|
2148 #ifdef DEBUG_XIC_FONTSET |
| 90721 | 2149 print_fontset_result (xfs, buf, missing_list, missing_count); |
|
90719
3bba05d0a63c
(xic_create_xfontset2): Add debug code.
Kenichi Handa <handa@m17n.org>
parents:
90693
diff
changeset
|
2150 #endif |
|
90693
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2151 if (missing_list) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2152 XFreeStringList (missing_list); |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2153 if (xfs) |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2154 break; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2155 } |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2156 } |
| 90724 | 2157 if (! xfs) |
| 2158 { | |
| 2159 char *last_resort = "-*-*-*-r-normal--*-*-*-*-*-*"; | |
| 2160 | |
| 2161 missing_list = NULL; | |
| 2162 xfs = XCreateFontSet (FRAME_X_DISPLAY (f), last_resort, | |
| 2163 &missing_list, &missing_count, &def_string); | |
| 2164 #ifdef DEBUG_XIC_FONTSET | |
| 2165 print_fontset_result (xfs, last_resort, missing_list, missing_count); | |
| 2166 #endif | |
| 2167 if (missing_list) | |
| 2168 XFreeStringList (missing_list); | |
| 2169 } | |
| 2170 | |
|
90693
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2171 } |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2172 |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2173 return xfs; |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2174 } |
|
42871c3ee387
(xic_create_xfontset2) [USE_FONT_BACKEND]: New function.
Kenichi Handa <handa@m17n.org>
parents:
90662
diff
changeset
|
2175 |
|
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2176 /* 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
|
2177 |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2178 void |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2179 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
|
2180 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
|
2181 { |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2182 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
|
2183 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
|
2184 |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2185 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
|
2186 return; |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2187 |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2188 /* 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
|
2189 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
|
2190 { |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2191 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
|
2192 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
|
2193 && 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
|
2194 && 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
|
2195 { |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2196 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
|
2197 break; |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2198 } |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2199 } |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2200 |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2201 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
|
2202 /* 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
|
2203 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
|
2204 |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2205 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
|
2206 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
|
2207 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
|
2208 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
|
2209 } |
|
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2210 |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2211 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2212 /* 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
|
2213 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
|
2214 input method XIM. */ |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2215 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2216 static XIMStyle |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2217 best_xim_style (user, xim) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2218 XIMStyles *user; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2219 XIMStyles *xim; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2220 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2221 int i, j; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2222 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2223 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
|
2224 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
|
2225 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
|
2226 return user->supported_styles[i]; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2227 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2228 /* Return the default style. */ |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2229 return XIMPreeditNothing | XIMStatusNothing; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2230 } |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2231 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2232 /* Create XIC for frame F. */ |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2233 |
| 35592 | 2234 static XIMStyle xic_style; |
| 2235 | |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2236 void |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2237 create_frame_xic (f) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2238 struct frame *f; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2239 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2240 XIM xim; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2241 XIC xic = NULL; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2242 XFontSet xfs = NULL; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2243 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2244 if (FRAME_XIC (f)) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2245 return; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2246 |
|
60582
c2a74bfb2e79
(xic_defaut_fontset): New constant.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60555
diff
changeset
|
2247 /* Create X fontset. */ |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2248 xfs = xic_create_xfontset (f); |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2249 xim = FRAME_X_XIM (f); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2250 if (xim) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2251 { |
|
27659
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2252 XRectangle s_area; |
|
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2253 XPoint spot; |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2254 XVaNestedList preedit_attr; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2255 XVaNestedList status_attr; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2256 |
|
27659
4137c807296b
(create_frame_xic): Fix initialization of automatic aggregates for pcc.
Dave Love <fx@gnu.org>
parents:
27502
diff
changeset
|
2257 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
|
2258 spot.x = 0; spot.y = 1; |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2259 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2260 /* Determine XIC style. */ |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2261 if (xic_style == 0) |
|
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 XIMStyles supported_list; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2264 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
|
2265 / sizeof supported_xim_styles[0]); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2266 supported_list.supported_styles = supported_xim_styles; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2267 xic_style = best_xim_style (&supported_list, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2268 FRAME_X_XIM_STYLES (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 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2271 preedit_attr = XVaCreateNestedList (0, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2272 XNFontSet, xfs, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2273 XNForeground, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2274 FRAME_FOREGROUND_PIXEL (f), |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2275 XNBackground, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2276 FRAME_BACKGROUND_PIXEL (f), |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2277 (xic_style & XIMPreeditPosition |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2278 ? XNSpotLocation |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2279 : NULL), |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2280 &spot, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2281 NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2282 status_attr = XVaCreateNestedList (0, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2283 XNArea, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2284 &s_area, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2285 XNFontSet, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2286 xfs, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2287 XNForeground, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2288 FRAME_FOREGROUND_PIXEL (f), |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2289 XNBackground, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2290 FRAME_BACKGROUND_PIXEL (f), |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2291 NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2292 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2293 xic = XCreateIC (xim, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2294 XNInputStyle, xic_style, |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2295 XNClientWindow, FRAME_X_WINDOW (f), |
|
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2296 XNFocusWindow, FRAME_X_WINDOW (f), |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2297 XNStatusAttributes, status_attr, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2298 XNPreeditAttributes, preedit_attr, |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2299 NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2300 XFree (preedit_attr); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2301 XFree (status_attr); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2302 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2303 |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2304 FRAME_XIC (f) = xic; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2305 FRAME_XIC_STYLE (f) = xic_style; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2306 FRAME_XIC_FONTSET (f) = xfs; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2307 } |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2308 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2309 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2310 /* 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
|
2311 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2312 void |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2313 free_frame_xic (f) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2314 struct frame *f; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2315 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2316 if (FRAME_XIC (f) == NULL) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2317 return; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2318 |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2319 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
|
2320 xic_free_xfontset (f); |
|
27502
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 FRAME_XIC (f) = NULL; |
|
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 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2325 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2326 /* 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
|
2327 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
|
2328 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2329 void |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2330 xic_set_preeditarea (w, x, y) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2331 struct window *w; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2332 int x, y; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2333 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2334 struct frame *f = XFRAME (w->frame); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2335 XVaNestedList attr; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2336 XPoint spot; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2337 |
|
52059
4b5692f6703a
(xic_set_preeditarea): Add the left fringe width to spot.x.
Kenichi Handa <handa@m17n.org>
parents:
52015
diff
changeset
|
2338 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
|
2339 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
|
2340 attr = XVaCreateNestedList (0, XNSpotLocation, &spot, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2341 XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2342 XFree (attr); |
|
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 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2345 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2346 /* 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
|
2347 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2348 void |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2349 xic_set_statusarea (f) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2350 struct frame *f; |
|
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 XIC xic = FRAME_XIC (f); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2353 XVaNestedList attr; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2354 XRectangle area; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2355 XRectangle *needed; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2356 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2357 /* 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
|
2358 status area, use its current size. */ |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2359 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
|
2360 attr = XVaCreateNestedList (0, XNAreaNeeded, &area, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2361 XSetICValues (xic, XNStatusAttributes, attr, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2362 XFree (attr); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2363 |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2364 attr = XVaCreateNestedList (0, XNAreaNeeded, &needed, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2365 XGetICValues (xic, XNStatusAttributes, attr, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2366 XFree (attr); |
|
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 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
|
2369 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2370 attr = XVaCreateNestedList (0, XNArea, &needed, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2371 XGetICValues (xic, XNStatusAttributes, attr, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2372 XFree (attr); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2373 } |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2374 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2375 area.width = needed->width; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2376 area.height = needed->height; |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2377 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
|
2378 area.y = (FRAME_PIXEL_HEIGHT (f) - area.height |
| 49322 | 2379 - FRAME_MENUBAR_HEIGHT (f) |
| 2380 - FRAME_TOOLBAR_HEIGHT (f) | |
| 2381 - FRAME_INTERNAL_BORDER_WIDTH (f)); | |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2382 XFree (needed); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2383 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2384 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
|
2385 XSetICValues (xic, XNStatusAttributes, attr, NULL); |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2386 XFree (attr); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2387 } |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2388 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2389 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2390 /* 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
|
2391 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
|
2392 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2393 void |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2394 xic_set_xfontset (f, base_fontname) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2395 struct frame *f; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2396 char *base_fontname; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2397 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2398 XVaNestedList attr; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2399 XFontSet xfs; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2400 |
|
57633
ead4249849ac
* xterm.h (x_output): New member `xic_base_fontname'.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57432
diff
changeset
|
2401 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
|
2402 |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2403 xfs = xic_create_xfontset (f); |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2404 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2405 attr = XVaCreateNestedList (0, XNFontSet, xfs, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2406 if (FRAME_XIC_STYLE (f) & XIMPreeditPosition) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2407 XSetICValues (FRAME_XIC (f), XNPreeditAttributes, attr, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2408 if (FRAME_XIC_STYLE (f) & XIMStatusArea) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2409 XSetICValues (FRAME_XIC (f), XNStatusAttributes, attr, NULL); |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2410 XFree (attr); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2411 |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2412 FRAME_XIC_FONTSET (f) = xfs; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2413 } |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2414 |
|
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
2415 #endif /* HAVE_X_I18N */ |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2416 |
|
27157
3dafddaefc2c
(x_create_im): New function to set IM and IC of a frame.
Gerd Moellmann <gerd@gnu.org>
parents:
27153
diff
changeset
|
2417 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2418 |
|
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2419 #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
|
2420 |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2421 /* 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
|
2422 |
| 389 | 2423 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
|
2424 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
|
2425 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
|
2426 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
|
2427 int minibuffer_only; |
| 389 | 2428 { |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2429 XClassHint class_hints; |
|
6059
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2430 XSetWindowAttributes attributes; |
|
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2431 unsigned long attribute_mask; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2432 Widget shell_widget; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2433 Widget pane_widget; |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2434 Widget frame_widget; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2435 Arg al [25]; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2436 int ac; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2437 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2438 BLOCK_INPUT; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2439 |
|
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2440 /* 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
|
2441 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
|
2442 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
|
2443 |
|
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2444 Elsewhere we specify the window name for the window manager. */ |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2445 |
|
11496
db02849ee365
(x_window): Use (or reuse) frame's namebuf instead of a
Karl Heuer <kwzh@gnu.org>
parents:
11483
diff
changeset
|
2446 { |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2447 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
|
2448 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
|
2449 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
|
2450 } |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2451 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2452 ac = 0; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2453 XtSetArg (al[ac], XtNallowShellResize, 1); ac++; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2454 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
|
2455 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
|
2456 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
|
2457 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
|
2458 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
|
2459 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
|
2460 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
|
2461 applicationShellWidgetClass, |
|
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
2462 FRAME_X_DISPLAY (f), al, ac); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2463 |
|
12667
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->widget = shell_widget; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2465 /* maybe_set_screen_title_format (shell_widget); */ |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2466 |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2467 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
|
2468 (widget_value *) NULL, |
|
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2469 shell_widget, False, |
|
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2470 (lw_callback) NULL, |
|
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2471 (lw_callback) NULL, |
|
27343
43230463dfcf
(x_window): Call lw_create_widget with new parameter
Gerd Moellmann <gerd@gnu.org>
parents:
27157
diff
changeset
|
2472 (lw_callback) NULL, |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2473 (lw_callback) NULL); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2474 |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2475 ac = 0; |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
2476 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
|
2477 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
|
2478 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
|
2479 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
|
2480 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
|
2481 |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2482 /* 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
|
2483 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
|
2484 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2485 ac = 0; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2486 XtSetArg (al[ac], XtNmappedWhenManaged, 0); ac++; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2487 XtSetArg (al[ac], XtNshowGrip, 0); ac++; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2488 XtSetArg (al[ac], XtNallowResize, 1); ac++; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2489 XtSetArg (al[ac], XtNresizeToPreferred, 1); ac++; |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2490 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
|
2491 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
|
2492 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
|
2493 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
|
2494 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
|
2495 al, ac); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2496 |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2497 f->output_data.x->edit_widget = frame_widget; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2498 |
|
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2499 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
|
2500 |
|
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2501 /* 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
|
2502 { |
|
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2503 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
|
2504 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
|
2505 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
|
2506 int ac = 0; |
|
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2507 int extra_borders = 0; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2508 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
|
2509 = (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
|
2510 ? (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
|
2511 + 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
|
2512 : 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
|
2513 |
|
15942
ff30ec8aab54
(x_window): Don't add ibw to menubar_size.
Richard M. Stallman <rms@gnu.org>
parents:
15891
diff
changeset
|
2514 #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
|
2515 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
|
2516 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
|
2517 { |
|
9808
4c43c9dbe130
(x_window): Make ibw 0 by default.
Richard M. Stallman <rms@gnu.org>
parents:
9742
diff
changeset
|
2518 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
|
2519 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
|
2520 menubar_size += ibw; |
|
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2521 } |
|
15942
ff30ec8aab54
(x_window): Don't add ibw to menubar_size.
Richard M. Stallman <rms@gnu.org>
parents:
15891
diff
changeset
|
2522 #endif |
|
7969
7f15f77cb644
(x_window): Take account of pane widget internal border width.
Richard M. Stallman <rms@gnu.org>
parents:
7946
diff
changeset
|
2523 |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2524 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
|
2525 |
|
16305
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2526 #ifndef USE_LUCID |
|
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2527 /* 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
|
2528 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
|
2529 Both conclusions reached experimentally. -- rms. */ |
|
16305
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2530 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
|
2531 &extra_borders, NULL); |
|
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2532 extra_borders *= 2; |
|
00e57c8adaba
(x_window): With Motif, double extra_borders.
Richard M. Stallman <rms@gnu.org>
parents:
16302
diff
changeset
|
2533 #endif |
|
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2534 |
|
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2535 /* 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
|
2536 and specify it. |
|
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2537 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
|
2538 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
|
2539 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
|
2540 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2541 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
|
2542 int xneg = window_prompting & XNegative; |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2543 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
|
2544 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
|
2545 if (xneg) |
|
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2546 left = -left; |
|
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2547 if (yneg) |
|
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2548 top = -top; |
|
11893
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2549 |
|
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2550 if (window_prompting & USPosition) |
|
12190
e0abe30899a9
[USE_X_TOOLKIT] (x_window): If using Motif,
Karl Heuer <kwzh@gnu.org>
parents:
12111
diff
changeset
|
2551 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
|
2552 FRAME_PIXEL_WIDTH (f) + extra_borders, |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2553 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
|
2554 (xneg ? '-' : '+'), left, |
|
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2555 (yneg ? '-' : '+'), top); |
|
1f70ffad3d6d
[USE_X_TOOLKIT] (x_window): Pass position to toolkit
Karl Heuer <kwzh@gnu.org>
parents:
11882
diff
changeset
|
2556 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
|
2557 { |
|
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
|
2558 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
|
2559 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
|
2560 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
|
2561 |
|
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
|
2562 /* 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
|
2563 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
|
2564 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
|
2565 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
|
2566 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
|
2567 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
|
2568 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
|
2569 } |
|
11707
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2570 } |
|
b0cb8129be58
[USE_X_TOOLKIT] (x_window): Always pass position in geometry.
Richard M. Stallman <rms@gnu.org>
parents:
11611
diff
changeset
|
2571 |
|
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
|
2572 len = strlen (shell_position) + 1; |
| 17579 | 2573 /* We don't free this because we don't know whether |
| 2574 it is safe to free it while the frame exists. | |
| 2575 It isn't worth the trouble of arranging to free it | |
| 2576 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
|
2577 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
|
2578 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
|
2579 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
|
2580 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
|
2581 } |
|
bb11213734d6
(x_window) [USE_X_TOOLKIT]: New args window_prompting and minibuffer_only.
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6523
diff
changeset
|
2582 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2583 XtManageChild (pane_widget); |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2584 XtRealizeWidget (shell_widget); |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2585 |
|
91633
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
2586 if (FRAME_X_EMBEDDED_P (f)) |
|
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
2587 XReparentWindow (FRAME_X_DISPLAY (f), XtWindow (shell_widget), |
|
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
2588 f->output_data.x->parent_desc, 0, 0); |
|
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
2589 |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2590 FRAME_X_WINDOW (f) = XtWindow (frame_widget); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2591 |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2592 validate_x_resource_name (); |
|
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2593 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2594 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
|
2595 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
|
2596 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
|
2597 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2598 #ifdef HAVE_X_I18N |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2599 FRAME_XIC (f) = NULL; |
|
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2600 if (use_xim) |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2601 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
|
2602 #endif |
|
13227
d8af44485b3c
(x_window, both versions): Add HAVE_X_I18N support.
Richard M. Stallman <rms@gnu.org>
parents:
13083
diff
changeset
|
2603 |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2604 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
|
2605 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
|
2606 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
|
2607 &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
|
2608 |
|
9703
85ac0e4030d4
(x_window): Pass new arg f to hack_wm_protocols.
Richard M. Stallman <rms@gnu.org>
parents:
9690
diff
changeset
|
2609 hack_wm_protocols (f, shell_widget); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2610 |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2611 #ifdef HACK_EDITRES |
|
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2612 XtAddEventHandler (shell_widget, 0, True, _XEditResCheckMessages, 0); |
|
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2613 #endif |
|
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2614 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2615 /* 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
|
2616 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
|
2617 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
|
2618 */ |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2619 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
|
2620 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
|
2621 XA_ATOM, 32, PropModeAppend, |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2622 (unsigned char*) NULL, 0); |
|
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2623 |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2624 /* 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
|
2625 attributes.event_mask = STANDARD_EVENT_SET; |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2626 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2627 #ifdef HAVE_X_I18N |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2628 if (FRAME_XIC (f)) |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2629 { |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2630 /* XIM server might require some X events. */ |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2631 unsigned long fevent = NoEventMask; |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2632 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
|
2633 attributes.event_mask |= fevent; |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2634 } |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2635 #endif /* HAVE_X_I18N */ |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2636 |
|
6059
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2637 attribute_mask = CWEventMask; |
|
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2638 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
|
2639 attribute_mask, &attributes); |
|
0021cbdc591b
(x_window): Call XChangeWindowAttributes with the standard
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
6011
diff
changeset
|
2640 |
|
9231
eeb35369e536
(HACK_EDITRES): Declare if using X11R5.
Paul Reilly <pmr@pajato.com>
parents:
9182
diff
changeset
|
2641 XtMapWidget (frame_widget); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2642 |
|
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2643 /* 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
|
2644 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
|
2645 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
|
2646 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
|
2647 { |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2648 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
|
2649 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
|
2650 |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2651 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
|
2652 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
|
2653 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
|
2654 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
|
2655 } |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2656 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2657 XDefineCursor (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
| 103705 | 2658 f->output_data.x->current_cursor |
| 2659 = 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
|
2660 |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2661 UNBLOCK_INPUT; |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2662 |
|
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
2663 /* 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
|
2664 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
|
2665 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
|
2666 } |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2667 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2668 #else /* not USE_X_TOOLKIT */ |
| 49322 | 2669 #ifdef USE_GTK |
| 2670 void | |
| 2671 x_window (f) | |
| 2672 FRAME_PTR f; | |
| 2673 { | |
| 2674 if (! xg_create_frame_widgets (f)) | |
| 2675 error ("Unable to create window"); | |
|
49434
a4d0ee33dcce
Fix input methods for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2676 |
|
a4d0ee33dcce
Fix input methods for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2677 #ifdef HAVE_X_I18N |
|
a4d0ee33dcce
Fix input methods for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2678 FRAME_XIC (f) = NULL; |
|
54185
f6e4e454800a
xfns.c (x_window): Fixed indentation
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
54142
diff
changeset
|
2679 if (use_xim) |
|
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2680 { |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2681 BLOCK_INPUT; |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2682 create_frame_xic (f); |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2683 if (FRAME_XIC (f)) |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2684 { |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2685 /* XIM server might require some X events. */ |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2686 unsigned long fevent = NoEventMask; |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2687 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
|
2688 |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2689 if (fevent != NoEventMask) |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2690 { |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2691 XSetWindowAttributes attributes; |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2692 XWindowAttributes wattr; |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2693 unsigned long attribute_mask; |
|
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 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
|
2696 &wattr); |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2697 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
|
2698 attribute_mask = CWEventMask; |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2699 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
|
2700 attribute_mask, &attributes); |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2701 } |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2702 } |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2703 UNBLOCK_INPUT; |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2704 } |
|
49434
a4d0ee33dcce
Fix input methods for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
49322
diff
changeset
|
2705 #endif |
| 49322 | 2706 } |
| 2707 | |
| 2708 #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
|
2709 /* 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
|
2710 |
| 21846 | 2711 void |
|
6790
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2712 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
|
2713 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
|
2714 |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2715 { |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2716 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
|
2717 XSetWindowAttributes attributes; |
|
ee8090b47ea6
(x_figure_window_size): Don't call x_calc_absolute_position.
Richard M. Stallman <rms@gnu.org>
parents:
6783
diff
changeset
|
2718 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
|
2719 |
| 83505 | 2720 attributes.background_pixel = FRAME_BACKGROUND_PIXEL (f); |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2721 attributes.border_pixel = f->output_data.x->border_pixel; |
| 389 | 2722 attributes.bit_gravity = StaticGravity; |
| 2723 attributes.backing_store = NotUseful; | |
| 2724 attributes.save_under = True; | |
| 2725 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
|
2726 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
|
2727 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
|
2728 | CWColormap); |
| 389 | 2729 |
| 2730 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
|
2731 FRAME_X_WINDOW (f) |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2732 = 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
|
2733 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
|
2734 f->left_pos, |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2735 f->top_pos, |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
2736 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
|
2737 f->border_width, |
| 389 | 2738 CopyFromParent, /* depth */ |
| 2739 InputOutput, /* class */ | |
|
28144
71ebba3566ec
(X_I18N_INHIBITED): Don't define.
Gerd Moellmann <gerd@gnu.org>
parents:
28096
diff
changeset
|
2740 FRAME_X_VISUAL (f), |
| 389 | 2741 attribute_mask, &attributes); |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2742 |
|
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2743 #ifdef HAVE_X_I18N |
| 51175 | 2744 if (use_xim) |
|
51130
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2745 { |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2746 create_frame_xic (f); |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2747 if (FRAME_XIC (f)) |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2748 { |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2749 /* XIM server might require some X events. */ |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2750 unsigned long fevent = NoEventMask; |
|
53069
1218a42792ea
Implement multiple display handling for GTK.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53027
diff
changeset
|
2751 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
|
2752 attributes.event_mask |= fevent; |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2753 attribute_mask = CWEventMask; |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2754 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
|
2755 attribute_mask, &attributes); |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2756 } |
|
0e2a60d0ca7b
(x_window, x_window): Use use_xim.
Dave Love <fx@gnu.org>
parents:
50392
diff
changeset
|
2757 } |
|
27502
52e8cb1333f2
(xic_set_preeditarea): Take window parameter and
Gerd Moellmann <gerd@gnu.org>
parents:
27343
diff
changeset
|
2758 #endif /* HAVE_X_I18N */ |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2759 |
|
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
2760 validate_x_resource_name (); |
|
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
2761 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2762 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
|
2763 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
|
2764 XSetClassHint (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), &class_hints); |
| 771 | 2765 |
|
11897
cbd3724a9696
(x_window) [both versions]: Set menubar_height.
Karl Heuer <kwzh@gnu.org>
parents:
11894
diff
changeset
|
2766 /* 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
|
2767 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
|
2768 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
|
2769 |
|
1719
48f539ac6921
* frame.h (struct frame): New fields `can_have_scrollbars' and
Jim Blandy <jimb@redhat.com>
parents:
1657
diff
changeset
|
2770 /* 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
|
2771 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
|
2772 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
|
2773 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
|
2774 |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2775 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
|
2776 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
|
2777 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
|
2778 &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
|
2779 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
|
2780 |
|
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2781 /* 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
|
2782 { |
|
26a1d7b2670b
(x_window): Request "save yourself" commands.
Richard M. Stallman <rms@gnu.org>
parents:
7802
diff
changeset
|
2783 Atom protocols[2]; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2784 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
|
2785 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
|
2786 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
|
2787 } |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2788 |
| 817 | 2789 /* x_set_name normally ignores requests to set the name if the |
| 2790 requested name is the same as the current name. This is the one | |
| 2791 place where that assumption isn't correct; f->name is set, but | |
| 2792 the X server hasn't been told. */ | |
| 2793 { | |
|
6519
22c56514eeb3
(x_set_frame_parameters, x_get_arg, x_window, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
6506
diff
changeset
|
2794 Lisp_Object name; |
|
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2795 int explicit = f->explicit_name; |
| 817 | 2796 |
|
6519
22c56514eeb3
(x_set_frame_parameters, x_get_arg, x_window, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
6506
diff
changeset
|
2797 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
|
2798 name = f->name; |
| 817 | 2799 f->name = Qnil; |
|
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
2800 x_set_name (f, name, explicit); |
| 817 | 2801 } |
| 2802 | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2803 XDefineCursor (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
| 103706 | 2804 f->output_data.x->current_cursor |
| 2805 = f->output_data.x->text_cursor); | |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2806 |
| 389 | 2807 UNBLOCK_INPUT; |
| 2808 | |
|
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
|
2809 if (FRAME_X_WINDOW (f) == 0) |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2810 error ("Unable to create window"); |
| 389 | 2811 } |
| 2812 | |
| 49322 | 2813 #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
|
2814 #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
|
2815 |
|
56513
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2816 /* 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
|
2817 |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2818 static void |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2819 x_icon_verify (f, parms) |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2820 struct frame *f; |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2821 Lisp_Object parms; |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2822 { |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2823 Lisp_Object icon_x, icon_y; |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2824 |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2825 /* 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
|
2826 icons in an icon window. */ |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2827 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
|
2828 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
|
2829 if (!EQ (icon_x, Qunbound) && !EQ (icon_y, Qunbound)) |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2830 { |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2831 CHECK_NUMBER (icon_x); |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2832 CHECK_NUMBER (icon_y); |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2833 } |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2834 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
|
2835 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
|
2836 } |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
2837 |
| 389 | 2838 /* Handle the icon stuff for this window. Perhaps later we might |
| 2839 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
|
2840 well. */ |
| 389 | 2841 |
| 2842 static void | |
| 771 | 2843 x_icon (f, parms) |
| 2844 struct frame *f; | |
| 389 | 2845 Lisp_Object parms; |
| 2846 { | |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2847 Lisp_Object icon_x, icon_y; |
|
83760
aa5347e75afa
(check_x_display_info): Yet Another Int/Lisp_Object Mixup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83648
diff
changeset
|
2848 #if 0 |
|
17779
094e5efd262d
(Fx_create_frame): Get X resources from the display
Richard M. Stallman <rms@gnu.org>
parents:
17722
diff
changeset
|
2849 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); |
|
83760
aa5347e75afa
(check_x_display_info): Yet Another Int/Lisp_Object Mixup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83648
diff
changeset
|
2850 #endif |
| 389 | 2851 |
| 2852 /* 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
|
2853 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
|
2854 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
|
2855 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
|
2856 if (!EQ (icon_x, Qunbound) && !EQ (icon_y, Qunbound)) |
| 389 | 2857 { |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
2858 CHECK_NUMBER (icon_x); |
|
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
2859 CHECK_NUMBER (icon_y); |
| 389 | 2860 } |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2861 else if (!EQ (icon_x, Qunbound) || !EQ (icon_y, Qunbound)) |
| 389 | 2862 error ("Both left and top icon corners of icon must be specified"); |
| 2863 | |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2864 BLOCK_INPUT; |
|
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2865 |
|
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
|
2866 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
|
2867 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
|
2868 |
|
69428
1b5fec6d607f
(x_icon): Disable redundant call to `x_wm_set_window_state'.
K?roly L?rentey <lorentey@elte.hu>
parents:
69404
diff
changeset
|
2869 #if 0 /* x_get_arg removes the visibility parameter as a side effect, |
|
1b5fec6d607f
(x_icon): Disable redundant call to `x_wm_set_window_state'.
K?roly L?rentey <lorentey@elte.hu>
parents:
69404
diff
changeset
|
2870 but x_create_frame still needs it. */ |
| 389 | 2871 /* 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
|
2872 x_wm_set_window_state |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2873 (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
|
2874 Qicon) |
|
2294
9bce20507666
Use the `visiblity' parameter to determine the initial state of
Jim Blandy <jimb@redhat.com>
parents:
2283
diff
changeset
|
2875 ? IconicState |
|
9bce20507666
Use the `visiblity' parameter to determine the initial state of
Jim Blandy <jimb@redhat.com>
parents:
2283
diff
changeset
|
2876 : NormalState)); |
|
69428
1b5fec6d607f
(x_icon): Disable redundant call to `x_wm_set_window_state'.
K?roly L?rentey <lorentey@elte.hu>
parents:
69404
diff
changeset
|
2877 #endif |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
2878 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
2879 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
|
2880 ? 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
|
2881 : f->name))); |
| 12073 | 2882 |
| 389 | 2883 UNBLOCK_INPUT; |
| 2884 } | |
| 2885 | |
|
31637
c1f4bdbf8465
(ALLOC_XPM_COLORS): Define if we can use Emacs' color
Gerd Moellmann <gerd@gnu.org>
parents:
31633
diff
changeset
|
2886 /* Make the GCs needed for this window, setting the |
| 389 | 2887 background, border and mouse colors; also create the |
| 2888 mouse cursor and the gray border tile. */ | |
| 2889 | |
| 2890 static void | |
| 771 | 2891 x_make_gc (f) |
| 2892 struct frame *f; | |
| 389 | 2893 { |
| 2894 XGCValues gc_values; | |
| 2895 | |
|
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
|
2896 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
|
2897 |
|
31637
c1f4bdbf8465
(ALLOC_XPM_COLORS): Define if we can use Emacs' color
Gerd Moellmann <gerd@gnu.org>
parents:
31633
diff
changeset
|
2898 /* Create the GCs of this frame. |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2899 Note that many default values are used. */ |
| 389 | 2900 |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
2901 gc_values.foreground = FRAME_FOREGROUND_PIXEL (f); |
|
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
2902 gc_values.background = FRAME_BACKGROUND_PIXEL (f); |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2903 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
|
2904 f->output_data.x->normal_gc |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2905 = XCreateGC (FRAME_X_DISPLAY (f), |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2906 FRAME_X_WINDOW (f), |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2907 GCLineWidth | GCForeground | GCBackground, |
|
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2908 &gc_values); |
| 389 | 2909 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
2910 /* Reverse video style. */ |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
2911 gc_values.foreground = FRAME_BACKGROUND_PIXEL (f); |
|
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
2912 gc_values.background = FRAME_FOREGROUND_PIXEL (f); |
|
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2913 f->output_data.x->reverse_gc |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2914 = XCreateGC (FRAME_X_DISPLAY (f), |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2915 FRAME_X_WINDOW (f), |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2916 GCForeground | GCBackground | GCLineWidth, |
|
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2917 &gc_values); |
| 389 | 2918 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
2919 /* Cursor has cursor-color background, background-color foreground. */ |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
2920 gc_values.foreground = FRAME_BACKGROUND_PIXEL (f); |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2921 gc_values.background = f->output_data.x->cursor_pixel; |
| 389 | 2922 gc_values.fill_style = FillOpaqueStippled; |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
2923 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
|
2924 = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
2925 (GCForeground | GCBackground |
|
101237
bcad6975ee7a
(x_make_gc): Don't allocate stipple member for gc_values; it is not
Chong Yidong <cyd@stupidchicken.com>
parents:
100951
diff
changeset
|
2926 | GCFillStyle | GCLineWidth), |
| 389 | 2927 &gc_values); |
| 2928 | |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2929 /* Reliefs. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
2930 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
|
2931 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
|
2932 |
| 389 | 2933 /* Create the gray border tile used when the pointer is not in |
| 771 | 2934 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
|
2935 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
|
2936 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
|
2937 = (XCreatePixmapFromBitmapData |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2938 (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
|
2939 gray_bits, gray_width, gray_height, |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
2940 FRAME_FOREGROUND_PIXEL (f), |
|
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
2941 FRAME_BACKGROUND_PIXEL (f), |
|
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
2942 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
|
2943 |
|
1982e2983822
* xfns.c (x_make_gc): Don't forget to block X input around the
Jim Blandy <jimb@redhat.com>
parents:
2328
diff
changeset
|
2944 UNBLOCK_INPUT; |
| 389 | 2945 } |
| 2946 | |
|
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2947 |
|
105426
d0a6d64c3cfc
Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents:
104815
diff
changeset
|
2948 /* Free what was allocated in x_make_gc. */ |
|
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2949 |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2950 void |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2951 x_free_gcs (f) |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2952 struct frame *f; |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2953 { |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2954 Display *dpy = FRAME_X_DISPLAY (f); |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2955 |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2956 BLOCK_INPUT; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2957 |
|
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2958 if (f->output_data.x->normal_gc) |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2959 { |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2960 XFreeGC (dpy, f->output_data.x->normal_gc); |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2961 f->output_data.x->normal_gc = 0; |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2962 } |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2963 |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2964 if (f->output_data.x->reverse_gc) |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2965 { |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2966 XFreeGC (dpy, f->output_data.x->reverse_gc); |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2967 f->output_data.x->reverse_gc = 0; |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2968 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
2969 |
|
34321
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2970 if (f->output_data.x->cursor_gc) |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2971 { |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2972 XFreeGC (dpy, f->output_data.x->cursor_gc); |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2973 f->output_data.x->cursor_gc = 0; |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2974 } |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2975 |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2976 if (f->output_data.x->border_tile) |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2977 { |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2978 XFreePixmap (dpy, f->output_data.x->border_tile); |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2979 f->output_data.x->border_tile = 0; |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2980 } |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2981 |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2982 UNBLOCK_INPUT; |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2983 } |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2984 |
|
41ecc8525dbc
(x_free_gcs): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
33994
diff
changeset
|
2985 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2986 /* 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
|
2987 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
|
2988 constructed. */ |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2989 |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2990 static Lisp_Object |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2991 unwind_create_frame (frame) |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2992 Lisp_Object frame; |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2993 { |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2994 struct frame *f = XFRAME (frame); |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
2995 |
|
83281
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
2996 /* 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
|
2997 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
|
2998 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
|
2999 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
|
3000 return Qnil; |
|
b00208784797
Prevent core dump when connection is lost during frame creation.
Karoly Lorentey <lorentey@elte.hu>
parents:
83277
diff
changeset
|
3001 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3002 /* If frame is ``official'', nothing to do. */ |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3003 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
|
3004 { |
|
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
3005 #if GLYPH_DEBUG |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3006 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
|
3007 #endif |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3008 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3009 x_free_frame_resources (f); |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3010 |
|
59904
adc18da68682
(unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
Kim F. Storm <storm@cua.dk>
parents:
59789
diff
changeset
|
3011 #if GLYPH_DEBUG |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3012 /* Check that reference counts are indeed correct. */ |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3013 xassert (dpyinfo->reference_count == dpyinfo_refcount); |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3014 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
|
3015 #endif |
|
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
3016 return Qt; |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3017 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3018 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3019 return Qnil; |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3020 } |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3021 |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3022 |
| 90423 | 3023 static void |
| 3024 x_default_font_parameter (f, parms) | |
| 3025 struct frame *f; | |
| 3026 Lisp_Object parms; | |
| 3027 { | |
| 3028 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); | |
|
96084
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3029 Lisp_Object font_param = x_get_arg (dpyinfo, parms, Qfont, NULL, NULL, |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3030 RES_TYPE_STRING); |
|
96084
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3031 Lisp_Object font; |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3032 int got_from_gconf = 0; |
|
96084
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3033 if (EQ (font_param, Qunbound)) |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3034 { |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3035 font_param = Qnil; |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3036 font_param = Ffont_get_system_font(); |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3037 got_from_gconf = !NILP (font_param); |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3038 } |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3039 |
|
96084
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3040 font = !NILP (font_param) ? font_param |
|
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3041 : x_get_arg (dpyinfo, parms, Qfont, "font", "Font", RES_TYPE_STRING); |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3042 |
| 90423 | 3043 if (! STRINGP (font)) |
| 3044 { | |
| 3045 char *names[] | |
|
96289
2e5fb8825124
(x_default_font_parameter): If Xft is available, first try
Chong Yidong <cyd@stupidchicken.com>
parents:
96085
diff
changeset
|
3046 = { |
|
2e5fb8825124
(x_default_font_parameter): If Xft is available, first try
Chong Yidong <cyd@stupidchicken.com>
parents:
96085
diff
changeset
|
3047 #ifdef HAVE_XFT |
|
2e5fb8825124
(x_default_font_parameter): If Xft is available, first try
Chong Yidong <cyd@stupidchicken.com>
parents:
96085
diff
changeset
|
3048 /* This will find the normal Xft font. */ |
|
96290
dccab8856004
Fix last change, using "monospace" rather than "Monospace".
Chong Yidong <cyd@stupidchicken.com>
parents:
96289
diff
changeset
|
3049 "monospace-12", |
|
96289
2e5fb8825124
(x_default_font_parameter): If Xft is available, first try
Chong Yidong <cyd@stupidchicken.com>
parents:
96085
diff
changeset
|
3050 #endif |
|
2e5fb8825124
(x_default_font_parameter): If Xft is available, first try
Chong Yidong <cyd@stupidchicken.com>
parents:
96085
diff
changeset
|
3051 "-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1", |
| 90423 | 3052 "-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-1", |
| 3053 "-*-*-medium-r-normal-*-*-140-*-*-c-*-iso8859-1", | |
| 3054 /* This was formerly the first thing tried, but it finds | |
| 3055 too many fonts and takes too long. */ | |
| 3056 "-*-*-medium-r-*-*-*-*-*-*-c-*-iso8859-1", | |
| 3057 /* If those didn't work, look for something which will | |
| 3058 at least work. */ | |
| 3059 "-*-fixed-*-*-*-*-*-140-*-*-c-*-iso8859-1", | |
|
90462
5981c99ef5ba
(x_default_font_parameter): Try also "fixed", and signal
Kenichi Handa <handa@m17n.org>
parents:
90428
diff
changeset
|
3060 "fixed", |
| 90423 | 3061 NULL }; |
| 3062 int i; | |
| 3063 | |
| 3064 for (i = 0; names[i]; i++) | |
| 3065 { | |
| 3066 font = font_open_by_name (f, names[i]); | |
| 3067 if (! NILP (font)) | |
| 3068 break; | |
| 3069 } | |
| 3070 if (NILP (font)) | |
|
90462
5981c99ef5ba
(x_default_font_parameter): Try also "fixed", and signal
Kenichi Handa <handa@m17n.org>
parents:
90428
diff
changeset
|
3071 error ("No suitable font was found"); |
| 90423 | 3072 } |
|
96084
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3073 else if (!NILP (font_param)) |
|
96079
efbaf6995245
* w32fns.c, xfns.c (Qfont_param): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95974
diff
changeset
|
3074 { |
|
efbaf6995245
* w32fns.c, xfns.c (Qfont_param): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95974
diff
changeset
|
3075 /* Remember the explicit font parameter, so we can re-apply it after |
|
efbaf6995245
* w32fns.c, xfns.c (Qfont_param): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95974
diff
changeset
|
3076 we've applied the `default' face settings. */ |
|
96084
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3077 x_set_frame_parameters (f, Fcons (Fcons (Qfont_param, font_param), Qnil)); |
|
0623378cdbca
* w32fns.c, xfnc.c (x_default_font_parameter): Only set `font-param'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96079
diff
changeset
|
3078 } |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3079 |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3080 x_default_parameter (f, parms, Qfont, font, |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3081 got_from_gconf ? NULL : "font", |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3082 got_from_gconf ? NULL : "Font", |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
3083 RES_TYPE_STRING); |
| 90423 | 3084 } |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3085 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3086 |
|
99346
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3087 DEFUN ("x-wm-set-size-hint", Fx_wm_set_size_hint, Sx_wm_set_size_hint, |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3088 0, 1, 0, |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3089 doc: /* Send the size hints for frame FRAME to the window manager. |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3090 If FRAME is nil, use the selected frame. */) |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3091 (frame) |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3092 Lisp_Object frame; |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3093 { |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3094 struct frame *f; |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3095 if (NILP (frame)) |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3096 frame = selected_frame; |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3097 f = XFRAME (frame); |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3098 BLOCK_INPUT; |
|
100382
9608fb92d17d
(Fx_wm_set_size_hint): Check if the frame is an X frame.
Chong Yidong <cyd@stupidchicken.com>
parents:
99369
diff
changeset
|
3099 if (FRAME_X_P (f)) |
|
9608fb92d17d
(Fx_wm_set_size_hint): Check if the frame is an X frame.
Chong Yidong <cyd@stupidchicken.com>
parents:
99369
diff
changeset
|
3100 x_wm_set_size_hint (f, 0, 0); |
|
99346
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3101 UNBLOCK_INPUT; |
|
99369
04ea320c6c8c
(Fx_wm_set_size_hint): Add missing return value.
Andreas Schwab <schwab@suse.de>
parents:
99346
diff
changeset
|
3102 return Qnil; |
|
99346
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3103 } |
|
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
3104 |
| 771 | 3105 DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, |
| 389 | 3106 1, 1, 0, |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3107 doc: /* Make a new X window, which is called a "frame" in Emacs terms. |
|
79392
5bb5f9a8abab
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
79085
diff
changeset
|
3108 Return an Emacs frame object. |
| 96574 | 3109 PARMS is an alist of frame parameters. |
|
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3110 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
|
3111 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
|
3112 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
|
3113 be shared by the new frame. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3114 |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3115 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
|
3116 (parms) |
| 389 | 3117 Lisp_Object parms; |
| 3118 { | |
| 771 | 3119 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
|
3120 Lisp_Object frame, tem; |
| 389 | 3121 Lisp_Object name; |
| 3122 int minibuffer_only = 0; | |
| 3123 long window_prompting = 0; | |
| 3124 int width, height; | |
|
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
3125 int count = SPECPDL_INDEX (); |
|
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3126 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
|
3127 Lisp_Object display; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3128 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
|
3129 Lisp_Object parent; |
|
11774
0b5cb5170084
(Fx_create_frame): Pass kb to make_frame_without_minibuffer.
Karl Heuer <kwzh@gnu.org>
parents:
11772
diff
changeset
|
3130 struct kboard *kb; |
| 389 | 3131 |
|
68396
75dead191600
(Fx_create_frame): Put all specified parms into f->param_alist
Richard M. Stallman <rms@gnu.org>
parents:
67842
diff
changeset
|
3132 parms = Fcopy_alist (parms); |
|
75dead191600
(Fx_create_frame): Put all specified parms into f->param_alist
Richard M. Stallman <rms@gnu.org>
parents:
67842
diff
changeset
|
3133 |
|
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3134 /* 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
|
3135 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
|
3136 Vx_resource_name = Vinvocation_name; |
|
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3137 |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3138 display = x_get_arg (dpyinfo, parms, Qterminal, 0, 0, RES_TYPE_NUMBER); |
|
83177
91cf385601e5
Fix creating frames on different X servers.
Karoly Lorentey <lorentey@elte.hu>
parents:
83167
diff
changeset
|
3139 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
|
3140 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
|
3141 if (EQ (display, Qunbound)) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3142 display = Qnil; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3143 dpyinfo = check_x_display_info (display); |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3144 kb = dpyinfo->terminal->kboard; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3145 |
|
84685
502394270fc6
(x_delete_terminal): Use terminal->name as liveness status.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83760
diff
changeset
|
3146 if (!dpyinfo->terminal->name) |
|
502394270fc6
(x_delete_terminal): Use terminal->name as liveness status.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83760
diff
changeset
|
3147 error ("Terminal is not live, can't create new frames on it"); |
|
83525
b2e7507b55c6
Fix C-x 5 2 on the controlling tty; fix some possible crash conditions and a memory leak.
Karoly Lorentey <lorentey@elte.hu>
parents:
83505
diff
changeset
|
3148 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3149 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
|
3150 if (!STRINGP (name) |
|
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3151 && ! EQ (name, Qunbound) |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3152 && ! NILP (name)) |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3153 error ("Invalid frame name--not a string or nil"); |
| 398 | 3154 |
|
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3155 if (STRINGP (name)) |
|
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3156 Vx_resource_name = name; |
|
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
3157 |
|
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3158 /* 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
|
3159 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
|
3160 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
|
3161 parent = Qnil; |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3162 if (! NILP (parent)) |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3163 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
|
3164 |
|
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3165 /* 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
|
3166 /* 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
|
3167 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
|
3168 frame = Qnil; |
|
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3169 GCPRO4 (parms, parent, name, frame); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3170 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
|
3171 RES_TYPE_SYMBOL); |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3172 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
|
3173 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
|
3174 else if (EQ (tem, Qonly)) |
| 389 | 3175 { |
| 771 | 3176 f = make_minibuffer_frame (); |
| 389 | 3177 minibuffer_only = 1; |
| 3178 } | |
|
9103
948e8acb6990
(x_set_frame_parameters, x_set_menu_bar_lines, Fx_create_frame,
Karl Heuer <kwzh@gnu.org>
parents:
9022
diff
changeset
|
3179 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
|
3180 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
|
3181 else |
| 771 | 3182 f = make_frame (1); |
| 3183 | |
|
15566
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3184 XSETFRAME (frame, f); |
|
3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
Richard M. Stallman <rms@gnu.org>
parents:
15495
diff
changeset
|
3185 |
|
1994
73ce9dd21093
Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents:
1932
diff
changeset
|
3186 /* 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
|
3187 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
|
3188 |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3189 f->terminal = dpyinfo->terminal; |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3190 f->terminal->reference_count++; |
|
83004
7900111db01c
Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents:
82992
diff
changeset
|
3191 |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3192 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
|
3193 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
|
3194 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
|
3195 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
|
3196 FRAME_FONTSET (f) = -1; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3197 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
|
3198 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
|
3199 #ifdef USE_TOOLKIT_SCROLL_BARS |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
3200 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
|
3201 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
|
3202 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3203 |
|
12276
2e376a4397bc
(x_report_frame_params, x_set_icon_type, x_set_icon_name)
Richard M. Stallman <rms@gnu.org>
parents:
12209
diff
changeset
|
3204 f->icon_name |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3205 = 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
|
3206 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
|
3207 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
|
3208 f->icon_name = Qnil; |
| 12073 | 3209 |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3210 FRAME_X_DISPLAY_INFO (f) = dpyinfo; |
|
71577
ae1e5666e49f
(Fx_create_frame): Move unwind_create_frame setup down.
Richard M. Stallman <rms@gnu.org>
parents:
71476
diff
changeset
|
3211 |
|
ae1e5666e49f
(Fx_create_frame): Move unwind_create_frame setup down.
Richard M. Stallman <rms@gnu.org>
parents:
71476
diff
changeset
|
3212 /* With FRAME_X_DISPLAY_INFO set up, this unwind-protect is safe. */ |
|
ae1e5666e49f
(Fx_create_frame): Move unwind_create_frame setup down.
Richard M. Stallman <rms@gnu.org>
parents:
71476
diff
changeset
|
3213 record_unwind_protect (unwind_create_frame, frame); |
|
34895
53e52b3525bf
Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
Gerd Moellmann <gerd@gnu.org>
parents:
34662
diff
changeset
|
3214 #if GLYPH_DEBUG |
|
92109
4d9fc08769fa
Consolidate the image_cache to the terminal struct.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91931
diff
changeset
|
3215 image_cache_refcount = FRAME_IMAGE_CACHE (f)->refcount; |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3216 dpyinfo_refcount = dpyinfo->reference_count; |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3217 #endif /* GLYPH_DEBUG */ |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3218 |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3219 /* 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
|
3220 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
|
3221 { |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3222 Lisp_Object black; |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3223 struct gcpro gcpro1; |
|
38345
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
3224 |
|
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
3225 /* 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
|
3226 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
|
3227 to free colors we haven't allocated. */ |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
3228 FRAME_FOREGROUND_PIXEL (f) = -1; |
|
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
3229 FRAME_BACKGROUND_PIXEL (f) = -1; |
|
38345
3238db7bdfef
(Fx_create_frame): Initialize frame colors to -1,
Gerd Moellmann <gerd@gnu.org>
parents:
38183
diff
changeset
|
3230 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
|
3231 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
|
3232 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
|
3233 f->output_data.x->mouse_pixel = -1; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3234 |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3235 black = build_string ("black"); |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3236 GCPRO1 (black); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
3237 FRAME_FOREGROUND_PIXEL (f) |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3238 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
3239 FRAME_BACKGROUND_PIXEL (f) |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3240 = 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
|
3241 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
|
3242 = 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
|
3243 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
|
3244 = 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
|
3245 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
|
3246 = 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
|
3247 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
|
3248 = 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
|
3249 UNGCPRO; |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3250 } |
|
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
3251 |
|
10222
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3252 /* 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
|
3253 |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3254 if (!NILP (parent)) |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3255 { |
|
18612
88efccff8970
Fix bugs with inappropriate mixing of Lisp_Object with int.
Richard M. Stallman <rms@gnu.org>
parents:
18594
diff
changeset
|
3256 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
|
3257 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
|
3258 } |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3259 else |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3260 { |
|
12667
a3466dad7d6d
Renamings: frame->display => frame->output, struct x_display -> sruct x_output.
Richard M. Stallman <rms@gnu.org>
parents:
12656
diff
changeset
|
3261 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
|
3262 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
|
3263 } |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3264 |
|
1786
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3265 /* 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
|
3266 be set. */ |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3267 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
|
3268 { |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
3269 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
|
3270 f->explicit_name = 0; |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3271 } |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3272 else |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3273 { |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3274 f->name = name; |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3275 f->explicit_name = 1; |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3276 /* 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
|
3277 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
|
3278 } |
| 771 | 3279 |
| 90423 | 3280 f->resx = dpyinfo->resx; |
| 3281 f->resy = dpyinfo->resy; | |
| 3282 | |
| 3283 #ifdef HAVE_FREETYPE | |
| 3284 #ifdef HAVE_XFT | |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3285 register_font_driver (&xftfont_driver, f); |
| 90423 | 3286 #else /* not HAVE_XFT */ |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3287 register_font_driver (&ftxfont_driver, f); |
| 90423 | 3288 #endif /* not HAVE_XFT */ |
| 3289 #endif /* HAVE_FREETYPE */ | |
|
102108
ce4d81298570
(Fx_create_frame): Give Xft driver a higher priority.
Chong Yidong <cyd@stupidchicken.com>
parents:
101836
diff
changeset
|
3290 register_font_driver (&xfont_driver, f); |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3291 |
|
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3292 x_default_parameter (f, parms, Qfont_backend, Qnil, |
|
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3293 "fontBackend", "FontBackend", RES_TYPE_STRING); |
| 90423 | 3294 |
| 389 | 3295 /* Extract the window parameters from the supplied values |
| 3296 that are needed to determine window geometry. */ | |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3297 x_default_font_parameter (f, parms); |
|
101836
06bbdc2cfd6f
(Fx_create_frame): Signal an error if no font is found (Bug#2147).
Chong Yidong <cyd@stupidchicken.com>
parents:
101237
diff
changeset
|
3298 if (!FRAME_FONT (f)) |
|
06bbdc2cfd6f
(Fx_create_frame): Signal an error if no font is found (Bug#2147).
Chong Yidong <cyd@stupidchicken.com>
parents:
101237
diff
changeset
|
3299 { |
|
06bbdc2cfd6f
(Fx_create_frame): Signal an error if no font is found (Bug#2147).
Chong Yidong <cyd@stupidchicken.com>
parents:
101237
diff
changeset
|
3300 delete_frame (frame, Qnoelisp); |
|
06bbdc2cfd6f
(Fx_create_frame): Signal an error if no font is found (Bug#2147).
Chong Yidong <cyd@stupidchicken.com>
parents:
101237
diff
changeset
|
3301 error ("Invalid frame font"); |
|
06bbdc2cfd6f
(Fx_create_frame): Signal an error if no font is found (Bug#2147).
Chong Yidong <cyd@stupidchicken.com>
parents:
101237
diff
changeset
|
3302 } |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3303 |
|
15720
f1549b7501af
(Fx_create_frame): Do xlwmenu hack only if USE_LUCID.
Karl Heuer <kwzh@gnu.org>
parents:
15706
diff
changeset
|
3304 #ifdef USE_LUCID |
|
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3305 /* 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
|
3306 whereby it fails to get any font. */ |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
3307 xlwmenu_default_font = XLoadQueryFont (FRAME_X_DISPLAY (f), "fixed"); |
|
9808
4c43c9dbe130
(x_window): Make ibw 0 by default.
Richard M. Stallman <rms@gnu.org>
parents:
9742
diff
changeset
|
3308 #endif |
|
9742
fe7653791d28
(Fx_create_frame): Set xlwmenu_default_font.
Richard M. Stallman <rms@gnu.org>
parents:
9703
diff
changeset
|
3309 |
|
91633
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
3310 /* Frame contents get displaced if an embedded X window has a border. */ |
|
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
3311 if (! FRAME_X_EMBEDDED_P (f)) |
|
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
3312 x_default_parameter (f, parms, Qborder_width, make_number (2), |
|
e33a0659fabe
(Fx_create_frame): Do not override the explicitly set parent
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91327
diff
changeset
|
3313 "borderWidth", "BorderWidth", RES_TYPE_NUMBER); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3314 |
| 40715 | 3315 /* 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
|
3316 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
|
3317 it). */ |
|
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3318 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
|
3319 { |
|
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3320 Lisp_Object value; |
|
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3321 |
|
17779
094e5efd262d
(Fx_create_frame): Get X resources from the display
Richard M. Stallman <rms@gnu.org>
parents:
17722
diff
changeset
|
3322 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
|
3323 "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
|
3324 if (! EQ (value, Qunbound)) |
|
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3325 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
|
3326 parms); |
|
cb16ebff1c44
* xfns.c (Fx_create_frame): Check for internalBorder resource, as
Jim Blandy <jimb@redhat.com>
parents:
3888
diff
changeset
|
3327 } |
|
95954
184aae567806
* xfns.c (Fx_create_frame): internal-border-width default to 0 for Gtk.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95877
diff
changeset
|
3328 x_default_parameter (f, parms, Qinternal_border_width, |
|
184aae567806
* xfns.c (Fx_create_frame): internal-border-width default to 0 for Gtk.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95877
diff
changeset
|
3329 #ifdef USE_GTK /* We used to impose 0 in xg_create_frame_widgets. */ |
|
184aae567806
* xfns.c (Fx_create_frame): internal-border-width default to 0 for Gtk.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95877
diff
changeset
|
3330 make_number (0), |
|
184aae567806
* xfns.c (Fx_create_frame): internal-border-width default to 0 for Gtk.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95877
diff
changeset
|
3331 #else |
|
184aae567806
* xfns.c (Fx_create_frame): internal-border-width default to 0 for Gtk.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95877
diff
changeset
|
3332 make_number (1), |
|
184aae567806
* xfns.c (Fx_create_frame): internal-border-width default to 0 for Gtk.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95877
diff
changeset
|
3333 #endif |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3334 "internalBorderWidth", "internalBorderWidth", |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3335 RES_TYPE_NUMBER); |
|
16254
3e8b16badf3d
(Fx_create_frame): Default Qvertical_scroll_bars to `left'.
Richard M. Stallman <rms@gnu.org>
parents:
16156
diff
changeset
|
3336 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
|
3337 "verticalScrollBars", "ScrollBars", |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3338 RES_TYPE_SYMBOL); |
| 389 | 3339 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3340 /* 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
|
3341 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
|
3342 "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
|
3343 x_default_parameter (f, parms, Qbackground_color, build_string ("white"), |
| 26808 | 3344 "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
|
3345 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
|
3346 "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
|
3347 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
|
3348 "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
|
3349 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
|
3350 "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
|
3351 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
|
3352 "screenGamma", "ScreenGamma", RES_TYPE_FLOAT); |
|
28690
01a3287bb747
(x_set_line_spacing): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28597
diff
changeset
|
3353 x_default_parameter (f, parms, Qline_spacing, Qnil, |
|
01a3287bb747
(x_set_line_spacing): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
28597
diff
changeset
|
3354 "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
|
3355 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
|
3356 "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
|
3357 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
|
3358 "rightFringe", "RightFringe", RES_TYPE_NUMBER); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3359 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3360 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
|
3361 "scrollBarForeground", |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3362 "ScrollBarForeground", 1); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3363 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
|
3364 "scrollBarBackground", |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3365 "ScrollBarBackground", 0); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3366 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3367 /* 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
|
3368 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
|
3369 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
|
3370 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
|
3371 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
|
3372 happen. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3373 init_frame_faces (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3374 |
|
8758
fac1c4722677
(Fx_create_frame): Make 1 the default for menu-bar-lines.
Richard M. Stallman <rms@gnu.org>
parents:
8675
diff
changeset
|
3375 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
|
3376 "menuBar", "MenuBar", RES_TYPE_NUMBER); |
|
31824
b3295c7e7a60
(Fx_create_frame): Set default frame parameter value
Gerd Moellmann <gerd@gnu.org>
parents:
31768
diff
changeset
|
3377 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
|
3378 "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
|
3379 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
|
3380 "bufferPredicate", "BufferPredicate", |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3381 RES_TYPE_SYMBOL); |
| 14381 | 3382 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
|
3383 "title", "Title", RES_TYPE_STRING); |
|
38183
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
3384 x_default_parameter (f, parms, Qwait_for_wm, Qt, |
|
3ef7b5a020b2
(Qwait_for_wm): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37946
diff
changeset
|
3385 "waitForWM", "WaitForWM", RES_TYPE_BOOLEAN); |
|
42721
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
3386 x_default_parameter (f, parms, Qfullscreen, Qnil, |
|
462e0bbae65d
(Qfullscreen, Qfullwidth, Qfullheight, Qfullboth): New variables.
Eli Zaretskii <eliz@gnu.org>
parents:
42247
diff
changeset
|
3387 "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
|
3388 |
|
36459
919d77f8d0ff
(Fx_create_frame): Adjust the frame's height for presence
Gerd Moellmann <gerd@gnu.org>
parents:
36448
diff
changeset
|
3389 /* 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
|
3390 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
|
3391 |
|
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3392 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
|
3393 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
|
3394 |
|
56513
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
3395 x_icon_verify (f, parms); |
|
5044b3527ce8
(x_icon_verify): New function.
Luc Teirlinck <teirllm@auburn.edu>
parents:
55546
diff
changeset
|
3396 |
|
35733
4f422aadd415
(Fx_create_frame): Add the tool bar height to the frame
Gerd Moellmann <gerd@gnu.org>
parents:
35592
diff
changeset
|
3397 /* 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
|
3398 #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
|
3399 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
|
3400 #else |
| 771 | 3401 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
|
3402 #endif |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3403 |
| 771 | 3404 x_icon (f, parms); |
| 3405 x_make_gc (f); | |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3406 |
|
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3407 /* Now consider the frame official. */ |
|
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3408 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
|
3409 Vframe_list = Fcons (frame, Vframe_list); |
|
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3410 |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3411 /* 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
|
3412 icon-creation functions can say whose icon they're describing. */ |
|
65936
2c78610a49f1
* xfns.c (Fx_create_frame): Make bitmapIcon have default on.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
65459
diff
changeset
|
3413 x_default_parameter (f, parms, Qicon_type, Qt, |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3414 "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
|
3415 |
|
5179baee010b
* xfns.c (Fx_create_frame): After mapping the frame, call
Jim Blandy <jimb@redhat.com>
parents:
1733
diff
changeset
|
3416 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
|
3417 "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
|
3418 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
|
3419 "autoLower", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
|
1821
04fb1d3d6992
JimB's changes since January 18th
Jim Blandy <jimb@redhat.com>
parents:
1786
diff
changeset
|
3420 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
|
3421 "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
|
3422 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
|
3423 "scrollBarWidth", "ScrollBarWidth", |
|
06f887a1c834
(Fx_create_frame): Move x_default_parameter calls that
Gerd Moellmann <gerd@gnu.org>
parents:
26954
diff
changeset
|
3424 RES_TYPE_NUMBER); |
|
95159
3a5987224fad
Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents:
94963
diff
changeset
|
3425 x_default_parameter (f, parms, Qalpha, Qnil, |
|
3a5987224fad
Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents:
94963
diff
changeset
|
3426 "alpha", "Alpha", RES_TYPE_NUMBER); |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
3427 |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3428 /* Dimensions, especially FRAME_LINES (f), must be done via change_frame_size. |
| 389 | 3429 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
|
3430 FRAME_LINES (f). */ |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3431 width = FRAME_COLS (f); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3432 height = FRAME_LINES (f); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3433 |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3434 SET_FRAME_COLS (f, 0); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3435 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
|
3436 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
|
3437 |
| 49322 | 3438 #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
|
3439 /* Create the menu bar. */ |
|
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3440 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
|
3441 { |
|
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3442 /* 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
|
3443 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
|
3444 initialize_frame_menubar (f); |
|
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3445 |
| 49322 | 3446 #ifndef USE_GTK |
|
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3447 /* 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
|
3448 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
|
3449 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
|
3450 f->output_data.x->menubar_widget, |
|
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3451 f->output_data.x->edit_widget); |
| 49322 | 3452 #endif /* not USE_GTK */ |
| 3453 } | |
| 3454 #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
|
3455 |
|
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3456 /* 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
|
3457 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
|
3458 bar so that its size can be taken into account. */ |
| 389 | 3459 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
|
3460 x_wm_set_size_hint (f, window_prompting, 0); |
| 389 | 3461 UNBLOCK_INPUT; |
| 3462 | |
|
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3463 /* 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
|
3464 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
|
3465 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
|
3466 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
|
3467 { |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3468 Lisp_Object visibility; |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3469 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
3470 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
|
3471 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
|
3472 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
|
3473 visibility = Qt; |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3474 |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3475 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
|
3476 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
|
3477 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
|
3478 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
|
3479 else |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3480 /* 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
|
3481 ; |
|
617bee0c64f6
(x_set_frame_parameters): Handle icon-left, icon-top parms.
Richard M. Stallman <rms@gnu.org>
parents:
10080
diff
changeset
|
3482 } |
| 771 | 3483 |
|
52298
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3484 /* 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
|
3485 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
|
3486 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
|
3487 { |
|
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3488 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
|
3489 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
|
3490 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
|
3491 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
|
3492 XA_WINDOW, 32, PropModeReplace, |
|
67264
d50a6a8cfd1e
* xfns.c (x_real_positions): int ign => unsigned int.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
66931
diff
changeset
|
3493 (unsigned char *) &dpyinfo->client_leader_window, 1); |
|
52298
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3494 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
|
3495 } |
|
1a4bd2bec861
Create and initialize a client leader window so session management
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
52095
diff
changeset
|
3496 |
|
67363
87de4735ecc9
(Fx_create_frame): Initialize Vdefault_minibuffer_frame, when needed.
K?roly L?rentey <lorentey@elte.hu>
parents:
67264
diff
changeset
|
3497 /* Initialize `default-minibuffer-frame' in case this is the first |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3498 frame on this terminal. */ |
|
67363
87de4735ecc9
(Fx_create_frame): Initialize Vdefault_minibuffer_frame, when needed.
K?roly L?rentey <lorentey@elte.hu>
parents:
67264
diff
changeset
|
3499 if (FRAME_HAS_MINIBUF_P (f) |
|
87de4735ecc9
(Fx_create_frame): Initialize Vdefault_minibuffer_frame, when needed.
K?roly L?rentey <lorentey@elte.hu>
parents:
67264
diff
changeset
|
3500 && (!FRAMEP (kb->Vdefault_minibuffer_frame) |
|
87de4735ecc9
(Fx_create_frame): Initialize Vdefault_minibuffer_frame, when needed.
K?roly L?rentey <lorentey@elte.hu>
parents:
67264
diff
changeset
|
3501 || !FRAME_LIVE_P (XFRAME (kb->Vdefault_minibuffer_frame)))) |
|
87de4735ecc9
(Fx_create_frame): Initialize Vdefault_minibuffer_frame, when needed.
K?roly L?rentey <lorentey@elte.hu>
parents:
67264
diff
changeset
|
3502 kb->Vdefault_minibuffer_frame = frame; |
|
87de4735ecc9
(Fx_create_frame): Initialize Vdefault_minibuffer_frame, when needed.
K?roly L?rentey <lorentey@elte.hu>
parents:
67264
diff
changeset
|
3503 |
|
68396
75dead191600
(Fx_create_frame): Put all specified parms into f->param_alist
Richard M. Stallman <rms@gnu.org>
parents:
67842
diff
changeset
|
3504 /* All remaining specified parameters, which have not been "used" |
|
75dead191600
(Fx_create_frame): Put all specified parms into f->param_alist
Richard M. Stallman <rms@gnu.org>
parents:
67842
diff
changeset
|
3505 by x_get_arg and friends, now go in the misc. alist of the frame. */ |
|
85330
0bc184c59770
* xfns.c (Fx_create_frame, Fx_display_list):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85311
diff
changeset
|
3506 for (tem = parms; CONSP (tem); tem = XCDR (tem)) |
|
68396
75dead191600
(Fx_create_frame): Put all specified parms into f->param_alist
Richard M. Stallman <rms@gnu.org>
parents:
67842
diff
changeset
|
3507 if (CONSP (XCAR (tem)) && !NILP (XCAR (XCAR (tem)))) |
|
75dead191600
(Fx_create_frame): Put all specified parms into f->param_alist
Richard M. Stallman <rms@gnu.org>
parents:
67842
diff
changeset
|
3508 f->param_alist = Fcons (XCAR (tem), f->param_alist); |
|
75dead191600
(Fx_create_frame): Put all specified parms into f->param_alist
Richard M. Stallman <rms@gnu.org>
parents:
67842
diff
changeset
|
3509 |
|
25320
107c9221181c
(x_window) [USE_X_TOOLKIT]: Remove test for
Gerd Moellmann <gerd@gnu.org>
parents:
25289
diff
changeset
|
3510 UNGCPRO; |
|
36594
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3511 |
|
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3512 /* 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
|
3513 and similar functions. */ |
|
756c28377036
(Fx_create_frame): Clear Vwindow_list.
Gerd Moellmann <gerd@gnu.org>
parents:
36459
diff
changeset
|
3514 Vwindow_list = Qnil; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3515 |
|
5671
5c597b8fbabe
Find lwlib.h in ../lwlib.
Richard M. Stallman <rms@gnu.org>
parents:
5558
diff
changeset
|
3516 return unbind_to (count, frame); |
| 389 | 3517 } |
| 3518 | |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
3519 |
|
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3520 /* 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
|
3521 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
|
3522 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
|
3523 |
|
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3524 Lisp_Object |
|
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3525 x_get_focus_frame (frame) |
|
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3526 struct frame *frame; |
|
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3527 { |
|
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3528 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
|
3529 Lisp_Object xfocus; |
|
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3530 if (! dpyinfo->x_focus_frame) |
|
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3531 return Qnil; |
|
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3532 |
|
11537
9d4df3cf95b3
(x_get_focus_frame): New arg FRAME. Callers changed.
Karl Heuer <kwzh@gnu.org>
parents:
11496
diff
changeset
|
3533 XSETFRAME (xfocus, dpyinfo->x_focus_frame); |
|
6485
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3534 return xfocus; |
|
b0825eef18b1
(x_get_focus_frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6480
diff
changeset
|
3535 } |
|
3048
96ff8e5744b2
* xfns.c (select_visual): Include the screen number in the
Jim Blandy <jimb@redhat.com>
parents:
3015
diff
changeset
|
3536 |
|
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3537 |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3538 /* 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
|
3539 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
|
3540 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
|
3541 |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3542 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
|
3543 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
|
3544 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
|
3545 following a user-command. */ |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3546 |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3547 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
|
3548 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
|
3549 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
|
3550 (frame) |
|
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3551 Lisp_Object frame; |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3552 { |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3553 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
|
3554 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
|
3555 |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3556 BLOCK_INPUT; |
|
69152
f2147c1027b6
* xterm.h (x_catch_errors) Return value changed to void.
Chong Yidong <cyd@stupidchicken.com>
parents:
69065
diff
changeset
|
3557 x_catch_errors (dpy); |
|
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3558 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
|
3559 RevertToParent, CurrentTime); |
|
81947
f0ff13637b00
(Fx_focus_frame): Call x_ewmh_activate_frame
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
81375
diff
changeset
|
3560 x_ewmh_activate_frame (f); |
|
69173
fdee8318ddc9
* xterm.h, xterm.c (x_uncatch_errors): Delete unneccessary
Chong Yidong <cyd@stupidchicken.com>
parents:
69152
diff
changeset
|
3561 x_uncatch_errors (); |
|
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3562 UNBLOCK_INPUT; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3563 |
|
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3564 return Qnil; |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3565 } |
|
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3566 |
|
3048
96ff8e5744b2
* xfns.c (select_visual): Include the screen number in the
Jim Blandy <jimb@redhat.com>
parents:
3015
diff
changeset
|
3567 |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3568 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
|
3569 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
|
3570 (color, frame) |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3571 Lisp_Object color, frame; |
| 389 | 3572 { |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3573 XColor foo; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3574 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
|
3575 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3576 CHECK_STRING (color); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3577 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3578 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
|
3579 return Qt; |
|
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3580 else |
|
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3581 return Qnil; |
|
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3582 } |
|
1fe413b0a916
(defined_color): New arg ALLOC--optionally don't allocate the color.
Richard M. Stallman <rms@gnu.org>
parents:
8655
diff
changeset
|
3583 |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3584 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
|
3585 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
|
3586 (color, frame) |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3587 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
|
3588 { |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3589 XColor foo; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3590 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
|
3591 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
3592 CHECK_STRING (color); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3593 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
3594 if (x_defined_color (f, SDATA (color), &foo, 0)) |
|
72529
892ea79efee6
(Fxw_color_values): Simplify; use list3.
Kim F. Storm <storm@cua.dk>
parents:
71993
diff
changeset
|
3595 return list3 (make_number (foo.red), |
|
892ea79efee6
(Fxw_color_values): Simplify; use list3.
Kim F. Storm <storm@cua.dk>
parents:
71993
diff
changeset
|
3596 make_number (foo.green), |
|
892ea79efee6
(Fxw_color_values): Simplify; use list3.
Kim F. Storm <storm@cua.dk>
parents:
71993
diff
changeset
|
3597 make_number (foo.blue)); |
| 389 | 3598 else |
| 3599 return Qnil; | |
| 3600 } | |
| 3601 | |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
3602 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
|
3603 doc: /* Internal function called by `display-color-p', which see. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3604 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3605 Lisp_Object terminal; |
| 389 | 3606 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3607 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3608 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3609 if (dpyinfo->n_planes <= 2) |
| 389 | 3610 return Qnil; |
| 3611 | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3612 switch (dpyinfo->visual->class) |
| 389 | 3613 { |
| 3614 case StaticColor: | |
| 3615 case PseudoColor: | |
| 3616 case TrueColor: | |
| 3617 case DirectColor: | |
| 3618 return Qt; | |
| 3619 | |
| 3620 default: | |
| 3621 return Qnil; | |
| 3622 } | |
| 3623 } | |
| 3624 | |
|
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3625 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
|
3626 0, 1, 0, |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3627 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
|
3628 Note that color displays do support shades of gray. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3629 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3630 TERMINAL should be a terminal object, 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
|
3631 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3632 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3633 Lisp_Object terminal; |
|
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3634 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3635 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3636 |
|
12347
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3637 if (dpyinfo->n_planes <= 1) |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3638 return Qnil; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3639 |
|
12347
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3640 switch (dpyinfo->visual->class) |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3641 { |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3642 case StaticColor: |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3643 case PseudoColor: |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3644 case TrueColor: |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3645 case DirectColor: |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3646 case StaticGray: |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3647 case GrayScale: |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3648 return Qt; |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3649 |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3650 default: |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3651 return Qnil; |
|
0731c1ec96ad
(Fx_display_grayscale_p): Return t or nil.
Richard M. Stallman <rms@gnu.org>
parents:
12316
diff
changeset
|
3652 } |
|
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3653 } |
|
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
3654 |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3655 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
|
3656 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3657 doc: /* Return the width in pixels of the X display TERMINAL. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3658 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3659 TERMINAL should be a terminal object, a frame or a display name (a string). |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
3660 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3661 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3662 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3663 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3664 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3665 |
|
98223
033f7f08bc55
(Fx_display_pixel_width, Fx_display_pixel_height)
Chong Yidong <cyd@stupidchicken.com>
parents:
97142
diff
changeset
|
3666 return make_number (x_display_pixel_width (dpyinfo)); |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3667 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3668 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3669 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
|
3670 Sx_display_pixel_height, 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3671 doc: /* Return the height in pixels of the X display TERMINAL. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3672 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3673 TERMINAL should be a terminal object, 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
|
3674 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3675 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3676 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3677 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3678 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3679 |
|
98223
033f7f08bc55
(Fx_display_pixel_width, Fx_display_pixel_height)
Chong Yidong <cyd@stupidchicken.com>
parents:
97142
diff
changeset
|
3680 return make_number (x_display_pixel_height (dpyinfo)); |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3681 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3682 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3683 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
|
3684 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3685 doc: /* Return the number of bitplanes of the X display TERMINAL. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3686 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3687 TERMINAL should be a terminal object, 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
|
3688 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3689 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3690 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3691 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3692 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3693 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3694 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
|
3695 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3696 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3697 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
|
3698 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3699 doc: /* Return the number of color cells of the X display TERMINAL. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3700 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3701 TERMINAL should be a terminal object, 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
|
3702 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3703 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3704 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3705 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3706 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3707 |
|
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
|
3708 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
|
3709 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
|
3710 |
|
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
|
3711 /* 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
|
3712 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
|
3713 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
|
3714 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
|
3715 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
|
3716 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
|
3717 |
|
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
|
3718 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
|
3719 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3720 |
| 4279 | 3721 DEFUN ("x-server-max-request-size", Fx_server_max_request_size, |
| 3722 Sx_server_max_request_size, | |
|
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3723 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3724 doc: /* Return the maximum request size of the X server of display TERMINAL. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3725 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3726 TERMINAL should be a terminal object, 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
|
3727 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3728 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3729 Lisp_Object terminal; |
| 4279 | 3730 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3731 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3732 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3733 return make_number (MAXREQUEST (dpyinfo->display)); |
| 4279 | 3734 } |
| 3735 | |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3736 DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3737 doc: /* Return the "vendor ID" string of the X server of display TERMINAL. |
|
57765
77c93cbb1721
(Fx_server_vendor, Fx_server_version): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
57714
diff
changeset
|
3738 \(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
|
3739 that operating systems cannot be developed and distributed noncommercially.) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3740 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3741 TERMINAL should be a terminal object, 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
|
3742 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3743 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3744 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3745 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3746 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3747 char *vendor = ServerVendor (dpyinfo->display); |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3748 |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3749 if (! vendor) vendor = ""; |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3750 return build_string (vendor); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3751 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3752 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3753 DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3754 doc: /* Return the version numbers of the X server of display TERMINAL. |
|
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3755 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
|
3756 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
|
3757 number. See also the function `x-server-vendor'. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3758 |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3759 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3760 TERMINAL should be a terminal object, 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
|
3761 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3762 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3763 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3764 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3765 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3766 Display *dpy = dpyinfo->display; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3767 |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3768 return Fcons (make_number (ProtocolVersion (dpy)), |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3769 Fcons (make_number (ProtocolRevision (dpy)), |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3770 Fcons (make_number (VendorRelease (dpy)), Qnil))); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3771 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3772 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3773 DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0, |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3774 doc: /* Return the number of screens on the X server of display TERMINAL. |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3775 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3776 TERMINAL should be a terminal object, 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
|
3777 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3778 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3779 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3780 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3781 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3782 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3783 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
|
3784 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3785 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3786 DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0, |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3787 doc: /* Return the height in millimeters of the X display TERMINAL. |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3788 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3789 TERMINAL should be a terminal object, 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
|
3790 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3791 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3792 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3793 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3794 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3795 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3796 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
|
3797 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3798 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3799 DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0, |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3800 doc: /* Return the width in millimeters of the X display TERMINAL. |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3801 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3802 TERMINAL should be a terminal object, 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
|
3803 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3804 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3805 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3806 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3807 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3808 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3809 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
|
3810 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3811 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3812 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
|
3813 Sx_display_backing_store, 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3814 doc: /* Return an indication of whether X display TERMINAL does backing store. |
|
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3815 The value may be `always', `when-mapped', or `not-useful'. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3816 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3817 TERMINAL should be a terminal object, 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
|
3818 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3819 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3820 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3821 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3822 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3823 Lisp_Object result; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3824 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3825 switch (DoesBackingStore (dpyinfo->screen)) |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3826 { |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3827 case Always: |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3828 result = intern ("always"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3829 break; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3830 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3831 case WhenMapped: |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3832 result = intern ("when-mapped"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3833 break; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3834 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3835 case NotUseful: |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3836 result = intern ("not-useful"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3837 break; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3838 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3839 default: |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3840 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
|
3841 result = Qnil; |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3842 } |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3843 |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3844 return result; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3845 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3846 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3847 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
|
3848 Sx_display_visual_class, 0, 1, 0, |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3849 doc: /* Return the visual class of the X display TERMINAL. |
|
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3850 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
|
3851 `static-color', `pseudo-color', `true-color', or `direct-color'. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
3852 |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3853 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3854 TERMINAL should a terminal object, 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
|
3855 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3856 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3857 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3858 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3859 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3860 Lisp_Object result; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3861 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3862 switch (dpyinfo->visual->class) |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3863 { |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3864 case StaticGray: |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3865 result = intern ("static-gray"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3866 break; |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3867 case GrayScale: |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3868 result = intern ("gray-scale"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3869 break; |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3870 case StaticColor: |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3871 result = intern ("static-color"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3872 break; |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3873 case PseudoColor: |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3874 result = intern ("pseudo-color"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3875 break; |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3876 case TrueColor: |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3877 result = intern ("true-color"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3878 break; |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3879 case DirectColor: |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3880 result = intern ("direct-color"); |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3881 break; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3882 default: |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3883 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
|
3884 result = Qnil; |
|
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3885 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
3886 |
|
31543
9c5e42fa3ba5
(png_load, jpeg_load): Declare some variables volatile
Gerd Moellmann <gerd@gnu.org>
parents:
30601
diff
changeset
|
3887 return result; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3888 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3889 |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3890 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
|
3891 Sx_display_save_under, 0, 1, 0, |
|
86073
0e4c465d1806
(Fx_create_frame, Fx_display_pixel_width, Fx_display_pixel_height,
Juanma Barranquero <lekktu@gmail.com>
parents:
85875
diff
changeset
|
3892 doc: /* Return t if the X display TERMINAL supports the save-under feature. |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3893 The optional argument TERMINAL specifies which display to ask about. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
3894 TERMINAL should be a terminal object, 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
|
3895 If omitted or nil, that stands for the selected frame's display. */) |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3896 (terminal) |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3897 Lisp_Object terminal; |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3898 { |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
3899 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3900 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3901 if (DoesSaveUnders (dpyinfo->screen) == True) |
|
2276
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3902 return Qt; |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3903 else |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3904 return Qnil; |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3905 } |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
3906 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3907 int |
|
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3908 x_pixel_width (f) |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3909 register struct frame *f; |
| 389 | 3910 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3911 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
|
3912 } |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3913 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3914 int |
|
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3915 x_pixel_height (f) |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3916 register struct frame *f; |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3917 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3918 return FRAME_PIXEL_HEIGHT (f); |
| 389 | 3919 } |
| 3920 | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3921 int |
|
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3922 x_char_width (f) |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3923 register struct frame *f; |
| 389 | 3924 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3925 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
|
3926 } |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3927 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3928 int |
|
2067
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3929 x_char_height (f) |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3930 register struct frame *f; |
|
0a353ddd4bf4
(Fx_pixel_width, Fx_pixel_height): Fns deleted.
Richard M. Stallman <rms@gnu.org>
parents:
1994
diff
changeset
|
3931 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
3932 return FRAME_LINE_HEIGHT (f); |
| 389 | 3933 } |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3934 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3935 int |
|
19825
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3936 x_screen_planes (f) |
|
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3937 register struct frame *f; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
3938 { |
|
19825
cdfaf8ce5208
(x_screen_planes): Fix type of argument.
Richard M. Stallman <rms@gnu.org>
parents:
19095
diff
changeset
|
3939 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
|
3940 } |
|
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
3941 |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3942 |
| 389 | 3943 |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3944 /************************************************************************ |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3945 X Displays |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3946 ************************************************************************/ |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3947 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3948 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3949 /* Mapping visual names to visuals. */ |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3950 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3951 static struct visual_class |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3952 { |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3953 char *name; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3954 int class; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3955 } |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3956 visual_classes[] = |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3957 { |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3958 {"StaticGray", StaticGray}, |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3959 {"GrayScale", GrayScale}, |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3960 {"StaticColor", StaticColor}, |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3961 {"PseudoColor", PseudoColor}, |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3962 {"TrueColor", TrueColor}, |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3963 {"DirectColor", DirectColor}, |
|
42123
7f5f06b97bfc
(x_frame_parms): Add missing braces around initializer.
Pavel Jan?k <Pavel@Janik.cz>
parents:
42006
diff
changeset
|
3964 {NULL, 0} |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3965 }; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3966 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3967 |
|
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3968 #ifndef HAVE_XSCREENNUMBEROFSCREEN |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3969 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3970 /* 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
|
3971 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
|
3972 |
|
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3973 int |
|
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3974 XScreenNumberOfScreen (scr) |
|
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3975 register Screen *scr; |
|
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3976 { |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3977 Display *dpy = scr->display; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3978 int i; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3979 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3980 for (i = 0; i < dpy->nscreens; ++i) |
|
40325
2eb0395c1697
(XScreenNumberOfScreen): Fix struct to pointer
Gerd Moellmann <gerd@gnu.org>
parents:
40279
diff
changeset
|
3981 if (scr == dpy->screens + i) |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3982 break; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3983 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3984 return i; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3985 } |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3986 |
|
4606
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3987 #endif /* not HAVE_XSCREENNUMBEROFSCREEN */ |
|
0866f021a2cc
(XScreenNumberOfScreen): New function.
Richard M. Stallman <rms@gnu.org>
parents:
4571
diff
changeset
|
3988 |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3989 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3990 /* 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
|
3991 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
|
3992 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3993 void |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3994 select_visual (dpyinfo) |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3995 struct x_display_info *dpyinfo; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3996 { |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3997 Display *dpy = dpyinfo->display; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3998 Screen *screen = dpyinfo->screen; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
3999 Lisp_Object value; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4000 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4001 /* See if a visual is specified. */ |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4002 value = display_x_get_resource (dpyinfo, |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4003 build_string ("visualClass"), |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4004 build_string ("VisualClass"), |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4005 Qnil, Qnil); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4006 if (STRINGP (value)) |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4007 { |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4008 /* 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
|
4009 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
|
4010 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
|
4011 char *s = (char *) alloca (SBYTES (value) + 1); |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4012 char *dash; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4013 int i, class = -1; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4014 XVisualInfo vinfo; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4015 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4016 strcpy (s, SDATA (value)); |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4017 dash = index (s, '-'); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4018 if (dash) |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4019 { |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4020 dpyinfo->n_planes = atoi (dash + 1); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4021 *dash = '\0'; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4022 } |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4023 else |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4024 /* 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
|
4025 an error will be printed below. */ |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4026 dpyinfo->n_planes = 0; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4027 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4028 /* Determine the visual class. */ |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4029 for (i = 0; visual_classes[i].name; ++i) |
|
95221
063d15c54b69
* dispextern.h, xfaces.c (xstrcasecmp): Renamed from xstricmp.
Jason Rumney <jasonr@gnu.org>
parents:
95159
diff
changeset
|
4030 if (xstrcasecmp (s, visual_classes[i].name) == 0) |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4031 { |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4032 class = visual_classes[i].class; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4033 break; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4034 } |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4035 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4036 /* 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
|
4037 if (class == -1 |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4038 || !XMatchVisualInfo (dpy, XScreenNumberOfScreen (screen), |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4039 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
|
4040 fatal ("Invalid visual specification `%s'", SDATA (value)); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4041 |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4042 dpyinfo->visual = vinfo.visual; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4043 } |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4044 else |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4045 { |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4046 int n_visuals; |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4047 XVisualInfo *vinfo, vinfo_template; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4048 |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4049 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
|
4050 |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4051 vinfo_template.visualid = XVisualIDFromVisual (dpyinfo->visual); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4052 vinfo_template.screen = XScreenNumberOfScreen (screen); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4053 vinfo = XGetVisualInfo (dpy, VisualIDMask | VisualScreenMask, |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4054 &vinfo_template, &n_visuals); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4055 if (n_visuals != 1) |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4056 fatal ("Can't get proper X visual info"); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4057 |
|
28199
56a776500341
* xfns.c (select_visual): Don't set dpyinfo->n_planes to the
Gerd Moellmann <gerd@gnu.org>
parents:
28144
diff
changeset
|
4058 dpyinfo->n_planes = vinfo->depth; |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4059 XFree ((char *) vinfo); |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4060 } |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4061 } |
|
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4062 |
| 389 | 4063 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4064 /* 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
|
4065 Open a new connection if necessary. */ |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4066 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4067 struct x_display_info * |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4068 x_display_info_for_name (name) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4069 Lisp_Object name; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4070 { |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4071 Lisp_Object names; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4072 struct x_display_info *dpyinfo; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4073 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4074 CHECK_STRING (name); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4075 |
|
83014
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4076 #if 0 |
|
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4077 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
|
4078 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
|
4079 #endif |
|
12381
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
4080 |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4081 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
|
4082 dpyinfo; |
|
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
4083 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
|
4084 { |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4085 Lisp_Object tem; |
|
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
4086 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
|
4087 if (!NILP (tem)) |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4088 return dpyinfo; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4089 } |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4090 |
|
11917
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
4091 /* 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
|
4092 Vx_resource_name = Vinvocation_name; |
|
2314b62ca4ab
(Fx_get_resource): Major rewrite to make it clearer.
Karl Heuer <kwzh@gnu.org>
parents:
11900
diff
changeset
|
4093 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4094 validate_x_resource_name (); |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4095 |
|
34976
05c36b1fa618
(x_display_info_for_name): Cast 0 to "char *" in the call
Eli Zaretskii <eliz@gnu.org>
parents:
34911
diff
changeset
|
4096 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
|
4097 (char *) SDATA (Vx_resource_name)); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4098 |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4099 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
|
4100 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
|
4101 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4102 x_in_use = 1; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4103 XSETFASTINT (Vwindow_system_version, 11); |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4104 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4105 return dpyinfo; |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4106 } |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4107 |
|
27993
3a34e2d1bf3c
(select_visual): Rewritten. Recognize user-specified
Gerd Moellmann <gerd@gnu.org>
parents:
27987
diff
changeset
|
4108 |
| 389 | 4109 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
|
4110 1, 3, 0, |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4111 doc: /* Open a connection to an X server. |
|
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4112 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
|
4113 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
|
4114 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
|
4115 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
|
4116 (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
|
4117 Lisp_Object display, xrm_string, must_succeed; |
| 389 | 4118 { |
| 4119 unsigned char *xrm_option; | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4120 struct x_display_info *dpyinfo; |
| 389 | 4121 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4122 CHECK_STRING (display); |
|
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4123 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
|
4124 CHECK_STRING (xrm_string); |
| 389 | 4125 |
|
83014
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4126 #if 0 |
|
f5cadabb36dd
Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents:
83004
diff
changeset
|
4127 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
|
4128 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
|
4129 #endif |
|
12381
67cb86bbdb55
(Fx_open_connection, x_display_info_for_name):
Richard M. Stallman <rms@gnu.org>
parents:
12347
diff
changeset
|
4130 |
|
4146
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4131 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
|
4132 xrm_option = (unsigned char *) SDATA (xrm_string); |
| 389 | 4133 else |
| 4134 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
|
4135 |
|
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4136 validate_x_resource_name (); |
|
0c681748d0ce
* xfns.c (Fx_open_connection): Don't trust HAVE_XRMSETDATABASE;
Jim Blandy <jimb@redhat.com>
parents:
3923
diff
changeset
|
4137 |
|
7802
d687e885fa6a
(Fx_open_connection): Set up Vx_resource_name and xrm_option
Richard M. Stallman <rms@gnu.org>
parents:
7797
diff
changeset
|
4138 /* 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
|
4139 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
|
4140 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
|
4141 (char *) SDATA (Vx_resource_name)); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4142 |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4143 if (dpyinfo == 0) |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4144 { |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4145 if (!NILP (must_succeed)) |
| 39907 | 4146 fatal ("Cannot connect to X server %s.\n\ |
| 4147 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
|
4148 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
|
4149 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
|
4150 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
|
4151 SDATA (display)); |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4152 else |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4153 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
|
4154 } |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4155 |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4156 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
|
4157 |
|
9327
b3398cf56fba
(Fx_open_connection): Don't use XFASTINT as an lvalue.
Karl Heuer <kwzh@gnu.org>
parents:
9285
diff
changeset
|
4158 XSETFASTINT (Vwindow_system_version, 11); |
| 389 | 4159 return Qnil; |
| 4160 } | |
| 4161 | |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4162 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
|
4163 Sx_close_connection, 1, 1, 0, |
|
83442
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4164 doc: /* Close the connection to TERMINAL's X server. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
4165 For TERMINAL, specify a terminal object, a frame or a display name (a |
|
83442
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4166 string). If TERMINAL is nil, that stands for the selected frame's |
|
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4167 terminal. */) |
|
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4168 (terminal) |
|
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4169 Lisp_Object terminal; |
| 389 | 4170 { |
|
83442
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4171 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4172 |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4173 if (dpyinfo->reference_count > 0) |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4174 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
|
4175 |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
4176 x_delete_terminal (dpyinfo->terminal); |
|
8782
51241477cfc5
Delete X11 conditionals.
Richard M. Stallman <rms@gnu.org>
parents:
8780
diff
changeset
|
4177 |
| 389 | 4178 return Qnil; |
| 4179 } | |
| 4180 | |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4181 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
|
4182 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
|
4183 () |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4184 { |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4185 Lisp_Object tail, result; |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4186 |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4187 result = Qnil; |
|
85330
0bc184c59770
* xfns.c (Fx_create_frame, Fx_display_list):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
85311
diff
changeset
|
4188 for (tail = x_display_name_list; CONSP (tail); tail = XCDR (tail)) |
|
25646
9154af188477
Use XCAR and XCDR instead of explicit member references.
Ken Raeburn <raeburn@raeburn.org>
parents:
25628
diff
changeset
|
4189 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
|
4190 |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4191 return result; |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4192 } |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4193 |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
4194 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
|
4195 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
|
4196 If ON is nil, allow buffering of requests. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4197 Turning on synchronization prohibits the Xlib routines from buffering |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4198 requests and seriously degrades performance, but makes debugging much |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
4199 easier. |
|
83442
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4200 The optional second argument TERMINAL specifies which display to act on. |
|
103052
e68707cf48a5
* keyboard.c (Fset_input_meta_mode): Doc fix.
Chong Yidong <cyd@stupidchicken.com>
parents:
102108
diff
changeset
|
4201 TERMINAL should be a terminal object, a frame or a display name (a string). |
|
83442
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4202 If TERMINAL is omitted or nil, that stands for the selected frame's display. */) |
|
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4203 (on, terminal) |
|
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4204 Lisp_Object terminal, on; |
| 389 | 4205 { |
|
83442
db27bb9f0d2f
Cosmetic fixes in xfns.c.
Karoly Lorentey <lorentey@elte.hu>
parents:
83431
diff
changeset
|
4206 struct x_display_info *dpyinfo = check_x_display_info (terminal); |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4207 |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4208 XSynchronize (dpyinfo->display, !EQ (on, Qnil)); |
| 389 | 4209 |
| 4210 return Qnil; | |
| 4211 } | |
| 4212 | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4213 /* Wait for responses to all X commands issued so far for frame F. */ |
| 5536 | 4214 |
| 4215 void | |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4216 x_sync (f) |
|
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4217 FRAME_PTR f; |
| 5536 | 4218 { |
| 5558 | 4219 BLOCK_INPUT; |
|
9653
cfc5e15e0baf
(x_sync): Take frame ptr as arg.
Richard M. Stallman <rms@gnu.org>
parents:
9580
diff
changeset
|
4220 XSync (FRAME_X_DISPLAY (f), False); |
| 5558 | 4221 UNBLOCK_INPUT; |
| 5536 | 4222 } |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4223 |
| 389 | 4224 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4225 /*********************************************************************** |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4226 Window properties |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4227 ***********************************************************************/ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4228 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4229 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
|
4230 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
|
4231 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
|
4232 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
|
4233 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
|
4234 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
|
4235 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
|
4236 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
|
4237 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
|
4238 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
|
4239 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
|
4240 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
|
4241 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
|
4242 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
|
4243 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
|
4244 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
|
4245 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
|
4246 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4247 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
|
4248 (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
|
4249 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
|
4250 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4251 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
|
4252 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
|
4253 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
|
4254 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
|
4255 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
|
4256 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
|
4257 Window w; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4258 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4259 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
|
4260 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4261 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
|
4262 { |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4263 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
|
4264 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
|
4265 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4266 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
|
4267 && 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
|
4268 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
|
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 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4271 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
|
4272 { |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4273 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
|
4274 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
|
4275 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
|
4276 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4277 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
|
4278 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
|
4279 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
|
4280 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
|
4281 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
|
4282 /* 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
|
4283 "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
|
4284 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
|
4285 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
|
4286 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
|
4287 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
|
4288 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4289 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
|
4290 } |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4291 else |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4292 { |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4293 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
|
4294 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
|
4295 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
|
4296 } |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4297 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4298 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
|
4299 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
|
4300 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
|
4301 { |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4302 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
|
4303 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
|
4304 } |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4305 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4306 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
|
4307 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
|
4308 |
|
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4309 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
|
4310 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
|
4311 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
|
4312 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4313 if (CONSP (value)) xfree (data); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4314 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4315 /* 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
|
4316 XFlush (FRAME_X_DISPLAY (f)); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4317 UNBLOCK_INPUT; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4318 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4319 return value; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4320 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4321 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4322 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4323 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
|
4324 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
|
4325 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
|
4326 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
|
4327 (prop, frame) |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4328 Lisp_Object prop, frame; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4329 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4330 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
|
4331 Atom prop_atom; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4332 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4333 CHECK_STRING (prop); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4334 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
|
4335 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
|
4336 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
|
4337 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4338 /* 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
|
4339 XFlush (FRAME_X_DISPLAY (f)); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4340 UNBLOCK_INPUT; |
|
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 return prop; |
|
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 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4346 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
|
4347 1, 6, 0, |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
4348 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
|
4349 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
|
4350 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
|
4351 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
|
4352 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
|
4353 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
|
4354 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
|
4355 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
|
4356 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4357 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
|
4358 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
|
4359 (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
|
4360 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
|
4361 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4362 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
|
4363 Atom prop_atom; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4364 int rc; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4365 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
|
4366 unsigned char *tmp_data = NULL; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4367 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
|
4368 Atom target_type = XA_STRING; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4369 int actual_format; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4370 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
|
4371 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
|
4372 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
|
4373 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4374 GCPRO1 (prop_value); |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
4375 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
|
4376 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4377 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
|
4378 { |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4379 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
|
4380 { |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4381 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
|
4382 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
|
4383 else |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4384 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
|
4385 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4386 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
|
4387 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
|
4388 } |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4389 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
|
4390 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
|
4391 } |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4392 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4393 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
|
4394 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
|
4395 { |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4396 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
|
4397 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
|
4398 else |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4399 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
|
4400 } |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4401 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
4402 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
|
4403 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
|
4404 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
|
4405 &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
|
4406 &bytes_remaining, &tmp_data); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4407 if (rc == Success) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4408 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4409 int size = bytes_remaining; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4410 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4411 XFree (tmp_data); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4412 tmp_data = NULL; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4413 |
|
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4414 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
|
4415 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
|
4416 ! NILP (delete_p), target_type, |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4417 &actual_type, &actual_format, |
|
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4418 &actual_size, &bytes_remaining, |
|
60133
cfda6afe9273
(hack_wm_protocols): Use correct type for last parameter
Andreas Schwab <schwab@suse.de>
parents:
59980
diff
changeset
|
4419 &tmp_data); |
|
39277
df33715cdcf8
(Fx_window_property): Handle case that property gets
Gerd Moellmann <gerd@gnu.org>
parents:
39159
diff
changeset
|
4420 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
|
4421 { |
|
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
|
4422 /* 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
|
4423 "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
|
4424 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
|
4425 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
|
4426 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
|
4427 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
|
4428 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
|
4429 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
|
4430 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
|
4431 |
|
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
|
4432 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
|
4433 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
|
4434 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
|
4435 |
|
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
|
4436 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
|
4437 { |
|
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
|
4438 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
|
4439 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
|
4440 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
|
4441 |
|
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
|
4442 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
|
4443 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
|
4444 } |
|
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
|
4445 |
|
53787
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4446 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
|
4447 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
|
4448 else |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4449 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
|
4450 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
|
4451 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
|
4452 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
|
4453 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
|
4454 } |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4455 |
|
b8e5f3d01bb6
* xfns.c (x-send-client-message): Moved to xselect.c
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
53335
diff
changeset
|
4456 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
|
4457 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4458 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4459 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
|
4460 UNGCPRO; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4461 return prop_value; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4462 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4463 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4464 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4465 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4466 /*********************************************************************** |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4467 Busy cursor |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4468 ***********************************************************************/ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4469 |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4470 /* 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
|
4471 hourglass_atimer. |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4472 |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4473 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
|
4474 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
|
4475 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
|
4476 shown on the frames. */ |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4477 |
|
96664
b306a69b9d7f
applying patch to consolidate non-GUI portion of hourglass implementation as posted at http://thread.gmane.org/gmane.emacs.devel/98341
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
96574
diff
changeset
|
4478 void |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4479 show_hourglass (timer) |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4480 struct atimer *timer; |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4481 { |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4482 /* 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
|
4483 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
|
4484 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
|
4485 hourglass_atimer = NULL; |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4486 |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4487 if (!hourglass_shown_p) |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4488 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4489 Lisp_Object rest, frame; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4490 |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4491 BLOCK_INPUT; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4492 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4493 FOR_EACH_FRAME (rest, frame) |
|
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4494 { |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4495 struct frame *f = XFRAME (frame); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4496 |
|
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4497 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
|
4498 { |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4499 Display *dpy = FRAME_X_DISPLAY (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4500 |
|
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4501 #ifdef USE_X_TOOLKIT |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4502 if (f->output_data.x->widget) |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4503 #else |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4504 if (FRAME_OUTER_WINDOW (f)) |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4505 #endif |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4506 { |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4507 f->output_data.x->hourglass_p = 1; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4508 |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4509 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
|
4510 { |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4511 unsigned long mask = CWCursor; |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4512 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
|
4513 #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
|
4514 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
|
4515 #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
|
4516 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
|
4517 #endif |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4518 attrs.cursor = f->output_data.x->hourglass_cursor; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4519 |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4520 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
|
4521 = XCreateWindow (dpy, parent, |
|
34662
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4522 0, 0, 32000, 32000, 0, 0, |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4523 InputOnly, |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4524 CopyFromParent, |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4525 mask, &attrs); |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4526 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4527 |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4528 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
|
4529 XFlush (dpy); |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4530 } |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4531 } |
|
d8005f5e0a23
(show_busy_cursor): Check for live frames more
Gerd Moellmann <gerd@gnu.org>
parents:
34638
diff
changeset
|
4532 } |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4533 |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4534 hourglass_shown_p = 1; |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4535 UNBLOCK_INPUT; |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4536 } |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4537 } |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4538 |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4539 |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4540 /* 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
|
4541 shown. */ |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4542 |
|
96664
b306a69b9d7f
applying patch to consolidate non-GUI portion of hourglass implementation as posted at http://thread.gmane.org/gmane.emacs.devel/98341
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
96574
diff
changeset
|
4543 void |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4544 hide_hourglass () |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4545 { |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4546 if (hourglass_shown_p) |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4547 { |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4548 Lisp_Object rest, frame; |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4549 |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4550 BLOCK_INPUT; |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4551 FOR_EACH_FRAME (rest, frame) |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4552 { |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4553 struct frame *f = XFRAME (frame); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4554 |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4555 if (FRAME_X_P (f) |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4556 /* Watch out for newly created frames. */ |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4557 && f->output_data.x->hourglass_window) |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4558 { |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4559 XUnmapWindow (FRAME_X_DISPLAY (f), |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4560 f->output_data.x->hourglass_window); |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4561 /* 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
|
4562 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
|
4563 XSync (FRAME_X_DISPLAY (f), False); |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4564 f->output_data.x->hourglass_p = 0; |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4565 } |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4566 } |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4567 |
|
36252
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
4568 hourglass_shown_p = 0; |
|
27864
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4569 UNBLOCK_INPUT; |
|
ea05cbe65943
(inhibit_busy_cursor, busy_count): Removed.
Gerd Moellmann <gerd@gnu.org>
parents:
27798
diff
changeset
|
4570 } |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4571 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4572 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4573 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4574 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4575 /*********************************************************************** |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4576 Tool tips |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4577 ***********************************************************************/ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4578 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4579 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
|
4580 Lisp_Object, Lisp_Object)); |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4581 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
|
4582 Lisp_Object, int, int, int *, int *)); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4583 |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4584 /* 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
|
4585 |
|
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4586 Lisp_Object tip_frame; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4587 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4588 /* 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
|
4589 fires. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4590 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4591 Lisp_Object tip_timer; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4592 Window tip_window; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4593 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4594 /* 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
|
4595 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
|
4596 |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4597 Lisp_Object last_show_tip_args; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4598 |
|
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4599 /* Maximum size for tooltips; a cons (COLUMNS . ROWS). */ |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4600 |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4601 Lisp_Object Vx_max_tooltip_size; |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4602 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4603 |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4604 static Lisp_Object |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4605 unwind_create_tip_frame (frame) |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4606 Lisp_Object frame; |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4607 { |
|
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4608 Lisp_Object deleted; |
|
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4609 |
|
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4610 deleted = unwind_create_frame (frame); |
|
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4611 if (EQ (deleted, Qt)) |
|
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4612 { |
|
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4613 tip_window = None; |
|
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4614 tip_frame = Qnil; |
|
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4615 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4616 |
|
34638
abb4510a89f6
(unwind_create_frame): Return t if frame was deleted.
Gerd Moellmann <gerd@gnu.org>
parents:
34598
diff
changeset
|
4617 return deleted; |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4618 } |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4619 |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4620 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4621 /* 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
|
4622 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
|
4623 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
|
4624 |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4625 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
|
4626 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
|
4627 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
|
4628 when this happens. */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4629 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4630 static Lisp_Object |
|
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4631 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
|
4632 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
|
4633 Lisp_Object parms, text; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4634 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4635 struct frame *f; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4636 Lisp_Object frame, tem; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4637 Lisp_Object name; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4638 long window_prompting = 0; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4639 int width, height; |
|
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
4640 int count = SPECPDL_INDEX (); |
|
25715
feaedc03dbc8
(x_set_background_color): Remove unused variable(s).
Gerd Moellmann <gerd@gnu.org>
parents:
25691
diff
changeset
|
4641 struct gcpro gcpro1, gcpro2, gcpro3; |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4642 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
|
4643 Lisp_Object buffer; |
|
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4644 struct buffer *old_buffer; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4645 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4646 check_x (); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4647 |
|
84685
502394270fc6
(x_delete_terminal): Use terminal->name as liveness status.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83760
diff
changeset
|
4648 if (!dpyinfo->terminal->name) |
|
502394270fc6
(x_delete_terminal): Use terminal->name as liveness status.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
83760
diff
changeset
|
4649 error ("Terminal is not live, can't create new frames on it"); |
|
83525
b2e7507b55c6
Fix C-x 5 2 on the controlling tty; fix some possible crash conditions and a memory leak.
Karoly Lorentey <lorentey@elte.hu>
parents:
83505
diff
changeset
|
4650 |
|
69404
26f292c725f1
(x_create_tip_frame): Preserve received parms by copying them.
Eli Zaretskii <eliz@gnu.org>
parents:
69173
diff
changeset
|
4651 parms = Fcopy_alist (parms); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4652 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4653 /* 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
|
4654 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
|
4655 if (!STRINGP (name) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4656 && !EQ (name, Qunbound) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4657 && !NILP (name)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4658 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
|
4659 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4660 frame = Qnil; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4661 GCPRO3 (parms, name, frame); |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
4662 f = make_frame (1); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4663 XSETFRAME (frame, f); |
|
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4664 |
|
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4665 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
|
4666 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
|
4667 old_buffer = current_buffer; |
|
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4668 set_buffer_internal_1 (XBUFFER (buffer)); |
|
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
4669 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
|
4670 specbind (Qinhibit_read_only, Qt); |
|
43663119f752
(x_create_tip_frame): Bind inhibit-read-only and
Kenichi Handa <handa@m17n.org>
parents:
54392
diff
changeset
|
4671 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
|
4672 Ferase_buffer (); |
|
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4673 Finsert (1, &text); |
|
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
4674 set_buffer_internal_1 (old_buffer); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4675 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4676 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
|
4677 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
|
4678 |
|
83431
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
4679 f->terminal = dpyinfo->terminal; |
|
76396de7f50a
Rename `struct device' to `struct terminal'. Rename some terminal-related functions similarly.
Karoly Lorentey <lorentey@elte.hu>
parents:
83429
diff
changeset
|
4680 f->terminal->reference_count++; |
|
82990
2ecd1f669db9
Fixed X support, preliminary support for X-tty combo sessions.
Karoly Lorentey <lorentey@elte.hu>
parents:
53339
diff
changeset
|
4681 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4682 /* 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
|
4683 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
|
4684 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
|
4685 counts etc. */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4686 f->output_method = output_x_window; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4687 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
|
4688 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
|
4689 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
|
4690 FRAME_FONTSET (f) = -1; |
|
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4691 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
|
4692 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
|
4693 #ifdef USE_TOOLKIT_SCROLL_BARS |
|
1e12db2b25f0
(x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
Miles Bader <miles@gnu.org>
parents:
39591
diff
changeset
|
4694 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
|
4695 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
|
4696 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4697 f->icon_name = Qnil; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4698 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
|
4699 #if GLYPH_DEBUG |
|
92109
4d9fc08769fa
Consolidate the image_cache to the terminal struct.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91931
diff
changeset
|
4700 image_cache_refcount = FRAME_IMAGE_CACHE (f)->refcount; |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4701 dpyinfo_refcount = dpyinfo->reference_count; |
|
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4702 #endif /* GLYPH_DEBUG */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4703 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
|
4704 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
|
4705 |
|
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4706 /* 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
|
4707 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
|
4708 { |
|
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4709 Lisp_Object black; |
|
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4710 struct gcpro gcpro1; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4711 |
|
83234
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4712 /* 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
|
4713 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
|
4714 to free colors we haven't allocated. */ |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
4715 FRAME_FOREGROUND_PIXEL (f) = -1; |
|
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
4716 FRAME_BACKGROUND_PIXEL (f) = -1; |
|
83234
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4717 f->output_data.x->cursor_pixel = -1; |
|
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4718 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
|
4719 f->output_data.x->border_pixel = -1; |
|
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4720 f->output_data.x->mouse_pixel = -1; |
|
ad592995fd24
Trivial changes in x_create_tip_frame.
Karoly Lorentey <lorentey@elte.hu>
parents:
83231
diff
changeset
|
4721 |
|
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4722 black = build_string ("black"); |
|
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4723 GCPRO1 (black); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
4724 FRAME_FOREGROUND_PIXEL (f) |
|
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4725 = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
|
83504
7aa43f830ce4
Fix tooltip border color.
Karoly Lorentey <lorentey@elte.hu>
parents:
83502
diff
changeset
|
4726 FRAME_BACKGROUND_PIXEL (f) |
|
29882
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4727 = 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
|
4728 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
|
4729 = 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
|
4730 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
|
4731 = 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
|
4732 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
|
4733 = 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
|
4734 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
|
4735 = 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
|
4736 UNGCPRO; |
|
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4737 } |
|
c12b0f070cd1
(x_create_tip_frame): Initialize frame's colors like
Gerd Moellmann <gerd@gnu.org>
parents:
29866
diff
changeset
|
4738 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4739 /* 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
|
4740 be set. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4741 if (EQ (name, Qunbound) || NILP (name)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4742 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4743 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
|
4744 f->explicit_name = 0; |
|
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 else |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4747 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4748 f->name = name; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4749 f->explicit_name = 1; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4750 /* 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
|
4751 specbind (Qx_resource_name, name); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4752 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4753 |
| 90423 | 4754 f->resx = dpyinfo->resx; |
| 4755 f->resy = dpyinfo->resy; | |
| 4756 | |
|
95877
dce1d4eb3ebd
(Fx_create_frame, x_create_tip_frame): Register X
Kenichi Handa <handa@m17n.org>
parents:
95850
diff
changeset
|
4757 register_font_driver (&xfont_driver, f); |
| 90423 | 4758 #ifdef HAVE_FREETYPE |
| 4759 #ifdef HAVE_XFT | |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
4760 register_font_driver (&xftfont_driver, f); |
| 90423 | 4761 #else /* not HAVE_XFT */ |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
4762 register_font_driver (&ftxfont_driver, f); |
| 90423 | 4763 #endif /* not HAVE_XFT */ |
| 4764 #endif /* HAVE_FREETYPE */ | |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
4765 |
|
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
4766 x_default_parameter (f, parms, Qfont_backend, Qnil, |
|
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
4767 "fontBackend", "FontBackend", RES_TYPE_STRING); |
| 90423 | 4768 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4769 /* 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
|
4770 needed to determine window geometry. */ |
|
94939
da7871784939
Throughout the file, delete all USE_FONT_BACKEND
Kenichi Handa <handa@m17n.org>
parents:
92109
diff
changeset
|
4771 x_default_font_parameter (f, parms); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4772 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4773 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
|
4774 "borderWidth", "BorderWidth", RES_TYPE_NUMBER); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4775 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4776 /* 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
|
4777 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
|
4778 it). */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4779 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
|
4780 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4781 Lisp_Object value; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4782 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4783 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
|
4784 "internalBorder", "internalBorder", RES_TYPE_NUMBER); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4785 if (! EQ (value, Qunbound)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4786 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
|
4787 parms); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4788 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4789 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4790 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
|
4791 "internalBorderWidth", "internalBorderWidth", |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4792 RES_TYPE_NUMBER); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4793 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4794 /* 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
|
4795 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
|
4796 "foreground", "Foreground", RES_TYPE_STRING); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4797 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
|
4798 "background", "Background", RES_TYPE_STRING); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4799 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
|
4800 "pointerColor", "Foreground", RES_TYPE_STRING); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4801 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
|
4802 "cursorColor", "Foreground", RES_TYPE_STRING); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4803 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
|
4804 "borderColor", "BorderColor", RES_TYPE_STRING); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4805 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4806 /* 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
|
4807 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
|
4808 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
|
4809 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
|
4810 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
|
4811 happen. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4812 init_frame_faces (f); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4813 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4814 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
|
4815 |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
4816 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
|
4817 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4818 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4819 XSetWindowAttributes attrs; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4820 unsigned long mask; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4821 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4822 BLOCK_INPUT; |
|
33657
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4823 mask = CWBackPixel | CWOverrideRedirect | CWEventMask; |
|
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4824 if (DoesSaveUnders (dpyinfo->screen)) |
|
e9cf01c7cda6
(x_create_tip_frame): Use CWSaveUnder only if the
Gerd Moellmann <gerd@gnu.org>
parents:
33601
diff
changeset
|
4825 mask |= CWSaveUnder; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4826 |
|
27987
ce9edc646960
(x_defined_color, x_set_mouse_color, lookup_rgb_color)
Gerd Moellmann <gerd@gnu.org>
parents:
27963
diff
changeset
|
4827 /* 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
|
4828 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
|
4829 3.2.8). */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4830 attrs.override_redirect = True; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4831 attrs.save_under = True; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4832 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
|
4833 /* 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
|
4834 attrs.event_mask = StructureNotifyMask; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4835 tip_window |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4836 = FRAME_X_WINDOW (f) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4837 = XCreateWindow (FRAME_X_DISPLAY (f), |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4838 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
|
4839 /* x, y, width, height */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4840 0, 0, 1, 1, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4841 /* Border. */ |
|
100820
36e4d4d2137d
(x_create_tip_frame): Set border width of the X window.
Chong Yidong <cyd@stupidchicken.com>
parents:
100632
diff
changeset
|
4842 f->border_width, |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4843 CopyFromParent, InputOutput, CopyFromParent, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4844 mask, &attrs); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4845 UNBLOCK_INPUT; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4846 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4847 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4848 x_make_gc (f); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4849 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4850 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
|
4851 "autoRaise", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4852 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
|
4853 "autoLower", "AutoRaiseLower", RES_TYPE_BOOLEAN); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4854 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
|
4855 "cursorType", "CursorType", RES_TYPE_SYMBOL); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4856 |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4857 /* 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
|
4858 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
|
4859 FRAME_LINES (f). */ |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4860 width = FRAME_COLS (f); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4861 height = FRAME_LINES (f); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4862 SET_FRAME_COLS (f, 0); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
4863 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
|
4864 change_frame_size (f, height, width, 1, 0, 0); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4865 |
|
47731
755c4233cfba
* frame.c (Vdelete_frame_functions): New variable.
John Paul Wallington <jpw@pobox.com>
parents:
47434
diff
changeset
|
4866 /* 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
|
4867 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
|
4868 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
|
4869 Qnil)); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4870 |
| 79079 | 4871 /* FIXME - can this be done in a similar way to normal frames? |
| 4872 http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00641.html */ | |
| 4873 | |
|
79076
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4874 /* Set the `display-type' frame parameter before setting up faces. */ |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4875 { |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4876 Lisp_Object disptype; |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4877 |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4878 if (FRAME_X_DISPLAY_INFO (f)->n_planes == 1) |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4879 disptype = intern ("mono"); |
| 79085 | 4880 else if (FRAME_X_DISPLAY_INFO (f)->visual->class == GrayScale |
| 4881 || FRAME_X_DISPLAY_INFO (f)->visual->class == StaticGray) | |
|
79076
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4882 disptype = intern ("grayscale"); |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4883 else |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4884 disptype = intern ("color"); |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4885 |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4886 if (NILP (Fframe_parameter (frame, Qdisplay_type))) |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4887 Fmodify_frame_parameters (frame, Fcons (Fcons (Qdisplay_type, disptype), |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4888 Qnil)); |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4889 } |
|
9dd45fcaa2f0
John Paul Wallington <jpw at pobox.com>
Glenn Morris <rgm@gnu.org>
parents:
79055
diff
changeset
|
4890 |
|
35042
3088c9745e92
(x_create_tip_frame): Call face-set-after-frame-default,
Gerd Moellmann <gerd@gnu.org>
parents:
34976
diff
changeset
|
4891 /* 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
|
4892 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
|
4893 |
|
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4894 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
|
4895 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
|
4896 `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
|
4897 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
|
4898 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
|
4899 { |
|
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4900 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
|
4901 |
|
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4902 /* 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
|
4903 tip_frame = frame; |
|
96553
156404854aad
(x_create_tip_frame): Pass parameter argument to
Chong Yidong <cyd@stupidchicken.com>
parents:
96494
diff
changeset
|
4904 call2 (Qface_set_after_frame_default, frame, Qnil); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4905 |
|
35508
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4906 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
|
4907 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
|
4908 Qnil)); |
|
0bd627ce1af8
(x_create_tip_frame): Prevent changing the tooltip's
Gerd Moellmann <gerd@gnu.org>
parents:
35402
diff
changeset
|
4909 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4910 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4911 f->no_split = 1; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4912 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4913 UNGCPRO; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4914 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4915 /* 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
|
4916 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
|
4917 visible won't work. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4918 Vframe_list = Fcons (frame, Vframe_list); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4919 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4920 /* 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
|
4921 its display. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4922 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
|
4923 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4924 /* 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
|
4925 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
|
4926 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
|
4927 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
|
4928 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
|
4929 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
|
4930 |
|
34524
d4b8782e7f7b
(image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
Gerd Moellmann <gerd@gnu.org>
parents:
34512
diff
changeset
|
4931 /* Discard the unwind_protect. */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4932 return unbind_to (count, frame); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4933 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4934 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
4935 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4936 /* 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
|
4937 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
|
4938 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
|
4939 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
|
4940 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
|
4941 |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4942 static void |
|
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4943 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
|
4944 struct frame *f; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4945 Lisp_Object parms, dx, dy; |
|
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4946 int width, height; |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4947 int *root_x, *root_y; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4948 { |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4949 Lisp_Object left, top; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4950 int win_x, win_y; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4951 Window root, child; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4952 unsigned pmask; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4953 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4954 /* User-specified position? */ |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4955 left = Fcdr (Fassq (Qleft, parms)); |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4956 top = Fcdr (Fassq (Qtop, parms)); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
4957 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4958 /* 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
|
4959 show it. */ |
|
41449
4416668397d7
(compute_tip_xy): Initialize root_x and root_y from
Jason Rumney <jasonr@gnu.org>
parents:
41132
diff
changeset
|
4960 if (!INTEGERP (left) || !INTEGERP (top)) |
|
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4961 { |
|
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4962 BLOCK_INPUT; |
|
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4963 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
|
4964 &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
|
4965 UNBLOCK_INPUT; |
|
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4966 } |
|
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4967 |
|
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4968 if (INTEGERP (top)) |
|
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4969 *root_y = XINT (top); |
|
67581
05d48e1da3ad
* xfns.c (compute_tip_xy): Handle negative dx and dy.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67530
diff
changeset
|
4970 else if (*root_y + XINT (dy) <= 0) |
|
05d48e1da3ad
* xfns.c (compute_tip_xy): Handle negative dx and dy.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67530
diff
changeset
|
4971 *root_y = 0; /* Can happen for negative dy */ |
|
98223
033f7f08bc55
(Fx_display_pixel_width, Fx_display_pixel_height)
Chong Yidong <cyd@stupidchicken.com>
parents:
97142
diff
changeset
|
4972 else if (*root_y + XINT (dy) + height |
|
033f7f08bc55
(Fx_display_pixel_width, Fx_display_pixel_height)
Chong Yidong <cyd@stupidchicken.com>
parents:
97142
diff
changeset
|
4973 <= x_display_pixel_height (FRAME_X_DISPLAY_INFO (f))) |
|
67530
5b6c71adc503
* (compute_tip_xy): Calculate root_y the same way as root_x,
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67442
diff
changeset
|
4974 /* It fits below the pointer */ |
|
98223
033f7f08bc55
(Fx_display_pixel_width, Fx_display_pixel_height)
Chong Yidong <cyd@stupidchicken.com>
parents:
97142
diff
changeset
|
4975 *root_y += XINT (dy); |
|
67530
5b6c71adc503
* (compute_tip_xy): Calculate root_y the same way as root_x,
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67442
diff
changeset
|
4976 else if (height + XINT (dy) <= *root_y) |
|
5b6c71adc503
* (compute_tip_xy): Calculate root_y the same way as root_x,
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67442
diff
changeset
|
4977 /* It fits above the pointer. */ |
|
5b6c71adc503
* (compute_tip_xy): Calculate root_y the same way as root_x,
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67442
diff
changeset
|
4978 *root_y -= height + XINT (dy); |
|
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4979 else |
|
67530
5b6c71adc503
* (compute_tip_xy): Calculate root_y the same way as root_x,
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67442
diff
changeset
|
4980 /* Put it on the top. */ |
|
5b6c71adc503
* (compute_tip_xy): Calculate root_y the same way as root_x,
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67442
diff
changeset
|
4981 *root_y = 0; |
|
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4982 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4983 if (INTEGERP (left)) |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4984 *root_x = XINT (left); |
|
67581
05d48e1da3ad
* xfns.c (compute_tip_xy): Handle negative dx and dy.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67530
diff
changeset
|
4985 else if (*root_x + XINT (dx) <= 0) |
|
05d48e1da3ad
* xfns.c (compute_tip_xy): Handle negative dx and dy.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67530
diff
changeset
|
4986 *root_x = 0; /* Can happen for negative dx */ |
|
98223
033f7f08bc55
(Fx_display_pixel_width, Fx_display_pixel_height)
Chong Yidong <cyd@stupidchicken.com>
parents:
97142
diff
changeset
|
4987 else if (*root_x + XINT (dx) + width |
|
033f7f08bc55
(Fx_display_pixel_width, Fx_display_pixel_height)
Chong Yidong <cyd@stupidchicken.com>
parents:
97142
diff
changeset
|
4988 <= x_display_pixel_width (FRAME_X_DISPLAY_INFO (f))) |
|
42247
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4989 /* 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
|
4990 *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
|
4991 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
|
4992 /* 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
|
4993 *root_x -= width + XINT (dx); |
|
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
4994 else |
|
42247
35dd407f04cd
(compute_tip_xy): If tooltip won't fit on the screen
Richard M. Stallman <rms@gnu.org>
parents:
42123
diff
changeset
|
4995 /* 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
|
4996 *root_x = 0; |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4997 } |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4998 |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
4999 |
|
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5000 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
|
5001 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
|
5002 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
|
5003 |
| 76700 | 5004 This is an internal function; Lisp code should call `tooltip-show'. |
| 5005 | |
|
39905
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5006 FRAME nil or omitted means use the selected frame. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5007 |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5008 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
|
5009 change the tooltip's appearance. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5010 |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5011 Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5012 means use the default timeout of 5 seconds. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5013 |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5014 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
|
5015 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
|
5016 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
|
5017 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
|
5018 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
|
5019 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
|
5020 DY added (default is -10). |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5021 |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5022 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
|
5023 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
|
5024 (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
|
5025 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
|
5026 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5027 struct frame *f; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5028 struct window *w; |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5029 int root_x, root_y; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5030 struct buffer *old_buffer; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5031 struct text_pos pos; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5032 int i, width, height; |
|
26980
f0d5e95ccce9
(Fx_show_tip): Gcpro `timeout' too.
Dave Love <fx@gnu.org>
parents:
26978
diff
changeset
|
5033 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
|
5034 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
|
5035 int count = SPECPDL_INDEX (); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5036 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5037 specbind (Qinhibit_redisplay, Qt); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5038 |
|
26980
f0d5e95ccce9
(Fx_show_tip): Gcpro `timeout' too.
Dave Love <fx@gnu.org>
parents:
26978
diff
changeset
|
5039 GCPRO4 (string, parms, frame, timeout); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5040 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5041 CHECK_STRING (string); |
|
91931
f7cf6a90e284
(Fx_show_tip): Set string to " " if empty.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91902
diff
changeset
|
5042 if (SCHARS (string) == 0) |
|
f7cf6a90e284
(Fx_show_tip): Set string to " " if empty.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91902
diff
changeset
|
5043 string = make_unibyte_string (" ", 1); |
|
f7cf6a90e284
(Fx_show_tip): Set string to " " if empty.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
91902
diff
changeset
|
5044 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5045 f = check_x_frame (frame); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5046 if (NILP (timeout)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5047 timeout = make_number (5); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5048 else |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5049 CHECK_NATNUM (timeout); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5050 |
|
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5051 if (NILP (dx)) |
|
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5052 dx = make_number (5); |
|
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5053 else |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5054 CHECK_NUMBER (dx); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5055 |
|
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5056 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
|
5057 dy = make_number (-10); |
|
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5058 else |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5059 CHECK_NUMBER (dy); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5060 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5061 if (NILP (last_show_tip_args)) |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5062 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
|
5063 |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5064 if (!NILP (tip_frame)) |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5065 { |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5066 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
|
5067 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
|
5068 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
|
5069 |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5070 if (EQ (frame, last_frame) |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5071 && !NILP (Fequal (last_string, string)) |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5072 && !NILP (Fequal (last_parms, parms))) |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5073 { |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5074 struct frame *f = XFRAME (tip_frame); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5075 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5076 /* Only DX and DY have changed. */ |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5077 if (!NILP (tip_timer)) |
|
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5078 { |
|
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5079 Lisp_Object timer = tip_timer; |
|
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5080 tip_timer = Qnil; |
|
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5081 call1 (Qcancel_timer, timer); |
|
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5082 } |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5083 |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5084 BLOCK_INPUT; |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5085 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
|
5086 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
|
5087 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
|
5088 root_x, root_y); |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5089 UNBLOCK_INPUT; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5090 goto start_timer; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5091 } |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5092 } |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5093 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5094 /* Hide a previous tip, if any. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5095 Fx_hide_tip (); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5096 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5097 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
|
5098 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
|
5099 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
|
5100 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5101 /* Add default values to frame parameters. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5102 if (NILP (Fassq (Qname, parms))) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5103 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
|
5104 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
|
5105 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
|
5106 if (NILP (Fassq (Qborder_width, parms))) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5107 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
|
5108 if (NILP (Fassq (Qborder_color, parms))) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5109 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
|
5110 if (NILP (Fassq (Qbackground_color, parms))) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5111 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
|
5112 parms); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5113 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5114 /* 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
|
5115 variable tip_frame. */ |
|
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
5116 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
|
5117 f = XFRAME (frame); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5118 |
|
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5119 /* 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
|
5120 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
|
5121 w->left_col = w->top_line = make_number (0); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5122 |
|
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5123 if (CONSP (Vx_max_tooltip_size) |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5124 && INTEGERP (XCAR (Vx_max_tooltip_size)) |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5125 && XINT (XCAR (Vx_max_tooltip_size)) > 0 |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5126 && INTEGERP (XCDR (Vx_max_tooltip_size)) |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5127 && XINT (XCDR (Vx_max_tooltip_size)) > 0) |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5128 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5129 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
|
5130 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
|
5131 } |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5132 else |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5133 { |
|
51211
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5134 w->total_cols = make_number (80); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5135 w->total_lines = make_number (40); |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5136 } |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5137 |
|
28ea05de2dc5
Make (many) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51175
diff
changeset
|
5138 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
|
5139 adjust_glyphs (f); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5140 w->pseudo_window_p = 1; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5141 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5142 /* 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
|
5143 old_buffer = current_buffer; |
|
36869
a9cbe17061fc
(x_create_tip_frame): Add parameter TEXT. Set the
Gerd Moellmann <gerd@gnu.org>
parents:
36594
diff
changeset
|
5144 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
|
5145 current_buffer->truncate_lines = Qnil; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5146 clear_glyph_matrix (w->desired_matrix); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5147 clear_glyph_matrix (w->current_matrix); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5148 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
|
5149 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
|
5150 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5151 /* 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
|
5152 width = height = 0; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5153 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
|
5154 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5155 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
|
5156 struct glyph *last; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5157 int row_width; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5158 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5159 /* 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
|
5160 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
|
5161 break; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5162 |
|
25082
ba6bf065b287
(x_create_tip_frame): Don't set bitmapIcon resource.
Gerd Moellmann <gerd@gnu.org>
parents:
25075
diff
changeset
|
5163 /* 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
|
5164 row->full_width_p = 1; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5165 |
|
28410
2812a333e746
(free_image_cache): Free the cache structure itself
Gerd Moellmann <gerd@gnu.org>
parents:
28355
diff
changeset
|
5166 /* 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
|
5167 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
|
5168 if (row->used[TEXT_AREA]) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5169 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5170 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
|
5171 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
|
5172 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5173 else |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5174 row_width = row->pixel_width; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5175 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5176 height += row->height; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5177 width = max (width, row_width); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5178 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5179 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5180 /* 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
|
5181 window should have. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5182 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
|
5183 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
|
5184 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5185 /* 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
|
5186 show it. */ |
|
37253
7c3a00620335
(compute_tip_xy): Add parameters WIDTH and HEIGHT.
Gerd Moellmann <gerd@gnu.org>
parents:
37210
diff
changeset
|
5187 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
|
5188 |
|
30224
b9f781194989
(Fx_show_tip): If frame parameters contain a position,
Gerd Moellmann <gerd@gnu.org>
parents:
29947
diff
changeset
|
5189 BLOCK_INPUT; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5190 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
|
5191 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
|
5192 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
|
5193 UNBLOCK_INPUT; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5194 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5195 /* Draw into the window. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5196 w->must_be_updated_p = 1; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5197 update_single_window (w, 1); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5198 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5199 /* Restore original current buffer. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5200 set_buffer_internal_1 (old_buffer); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5201 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
|
5202 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5203 start_timer: |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5204 /* 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
|
5205 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
|
5206 intern ("x-hide-tip")); |
|
26954
e388d69f4269
(Fx_show_tip): Add missing UNGCPRO.
Dave Love <fx@gnu.org>
parents:
26876
diff
changeset
|
5207 |
|
e388d69f4269
(Fx_show_tip): Add missing UNGCPRO.
Dave Love <fx@gnu.org>
parents:
26876
diff
changeset
|
5208 UNGCPRO; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5209 return unbind_to (count, Qnil); |
|
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 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5213 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
|
5214 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
|
5215 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
|
5216 () |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5217 { |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5218 int count; |
| 34476 | 5219 Lisp_Object deleted, frame, timer; |
| 5220 struct gcpro gcpro1, gcpro2; | |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5221 |
|
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5222 /* Return quickly if nothing to do. */ |
| 34476 | 5223 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
|
5224 return Qnil; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5225 |
| 34476 | 5226 frame = tip_frame; |
| 5227 timer = tip_timer; | |
| 5228 GCPRO2 (frame, timer); | |
| 5229 tip_frame = tip_timer = deleted = Qnil; | |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5230 |
|
46285
3f111801efb4
Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
45968
diff
changeset
|
5231 count = SPECPDL_INDEX (); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5232 specbind (Qinhibit_redisplay, Qt); |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5233 specbind (Qinhibit_quit, Qt); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5234 |
| 34476 | 5235 if (!NILP (timer)) |
|
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5236 call1 (Qcancel_timer, timer); |
| 34476 | 5237 |
| 5238 if (FRAMEP (frame)) | |
| 5239 { | |
|
100632
389db2f016a4
* frame.c (delete_frame): New function derived from
Martin Rudalics <rudalics@gmx.at>
parents:
100382
diff
changeset
|
5240 delete_frame (frame, Qnil); |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5241 deleted = Qt; |
|
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5242 |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5243 #ifdef USE_LUCID |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5244 /* 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
|
5245 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
|
5246 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
|
5247 { |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5248 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
|
5249 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
|
5250 extern void xlwmenu_redisplay P_ ((Widget)); |
| 39675 | 5251 |
|
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5252 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
|
5253 && w != NULL) |
|
33713
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5254 { |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5255 BLOCK_INPUT; |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5256 xlwmenu_redisplay (w); |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5257 UNBLOCK_INPUT; |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5258 } |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5259 } |
|
91b2daa9479f
(Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
Gerd Moellmann <gerd@gnu.org>
parents:
33657
diff
changeset
|
5260 #endif /* USE_LUCID */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5261 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5262 |
| 34476 | 5263 UNGCPRO; |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5264 return unbind_to (count, deleted); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5265 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5266 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5267 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5268 |
|
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 File selection dialog |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5271 ***********************************************************************/ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5272 |
|
67761
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5273 DEFUN ("x-uses-old-gtk-dialog", Fx_uses_old_gtk_dialog, |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5274 Sx_uses_old_gtk_dialog, |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5275 0, 0, 0, |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5276 doc: /* Return t if the old Gtk+ file selection dialog is used. */) |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5277 () |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5278 { |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5279 #ifdef USE_GTK |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5280 extern int use_dialog_box; |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5281 extern int use_file_dialog; |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5282 |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5283 if (use_dialog_box |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5284 && use_file_dialog |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5285 && have_menus_p () |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5286 && xg_uses_old_file_dialog ()) |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5287 return Qt; |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5288 #endif |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5289 return Qnil; |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5290 } |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5291 |
|
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5292 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5293 #ifdef USE_MOTIF |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5294 /* 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
|
5295 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5296 static void |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5297 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
|
5298 Widget widget; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5299 XtPointer call_data, client_data; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5300 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5301 int *result = (int *) client_data; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5302 XmAnyCallbackStruct *cb = (XmAnyCallbackStruct *) call_data; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5303 *result = cb->reason; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5304 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5305 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5306 |
|
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5307 /* 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
|
5308 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
|
5309 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
|
5310 in this case. */ |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5311 |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5312 static void |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5313 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
|
5314 Widget widget; |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5315 XtPointer call_data, client_data; |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5316 { |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5317 int *result = (int *) client_data; |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5318 *result = XmCR_CANCEL; |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5319 } |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5320 |
|
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
|
5321 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
|
5322 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
|
5323 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
|
5324 { |
|
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
|
5325 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
|
5326 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
|
5327 |
|
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
|
5328 /* 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
|
5329 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
|
5330 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
|
5331 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
|
5332 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
|
5333 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
|
5334 |
|
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
|
5335 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
|
5336 } |
|
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
|
5337 |
|
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5338 |
|
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
|
5339 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
|
5340 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
|
5341 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
|
5342 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
|
5343 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
|
5344 (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
|
5345 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
|
5346 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5347 int result; |
|
25679
8b09c5927f1c
(QCfile): Moved to xdisp.c.
Gerd Moellmann <gerd@gnu.org>
parents:
25646
diff
changeset
|
5348 struct frame *f = SELECTED_FRAME (); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5349 Lisp_Object file = Qnil; |
|
69065
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5350 Lisp_Object decoded_file; |
|
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
|
5351 Widget dialog, text, help; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5352 Arg al[10]; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5353 int ac = 0; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5354 extern XtAppContext Xt_app_con; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5355 XmString dir_xmstring, pattern_xmstring; |
|
46295
b77ef572e1c9
Use macro SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents:
46285
diff
changeset
|
5356 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
|
5357 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
|
5358 |
|
72774
e00572984112
(Fx_file_dialog): Call check_x.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
72529
diff
changeset
|
5359 check_x (); |
|
e00572984112
(Fx_file_dialog): Call check_x.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
72529
diff
changeset
|
5360 |
|
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
|
5361 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
|
5362 |
|
58283
c163562b2d59
* xmenu.c (x_menu_in_use): Removed.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
58214
diff
changeset
|
5363 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
|
5364 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
|
5365 |
|
40656
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5366 CHECK_STRING (prompt); |
|
cdfd4d09b79a
Update usage of CHECK_ macros (remove unused second argument).
Pavel Jan?k <Pavel@Janik.cz>
parents:
40608
diff
changeset
|
5367 CHECK_STRING (dir); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5368 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5369 /* Prevent redisplay. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5370 specbind (Qinhibit_redisplay, Qt); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5371 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5372 BLOCK_INPUT; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5373 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5374 /* 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
|
5375 directory and using "*" as pattern. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5376 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
|
5377 dir_xmstring = XmStringCreateLocalized (SDATA (dir)); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5378 pattern_xmstring = XmStringCreateLocalized ("*"); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5379 |
|
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46295
diff
changeset
|
5380 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
|
5381 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
|
5382 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
|
5383 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
|
5384 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
|
5385 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
|
5386 "fsb", al, ac); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5387 XmStringFree (dir_xmstring); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5388 XmStringFree (pattern_xmstring); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5389 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5390 /* Add callbacks for OK and Cancel. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5391 XtAddCallback (dialog, XmNokCallback, file_dialog_cb, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5392 (XtPointer) &result); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5393 XtAddCallback (dialog, XmNcancelCallback, file_dialog_cb, |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5394 (XtPointer) &result); |
|
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5395 XtAddCallback (dialog, XmNunmapCallback, file_dialog_unmap_cb, |
|
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5396 (XtPointer) &result); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5397 |
|
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
|
5398 /* 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
|
5399 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
|
5400 XtUnmanageChild (help); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5401 |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5402 /* Mark OK button as default. */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5403 XtVaSetValues (XmFileSelectionBoxGetChild (dialog, XmDIALOG_OK_BUTTON), |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5404 XmNshowAsDefault, True, NULL); |
|
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 /* 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
|
5407 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
|
5408 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
|
5409 the result file name, then. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5410 text = XmFileSelectionBoxGetChild (dialog, XmDIALOG_TEXT); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5411 if (!NILP (mustmatch)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5412 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5413 Widget label; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5414 label = XmFileSelectionBoxGetChild (dialog, XmDIALOG_SELECTION_LABEL); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5415 XtSetSensitive (text, False); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5416 XtSetSensitive (label, False); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5417 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5418 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5419 /* 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
|
5420 XtManageChild (dialog); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5421 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5422 if (STRINGP (default_filename)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5423 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5424 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
|
5425 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
|
5426 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
|
5427 |
|
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5428 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
|
5429 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
|
5430 (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
|
5431 |
|
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 /* 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
|
5433 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
|
5434 |
|
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 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
|
5436 |
|
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5437 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
|
5438 { |
|
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5439 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
|
5440 /* 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
|
5441 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
|
5442 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
|
5443 } |
|
c955f6add62a
* fileio.c (Fread_file_name): Pass Qt as fifth parameter to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
57765
diff
changeset
|
5444 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5445 XmStringFree (default_xmstring); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5446 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5447 |
|
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 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
|
5449 |
| 49117 | 5450 /* 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
|
5451 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
|
5452 result = 0; |
|
37556
171c0f4964a9
(file_dialog_unmap_cb): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
37253
diff
changeset
|
5453 while (result == 0) |
|
38548
58603538f196
(Fx_file_dialog): Block/unblock input while processing
Gerd Moellmann <gerd@gnu.org>
parents:
38542
diff
changeset
|
5454 { |
| 49117 | 5455 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
|
5456 x_menu_wait_for_event (0); |
| 49117 | 5457 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
|
5458 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
|
5459 && 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
|
5460 { |
|
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5461 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
|
5462 |
|
0096c58ce34a
* xmenu.c (popup_get_selection): Pop down on C-g.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
58463
diff
changeset
|
5463 /* 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
|
5464 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
|
5465 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
|
5466 } |
|
59904
adc18da68682
(unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
Kim F. Storm <storm@cua.dk>
parents:
59789
diff
changeset
|
5467 |
|
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
|
5468 (void) x_dispatch_event (&event, FRAME_X_DISPLAY (f)); |
| 49117 | 5469 } |
|
29866
c31c4d7dd0e0
(Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
Gerd Moellmann <gerd@gnu.org>
parents:
29728
diff
changeset
|
5470 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5471 /* Get the result. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5472 if (result == XmCR_OK) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5473 { |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5474 XmString text; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5475 String data; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5476 |
|
30573
3bb43339533c
(Fx_file_dialog): Use NULL instead of 0 at the end of
Gerd Moellmann <gerd@gnu.org>
parents:
30383
diff
changeset
|
5477 XtVaGetValues (dialog, XmNtextString, &text, NULL); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5478 XmStringGetLtoR (text, XmFONTLIST_DEFAULT_TAG, &data); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5479 XmStringFree (text); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5480 file = build_string (data); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5481 XtFree (data); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5482 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5483 else |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5484 file = Qnil; |
|
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 UNBLOCK_INPUT; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5487 UNGCPRO; |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5488 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5489 /* Make "Cancel" equivalent to C-g. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5490 if (NILP (file)) |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5491 Fsignal (Qquit, Qnil); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5492 |
|
69065
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5493 decoded_file = DECODE_FILE (file); |
|
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5494 |
|
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5495 return unbind_to (count, decoded_file); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5496 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5497 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5498 #endif /* USE_MOTIF */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5499 |
| 49322 | 5500 #ifdef USE_GTK |
| 5501 | |
|
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
|
5502 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
|
5503 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
|
5504 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
|
5505 { |
|
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
|
5506 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
|
5507 |
|
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
|
5508 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
|
5509 } |
|
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
|
5510 |
|
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
|
5511 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
|
5512 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
|
5513 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
|
5514 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
|
5515 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
|
5516 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
|
5517 (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
|
5518 Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p; |
| 49322 | 5519 { |
| 5520 FRAME_PTR f = SELECTED_FRAME (); | |
| 5521 char *fn; | |
| 5522 Lisp_Object file = Qnil; | |
|
69065
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5523 Lisp_Object decoded_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
|
5524 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
|
5525 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6; |
| 49322 | 5526 char *cdef_file; |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5527 |
|
72774
e00572984112
(Fx_file_dialog): Call check_x.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
72529
diff
changeset
|
5528 check_x (); |
|
e00572984112
(Fx_file_dialog): Call check_x.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
72529
diff
changeset
|
5529 |
|
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
|
5530 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
|
5531 |
|
58283
c163562b2d59
* xmenu.c (x_menu_in_use): Removed.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
58214
diff
changeset
|
5532 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
|
5533 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
|
5534 |
| 49322 | 5535 CHECK_STRING (prompt); |
| 5536 CHECK_STRING (dir); | |
| 5537 | |
| 5538 /* Prevent redisplay. */ | |
| 5539 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
|
5540 record_unwind_protect (clean_up_dialog, Qnil); |
| 49322 | 5541 |
| 5542 BLOCK_INPUT; | |
| 5543 | |
| 5544 if (STRINGP (default_filename)) | |
| 5545 cdef_file = SDATA (default_filename); | |
| 5546 else | |
| 5547 cdef_file = SDATA (dir); | |
| 5548 | |
|
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
|
5549 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
|
5550 ! 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
|
5551 ! NILP (only_dir_p)); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5552 |
| 49322 | 5553 if (fn) |
| 5554 { | |
| 5555 file = build_string (fn); | |
| 5556 xfree (fn); | |
| 5557 } | |
| 5558 | |
| 5559 UNBLOCK_INPUT; | |
| 5560 UNGCPRO; | |
| 5561 | |
| 5562 /* Make "Cancel" equivalent to C-g. */ | |
| 5563 if (NILP (file)) | |
| 5564 Fsignal (Qquit, Qnil); | |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5565 |
|
69065
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5566 decoded_file = DECODE_FILE (file); |
|
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5567 |
|
4c87a7783f95
* xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68880
diff
changeset
|
5568 return unbind_to (count, decoded_file); |
| 49322 | 5569 } |
| 5570 | |
|
95795
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5571 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5572 #ifdef HAVE_FREETYPE |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5573 |
|
95850
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5574 DEFUN ("x-select-font", Fx_select_font, Sx_select_font, 0, 2, 0, |
|
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5575 doc: /* Read a font name using a GTK font selection dialog. |
|
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5576 Return a GTK-style font string corresponding to the selection. |
|
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5577 |
|
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5578 If FRAME is omitted or nil, it defaults to the selected frame. */) |
|
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5579 (frame, ignored) |
|
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5580 Lisp_Object frame, ignored; |
|
95795
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5581 { |
|
95850
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5582 FRAME_PTR f = check_x_frame (frame); |
|
95974
337a71ccee89
(Fx_select_font): Give GTK font dialog the default font name.
Chong Yidong <cyd@stupidchicken.com>
parents:
95954
diff
changeset
|
5583 char *name; |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5584 Lisp_Object font; |
|
103840
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5585 Lisp_Object font_param; |
|
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5586 char *default_name = NULL; |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5587 struct gcpro gcpro1, gcpro2; |
|
95795
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5588 int count = SPECPDL_INDEX (); |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5589 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5590 check_x (); |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5591 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5592 if (popup_activated ()) |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5593 error ("Trying to use a menu from within a menu-entry"); |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5594 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5595 /* Prevent redisplay. */ |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5596 specbind (Qinhibit_redisplay, Qt); |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5597 record_unwind_protect (clean_up_dialog, Qnil); |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5598 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5599 BLOCK_INPUT; |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5600 |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5601 GCPRO2(font_param, font); |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5602 |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5603 XSETFONT (font, FRAME_FONT (f)); |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5604 font_param = Ffont_get (font, intern_c_string (":name")); |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5605 if (STRINGP (font_param)) |
|
103840
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5606 default_name = SDATA (font_param); |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5607 else |
|
95795
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5608 { |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5609 font_param = Fframe_parameter (frame, Qfont_param); |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5610 if (STRINGP (font_param)) |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5611 default_name = SDATA (font_param); |
|
95974
337a71ccee89
(Fx_select_font): Give GTK font dialog the default font name.
Chong Yidong <cyd@stupidchicken.com>
parents:
95954
diff
changeset
|
5612 } |
|
103840
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5613 |
|
106085
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5614 if (default_name == NULL && x_last_font_name != NULL) |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5615 default_name = x_last_font_name; |
|
cd4cbab8bb21
Handle system default font and changing font parameters.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
105959
diff
changeset
|
5616 |
|
103840
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5617 name = xg_get_font_name (f, default_name); |
|
95974
337a71ccee89
(Fx_select_font): Give GTK font dialog the default font name.
Chong Yidong <cyd@stupidchicken.com>
parents:
95954
diff
changeset
|
5618 |
|
337a71ccee89
(Fx_select_font): Give GTK font dialog the default font name.
Chong Yidong <cyd@stupidchicken.com>
parents:
95954
diff
changeset
|
5619 if (name) |
|
337a71ccee89
(Fx_select_font): Give GTK font dialog the default font name.
Chong Yidong <cyd@stupidchicken.com>
parents:
95954
diff
changeset
|
5620 { |
|
337a71ccee89
(Fx_select_font): Give GTK font dialog the default font name.
Chong Yidong <cyd@stupidchicken.com>
parents:
95954
diff
changeset
|
5621 font = build_string (name); |
|
103840
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5622 g_free (x_last_font_name); |
|
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5623 x_last_font_name = name; |
|
95795
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5624 } |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5625 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5626 UNBLOCK_INPUT; |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5627 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5628 if (NILP (font)) |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5629 Fsignal (Qquit, Qnil); |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5630 |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5631 return unbind_to (count, font); |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5632 } |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5633 #endif /* HAVE_FREETYPE */ |
|
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5634 |
| 49322 | 5635 #endif /* USE_GTK */ |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5636 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5637 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5638 /*********************************************************************** |
|
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5639 Keyboard |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5640 ***********************************************************************/ |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5641 |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5642 #ifdef HAVE_XKBGETKEYBOARD |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5643 #include <X11/XKBlib.h> |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5644 #include <X11/keysym.h> |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5645 #endif |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5646 |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5647 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
|
5648 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
|
5649 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
|
5650 FRAME nil means use the selected frame. |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5651 Value is t if we know that both keys are present, and are mapped to the |
|
67654
f6416d33b0a2
(Fx_backspace_delete_keys_p): In case we cannot determine
Dan Nicolaescu <dann@ics.uci.edu>
parents:
67581
diff
changeset
|
5652 usual X keysyms. Value is `lambda' if we cannot determine if both keys are |
|
f6416d33b0a2
(Fx_backspace_delete_keys_p): In case we cannot determine
Dan Nicolaescu <dann@ics.uci.edu>
parents:
67581
diff
changeset
|
5653 present and mapped to the usual X keysyms. */) |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5654 (frame) |
|
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5655 Lisp_Object frame; |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5656 { |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5657 #ifdef HAVE_XKBGETKEYBOARD |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5658 XkbDescPtr kb; |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5659 struct frame *f = check_x_frame (frame); |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5660 Display *dpy = FRAME_X_DISPLAY (f); |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5661 Lisp_Object have_keys; |
|
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5662 int major, minor, op, event, error; |
|
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5663 |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5664 BLOCK_INPUT; |
|
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5665 |
|
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5666 /* 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
|
5667 major = XkbMajorVersion; |
|
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5668 minor = XkbMinorVersion; |
|
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5669 if (!XkbLibraryVersion (&major, &minor)) |
|
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5670 { |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5671 UNBLOCK_INPUT; |
|
67654
f6416d33b0a2
(Fx_backspace_delete_keys_p): In case we cannot determine
Dan Nicolaescu <dann@ics.uci.edu>
parents:
67581
diff
changeset
|
5672 return Qlambda; |
|
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5673 } |
|
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5674 |
|
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5675 /* 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
|
5676 major = XkbMajorVersion; |
|
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5677 minor = XkbMinorVersion; |
|
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5678 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
|
5679 { |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5680 UNBLOCK_INPUT; |
|
67654
f6416d33b0a2
(Fx_backspace_delete_keys_p): In case we cannot determine
Dan Nicolaescu <dann@ics.uci.edu>
parents:
67581
diff
changeset
|
5681 return Qlambda; |
|
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5682 } |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5683 |
|
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
|
5684 /* 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
|
5685 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
|
5686 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
|
5687 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
|
5688 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
|
5689 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
|
5690 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
|
5691 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
|
5692 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
|
5693 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
|
5694 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
|
5695 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
|
5696 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
|
5697 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
|
5698 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
|
5699 |
|
34911
4cdfcac861d7
(Fx_backspace_delete_keys_p): Check library and server
Gerd Moellmann <gerd@gnu.org>
parents:
34895
diff
changeset
|
5700 have_keys = Qnil; |
|
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5701 kb = XkbGetMap (dpy, XkbAllMapComponentsMask, XkbUseCoreKbd); |
|
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5702 if (kb) |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5703 { |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5704 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
|
5705 |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5706 if (XkbGetNames (dpy, XkbAllNamesMask, kb) == Success) |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5707 { |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5708 for (i = kb->min_key_code; |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5709 (i < kb->max_key_code |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5710 && (delete_keycode == 0 || backspace_keycode == 0)); |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5711 ++i) |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5712 { |
|
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5713 /* 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
|
5714 the PS file generated by `xkbprint -label name |
|
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5715 $DISPLAY'. */ |
|
35191
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5716 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
|
5717 delete_keycode = i; |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5718 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
|
5719 backspace_keycode = i; |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5720 } |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5721 |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5722 XkbFreeNames (kb, 0, True); |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5723 } |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5724 |
|
3de883052d49
(Fx_backspace_delete_keys_p): Use XkbGetMap and
Gerd Moellmann <gerd@gnu.org>
parents:
35146
diff
changeset
|
5725 XkbFreeClientMap (kb, 0, True); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5726 |
|
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5727 if (delete_keycode |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5728 && backspace_keycode |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5729 && XKeysymToKeycode (dpy, XK_Delete) == delete_keycode |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5730 && XKeysymToKeycode (dpy, XK_BackSpace) == backspace_keycode) |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5731 have_keys = Qt; |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5732 } |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5733 UNBLOCK_INPUT; |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5734 return have_keys; |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5735 #else /* not HAVE_XKBGETKEYBOARD */ |
|
67654
f6416d33b0a2
(Fx_backspace_delete_keys_p): In case we cannot determine
Dan Nicolaescu <dann@ics.uci.edu>
parents:
67581
diff
changeset
|
5736 return Qlambda; |
|
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5737 #endif /* not HAVE_XKBGETKEYBOARD */ |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5738 } |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5739 |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5740 |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5741 |
|
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5742 /*********************************************************************** |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5743 Initialization |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5744 ***********************************************************************/ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5745 |
| 51175 | 5746 /* 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
|
5747 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
|
5748 |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5749 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
|
5750 { |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5751 x_set_autoraise, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5752 x_set_autolower, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5753 x_set_background_color, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5754 x_set_border_color, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5755 x_set_border_width, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5756 x_set_cursor_color, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5757 x_set_cursor_type, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5758 x_set_font, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5759 x_set_foreground_color, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5760 x_set_icon_name, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5761 x_set_icon_type, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5762 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
|
5763 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
|
5764 x_set_mouse_color, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5765 x_explicitly_set_name, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5766 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
|
5767 x_set_title, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5768 x_set_unsplittable, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5769 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
|
5770 x_set_visibility, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5771 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
|
5772 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
|
5773 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
|
5774 x_set_screen_gamma, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5775 x_set_line_spacing, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5776 x_set_fringe_width, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5777 x_set_fringe_width, |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5778 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
|
5779 x_set_fullscreen, |
|
95159
3a5987224fad
Seiji Zenitani <zenitani at mac.com>
Glenn Morris <rgm@gnu.org>
parents:
94963
diff
changeset
|
5780 x_set_font_backend, |
|
103674
1867be80e595
* w32fns.c (w32_frame_parm_handlers): Set 0 for sticky.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103052
diff
changeset
|
5781 x_set_alpha, |
|
1867be80e595
* w32fns.c (w32_frame_parm_handlers): Set 0 for sticky.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103052
diff
changeset
|
5782 x_set_sticky, |
|
50370
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5783 }; |
|
0c01548d7ed3
The following changes consolidates the common code related to
Kim F. Storm <storm@cua.dk>
parents:
50236
diff
changeset
|
5784 |
| 21846 | 5785 void |
| 389 | 5786 syms_of_xfns () |
| 5787 { | |
| 5788 /* 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
|
5789 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
|
5790 |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5791 /* 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
|
5792 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
|
5793 /*&&& init symbols here &&&*/ |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5794 Qnone = intern_c_string ("none"); |
|
1874
19cf50641d6c
* frame.c (Fframe_parameters): Report the `minibuffer' parameter of
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
5795 staticpro (&Qnone); |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5796 Qsuppress_icon = intern_c_string ("suppress-icon"); |
|
2328
82e4fed9cdd6
* xfns.c (Fx_parse_geometry): Renamed from Fx_geometry.
Jim Blandy <jimb@redhat.com>
parents:
2295
diff
changeset
|
5797 staticpro (&Qsuppress_icon); |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5798 Qundefined_color = intern_c_string ("undefined-color"); |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5799 staticpro (&Qundefined_color); |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5800 Qcompound_text = intern_c_string ("compound-text"); |
|
30351
a67fcab978bb
(x_encode_text): New function.
Kenichi Handa <handa@m17n.org>
parents:
30224
diff
changeset
|
5801 staticpro (&Qcompound_text); |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5802 Qcancel_timer = intern_c_string ("cancel-timer"); |
|
35402
302fbe91e359
(Qcancel_timer): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
35360
diff
changeset
|
5803 staticpro (&Qcancel_timer); |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5804 Qfont_param = intern_c_string ("font-parameter"); |
|
96079
efbaf6995245
* w32fns.c, xfns.c (Qfont_param): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
95974
diff
changeset
|
5805 staticpro (&Qfont_param); |
|
974
4f88a1b78a46
* xfns.c (x_get_arg): Return Qunbound for an unspecified
Jim Blandy <jimb@redhat.com>
parents:
833
diff
changeset
|
5806 /* 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
|
5807 |
| 26876 | 5808 /* Text property `display' should be nonsticky by default. */ |
| 5809 Vtext_property_default_nonsticky | |
| 5810 = Fcons (Fcons (Qdisplay, Qt), Vtext_property_default_nonsticky); | |
| 5811 | |
| 5812 | |
| 389 | 5813 Fput (Qundefined_color, Qerror_conditions, |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5814 pure_cons (Qundefined_color, pure_cons (Qerror, Qnil))); |
| 389 | 5815 Fput (Qundefined_color, Qerror_message, |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5816 make_pure_c_string ("Undefined color")); |
| 389 | 5817 |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5818 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
|
5819 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
|
5820 Changing the value does not affect existing frames |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5821 unless you set the mouse color. */); |
| 389 | 5822 Vx_pointer_shape = Qnil; |
| 5823 | |
|
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5824 #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
|
5825 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
|
5826 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
|
5827 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
|
5828 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
|
5829 #endif |
| 389 | 5830 Vx_nontext_pointer_shape = Qnil; |
| 5831 | |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5832 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
|
5833 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
|
5834 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
|
5835 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
|
5836 Vx_hourglass_pointer_shape = Qnil; |
|
a8630c63f7d5
Rename everything containing *busy_cursor* and similar
Gerd Moellmann <gerd@gnu.org>
parents:
35859
diff
changeset
|
5837 |
|
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5838 #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
|
5839 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
|
5840 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
|
5841 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
|
5842 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
|
5843 #endif |
| 389 | 5844 Vx_mode_pointer_shape = Qnil; |
| 5845 | |
|
16396
4e4cc27b2a2a
(x_set_internal_border_width): Only change
Richard M. Stallman <rms@gnu.org>
parents:
16357
diff
changeset
|
5846 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
|
5847 &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
|
5848 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
|
5849 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
|
5850 or when you set the mouse color. */); |
|
7683
be3423efbdce
(Vx_sensitive_text_pointer_shape):
Richard M. Stallman <rms@gnu.org>
parents:
7599
diff
changeset
|
5851 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
|
5852 |
|
33960
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
5853 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
|
5854 &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
|
5855 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
|
5856 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
|
5857 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
|
5858 Vx_window_horizontal_drag_shape = Qnil; |
|
1f92a2d65681
(Vx_window_horizontal_drag_shape): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
33747
diff
changeset
|
5859 |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5860 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
|
5861 doc: /* A string indicating the foreground color of the cursor box. */); |
| 389 | 5862 Vx_cursor_fore_pixel = Qnil; |
| 5863 | |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5864 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
|
5865 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
|
5866 Text larger than this is clipped. */); |
|
38574
79a0d7b341b3
(Vx_max_tooltip_size): New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
38548
diff
changeset
|
5867 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
|
5868 |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5869 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
|
5870 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
|
5871 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
|
5872 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
|
5873 /* 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
|
5874 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
|
5875 Vx_no_window_manager = Qnil; |
|
8170
d92a24366b22
(x_toolkit): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8103
diff
changeset
|
5876 |
|
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5877 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
|
5878 &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
|
5879 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
|
5880 |
|
542a86892257
Put doc strings in comments.
Gerd Moellmann <gerd@gnu.org>
parents:
39862
diff
changeset
|
5881 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
|
5882 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
|
5883 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
|
5884 Chinese, Japanese, and Korean. */); |
|
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5885 Vx_pixel_size_width_font_regexp = Qnil; |
|
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5886 |
|
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
|
5887 /* This is not ifdef:ed, so other builds than GTK can customize it. */ |
|
72964
4e1cc9325b0e
* xfns.c (syms_of_xfns): Rename x-use-old-gtk-file-dialog
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72932
diff
changeset
|
5888 DEFVAR_BOOL ("x-gtk-use-old-file-dialog", &x_gtk_use_old_file_dialog, |
|
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
|
5889 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
|
5890 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
|
5891 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
|
5892 variable `use-file-dialog'. */); |
|
72964
4e1cc9325b0e
* xfns.c (syms_of_xfns): Rename x-use-old-gtk-file-dialog
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72932
diff
changeset
|
5893 x_gtk_use_old_file_dialog = 0; |
|
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
|
5894 |
|
67842
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
5895 DEFVAR_BOOL ("x-gtk-show-hidden-files", &x_gtk_show_hidden_files, |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
5896 doc: /* *If non-nil, the GTK file chooser will by default show hidden files. |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
5897 Note that this is just the default, there is a toggle button on the file |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
5898 chooser to show or not show hidden files on a case by case basis. */); |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
5899 x_gtk_show_hidden_files = 0; |
|
095b05723996
* xfns.c: x_show_hidden_files, new variable.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67761
diff
changeset
|
5900 |
|
72969
f8188a2ff5f6
* xfns.c (syms_of_xfns): Rename x_gtk_show_chooser_help_text to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72964
diff
changeset
|
5901 DEFVAR_BOOL ("x-gtk-file-dialog-help-text", &x_gtk_file_dialog_help_text, |
|
73045
cec998346c98
* xfns.c (syms_of_xfns): Fix typo in help text for
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72969
diff
changeset
|
5902 doc: /* *If non-nil, the GTK file chooser will show additional help text. |
|
72932
eea4777d0d23
* xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72777
diff
changeset
|
5903 If more space for files in the file chooser dialog is wanted, set this to nil |
|
eea4777d0d23
* xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72777
diff
changeset
|
5904 to turn the additional text off. */); |
|
72969
f8188a2ff5f6
* xfns.c (syms_of_xfns): Rename x_gtk_show_chooser_help_text to
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72964
diff
changeset
|
5905 x_gtk_file_dialog_help_text = 1; |
|
72932
eea4777d0d23
* xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
72777
diff
changeset
|
5906 |
|
68880
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
5907 DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", &x_gtk_whole_detached_tool_bar, |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
5908 doc: /* *If non-nil, a detached tool bar is shown in full. |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
5909 The default is to just show an arrow and pressing on that arrow shows |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
5910 the tool bar buttons. */); |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
5911 x_gtk_whole_detached_tool_bar = 0; |
|
f5fa98f7c3b7
* xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
68651
diff
changeset
|
5912 |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5913 Fprovide (intern_c_string ("x"), Qnil); |
|
66502
dd57bcb034c0
(syms_of_xfns): Provide `x' as feature.
Richard M. Stallman <rms@gnu.org>
parents:
65936
diff
changeset
|
5914 |
|
8170
d92a24366b22
(x_toolkit): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8103
diff
changeset
|
5915 #ifdef USE_X_TOOLKIT |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5916 Fprovide (intern_c_string ("x-toolkit"), Qnil); |
|
12094
a9fda5417acf
(syms_of_xfns): Provide motif in Motif version.
Karl Heuer <kwzh@gnu.org>
parents:
12080
diff
changeset
|
5917 #ifdef USE_MOTIF |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5918 Fprovide (intern_c_string ("motif"), Qnil); |
|
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5919 |
|
39988
eac4e9ae201c
Change doc-string comments to `new style' [w/`doc:' keyword].
Miles Bader <miles@gnu.org>
parents:
39907
diff
changeset
|
5920 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
|
5921 doc: /* Version info for LessTif/Motif. */); |
|
37210
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5922 Vmotif_version_string = build_string (XmVERSION_STRING); |
|
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5923 #endif /* USE_MOTIF */ |
|
8b47704e0150
(Vmotif_version_string) [USE_MOTIF]: New variable.
Gerd Moellmann <gerd@gnu.org>
parents:
37173
diff
changeset
|
5924 #endif /* USE_X_TOOLKIT */ |
| 389 | 5925 |
|
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5926 #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
|
5927 /* 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
|
5928 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
|
5929 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
|
5930 accepts --with-x-toolkit=gtk. */ |
|
105877
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5931 Fprovide (intern_c_string ("x-toolkit"), Qnil); |
|
21bdda3ded62
* xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105671
diff
changeset
|
5932 Fprovide (intern_c_string ("gtk"), Qnil); |
|
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5933 |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5934 DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string, |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5935 doc: /* Version info for GTK+. */); |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5936 { |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5937 char gtk_version[40]; |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5938 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
|
5939 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); |
|
105942
5fc80e6b5b7c
* xfns.c (syms_of_xfns): Use make_pure_string instead of build_string.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105877
diff
changeset
|
5940 Vgtk_version_string = make_pure_string (gtk_version, strlen (gtk_version), strlen (gtk_version), 0); |
|
52334
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5941 } |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5942 #endif /* USE_GTK */ |
|
a721547105d6
(Vgtk_version_string): New variable.
Lute Kamstra <lute@gnu.org>
parents:
52298
diff
changeset
|
5943 |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5944 /* X window properties. */ |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5945 defsubr (&Sx_change_window_property); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5946 defsubr (&Sx_delete_window_property); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5947 defsubr (&Sx_window_property); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5948 |
|
26729
f5dded41adcc
Changes for automatic remapping of X colors on terminal frames:
Eli Zaretskii <eliz@gnu.org>
parents:
26571
diff
changeset
|
5949 defsubr (&Sxw_display_color_p); |
|
8779
12c6296bbb4b
(Fx_display_grayscale_p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8758
diff
changeset
|
5950 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
|
5951 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
|
5952 defsubr (&Sxw_color_values); |
| 4279 | 5953 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
|
5954 defsubr (&Sx_server_vendor); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5955 defsubr (&Sx_server_version); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5956 defsubr (&Sx_display_pixel_width); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5957 defsubr (&Sx_display_pixel_height); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5958 defsubr (&Sx_display_mm_width); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5959 defsubr (&Sx_display_mm_height); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5960 defsubr (&Sx_display_screens); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5961 defsubr (&Sx_display_planes); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5962 defsubr (&Sx_display_color_cells); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5963 defsubr (&Sx_display_visual_class); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5964 defsubr (&Sx_display_backing_store); |
|
68328c3af38f
(x_screen): Make this var file scope.
Richard M. Stallman <rms@gnu.org>
parents:
2197
diff
changeset
|
5965 defsubr (&Sx_display_save_under); |
|
99346
9c62c9e7bd57
(Fx_wm_set_size_hint): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
98223
diff
changeset
|
5966 defsubr (&Sx_wm_set_size_hint); |
| 771 | 5967 defsubr (&Sx_create_frame); |
| 389 | 5968 defsubr (&Sx_open_connection); |
|
9690
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
5969 defsubr (&Sx_close_connection); |
|
f6d4e1acb5a1
(Fx_create_frame): Don't increment refernce_count
Richard M. Stallman <rms@gnu.org>
parents:
9653
diff
changeset
|
5970 defsubr (&Sx_display_list); |
| 389 | 5971 defsubr (&Sx_synchronize); |
|
28044
88db4c84b6fd
Remove a buch of really old code in #if 0.
Gerd Moellmann <gerd@gnu.org>
parents:
28010
diff
changeset
|
5972 defsubr (&Sx_focus_frame); |
|
34549
708ea44ef3c0
(Fx_backspace_delete_keys_p): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
34524
diff
changeset
|
5973 defsubr (&Sx_backspace_delete_keys_p); |
|
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49473
diff
changeset
|
5974 |
|
17048
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5975 /* Setting callback functions for fontset handler. */ |
|
2da4e24ceee5
Include charset.h and fontset.h.
Karl Heuer <kwzh@gnu.org>
parents:
16966
diff
changeset
|
5976 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
|
5977 |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5978 defsubr (&Sx_show_tip); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5979 defsubr (&Sx_hide_tip); |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5980 tip_timer = Qnil; |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5981 staticpro (&tip_timer); |
|
34450
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5982 tip_frame = Qnil; |
|
5de00bff5de3
(Fx_hide_tip): Avoid unnecessary work when there's
Gerd Moellmann <gerd@gnu.org>
parents:
34321
diff
changeset
|
5983 staticpro (&tip_frame); |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5984 |
|
35067
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5985 last_show_tip_args = Qnil; |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5986 staticpro (&last_show_tip_args); |
|
7ca0048f8615
(x_create_tip_frame): Preserve the value of
Gerd Moellmann <gerd@gnu.org>
parents:
35042
diff
changeset
|
5987 |
|
67761
5b8799d65159
* xfns.c (Fx_uses_old_gtk_dialog): New function.
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
67654
diff
changeset
|
5988 defsubr (&Sx_uses_old_gtk_dialog); |
|
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
|
5989 #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
|
5990 defsubr (&Sx_file_dialog); |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5991 #endif |
|
95795
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5992 |
|
96494
80ac8ab05d8d
(syms_of_xfns): Only define x-select-font when both HAVE_FREETYPE and USE_GTK.
Jason Rumney <jasonr@gnu.org>
parents:
96290
diff
changeset
|
5993 #if defined (USE_GTK) && defined (HAVE_FREETYPE) |
|
95850
5301c67af098
(Fx_select_font): Rename from x-font-dialog.
Chong Yidong <cyd@stupidchicken.com>
parents:
95795
diff
changeset
|
5994 defsubr (&Sx_select_font); |
|
103840
a9bb4a9d0ebd
xfns.c (Fx_select_font): Remember last font selected in
Jan Dj?rv <jan.h.d@swipnet.se>
parents:
103706
diff
changeset
|
5995 x_last_font_name = NULL; |
|
95795
e01da5f86514
(Fx_font_dialog): New function.
Chong Yidong <cyd@stupidchicken.com>
parents:
95221
diff
changeset
|
5996 #endif |
|
24994
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5997 } |
|
d549b7ac676d
(x_real_positions): Don't subtract window borders
Gerd Moellmann <gerd@gnu.org>
parents:
24905
diff
changeset
|
5998 |
| 389 | 5999 #endif /* HAVE_X_WINDOWS */ |
| 52401 | 6000 |
| 6001 /* arch-tag: 55040d02-5485-4d58-8b22-95a7a05f3288 | |
| 6002 (do not change this comment) */ |
