Mercurial > hg > xemacs-beta
annotate src/EmacsShell-sub.c @ 5167:e374ea766cc1
clean up, rearrange allocation statistics code
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-03-21 Ben Wing <ben@xemacs.org>
* alloc.c:
* alloc.c (assert_proper_sizing):
* alloc.c (c_readonly):
* alloc.c (malloced_storage_size):
* alloc.c (fixed_type_block_overhead):
* alloc.c (lisp_object_storage_size):
* alloc.c (inc_lrecord_stats):
* alloc.c (dec_lrecord_stats):
* alloc.c (pluralize_word):
* alloc.c (object_memory_usage_stats):
* alloc.c (Fobject_memory_usage):
* alloc.c (compute_memusage_stats_length):
* alloc.c (disksave_object_finalization_1):
* alloc.c (Fgarbage_collect):
* mc-alloc.c:
* mc-alloc.c (mc_alloced_storage_size):
* mc-alloc.h:
No functionality change here. Collect the allocations-statistics
code that was scattered throughout alloc.c into one place. Add
remaining section headings so that all sections have headings
clearly identifying the start of the section and its purpose.
Expose mc_alloced_storage_size() even when not MEMORY_USAGE_STATS;
this fixes build problems and is related to the export of
lisp_object_storage_size() and malloced_storage_size() when
non-MEMORY_USAGE_STATS in the previous change set.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sun, 21 Mar 2010 04:41:49 -0500 |
parents | 726060ee587c |
children | 308d34e9f07d |
rev | line source |
---|---|
428 | 1 /* Emacs shell widget -- define the two widgets. |
2 Copyright (C) 1994, 1995 Sun Microsystems, Inc. | |
3 | |
4 This file is part of XEmacs. | |
5 | |
6 XEmacs is free software; you can redistribute it and/or modify it | |
7 under the terms of the GNU General Public License as published by the | |
8 Free Software Foundation; either version 2, or (at your option) any | |
9 later version. | |
10 | |
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with XEmacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
19 Boston, MA 02111-1307, USA. */ | |
20 | |
21 /* Synched up with: Not in FSF. */ | |
22 | |
23 /* Written by Ben Wing, May, 1994. */ | |
24 | |
25 /* | |
26 It is rather unfortunate that we have to do this. Blame those | |
27 short-sighted people who designed the monstrosities known as | |
28 Xt and ICCCM. | |
29 */ | |
30 | |
31 /* | |
32 This widget is not actually Emacs-specific; perhaps there could | |
33 be a better name than "EmacsShell". What it does is work around | |
34 a limitation in Xt in correctly dealing with the window-manager | |
35 size hints with applications that | |
36 | |
37 (a) dynamically change their window size | |
38 (b) have a cell size (width-inc and height-inc) other than 1 | |
39 | |
40 and | |
41 | |
42 (c) cannot predict in advance exactly what size their shell will be | |
43 (This is the more common situation, when you have a number | |
44 of widgets, each with their own size ideas) | |
45 | |
46 This widget assumes that your program contains a fixed "base size" | |
47 plus some number of cells (e.g. character cells). The WMShell | |
48 resources "widthInc" and "heightInc" specify the size of a | |
49 character cell, and the window manager will report the app's | |
50 size in cells rather than in pixels. | |
51 | |
52 If you use this widget, do not use the WMShell resources | |
53 "baseWidth", "baseHeight", "minWidth", or "minHeight". | |
54 Instead, use "widthCells" and "heightCells" to specify the | |
55 current size in cells (you must keep this up-to-date), | |
56 and "minWidthCells" and "minHeightCells" to specify the | |
57 minimum size in cells. | |
58 | |
59 Every time that the program issues a size command, the | |
60 "baseWidth", "baseHeight", "minWidth", and "minHeight" fields | |
61 of the WM_NORMAL_HINTS property will be updated to stay in | |
62 line with the resource values specified above. The calculations | |
63 are done once the desired shell size is known but before the | |
64 window-manager size-change request is issued. (We must do it | |
65 at this time because before then we don't know what size we | |
66 will request, and after the request the deed has already | |
67 been done.) | |
68 | |
69 After you change the "baseWidth", "baseHeight", "minWidth", | |
70 or "minHeight" resources, you need to call | |
71 EmacsShellUpdateSizeHints() to manually update the size | |
72 hints, except in the following two circumstances: | |
73 | |
74 (a) you are about to make a geometry request. | |
75 (b) you are changing only "baseWidth" and "baseHeight" | |
76 from within a resize procedure. (In this case, | |
77 the size hints are already correct.) | |
78 | |
79 */ | |
80 | |
81 #include <config.h> | |
82 | |
83 #include <stdio.h> | |
84 #include <stdlib.h> | |
85 #include <X11/StringDefs.h> | |
86 #include "xintrinsicp.h" | |
87 #include <X11/Shell.h> | |
88 #include <X11/ShellP.h> | |
89 #include <X11/Vendor.h> | |
90 #include <X11/VendorP.h> | |
91 #include "EmacsShellP.h" | |
4528
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
92 #include "../lwlib/xt-wrappers.h" |
428 | 93 |
2500 | 94 #define ABORT abort |
95 | |
428 | 96 #if defined (DEFINE_TOP_LEVEL_EMACS_SHELL) |
97 #define EMACS_SHELL_WIDGET TopLevelEmacsShellWidget | |
98 #define SUPERCLASS_WIDGET_CLASS topLevelShellWidgetClass | |
99 #define SUPERCLASS_CLASS_REC topLevelShellClassRec | |
100 #define EMACS_SHELL_REC TopLevelEmacsShellRec | |
101 #define EMACS_SHELL_CLASS_REC topLevelEmacsShellClassRec | |
102 #define EMACS_SHELL_CLASS_REC_TYPE TopLevelEmacsShellClassRec | |
103 #define EMACS_SHELL_CLASS_NAME "TopLevelEmacsShell" | |
104 #define EMACS_SHELL_WIDGET_CLASS topLevelEmacsShellWidgetClass | |
105 #define EMACS_SHELL_UPDATE_SIZE_HINTS TopLevelEmacsShellUpdateSizeHints | |
106 #elif defined (DEFINE_TRANSIENT_EMACS_SHELL) | |
107 #define EMACS_SHELL_WIDGET TransientEmacsShellWidget | |
108 #define SUPERCLASS_WIDGET_CLASS transientShellWidgetClass | |
109 #define SUPERCLASS_CLASS_REC transientShellClassRec | |
110 #define EMACS_SHELL_REC TransientEmacsShellRec | |
111 #define EMACS_SHELL_CLASS_REC transientEmacsShellClassRec | |
112 #define EMACS_SHELL_CLASS_REC_TYPE TransientEmacsShellClassRec | |
113 #define EMACS_SHELL_CLASS_NAME "TransientEmacsShell" | |
114 #define EMACS_SHELL_WIDGET_CLASS transientEmacsShellWidgetClass | |
115 #define EMACS_SHELL_UPDATE_SIZE_HINTS TransientEmacsShellUpdateSizeHints | |
116 #else | |
117 Error. Must define either DEFINE_TOP_LEVEL_EMACS_SHELL or | |
118 DEFINE_TRANSIENT_EMACS_SHELL. | |
119 #endif | |
120 | |
121 typedef struct { | |
122 XtPointer next_extension; | |
123 XrmQuark record_type; | |
124 long version; | |
125 Cardinal record_size; | |
126 } GenericClassExtRec; | |
127 | |
128 static XtGeometryResult RootGeometryManager (Widget gw, | |
129 XtWidgetGeometry *request, XtWidgetGeometry *reply); | |
130 static void ChangeManaged (Widget w); | |
131 | |
132 /* snarfed from Shell.c */ | |
133 #define BIGSIZE ((Dimension)32767) | |
134 | |
135 static XtResource resources[] = { | |
136 #define offset(field) XtOffset(EMACS_SHELL_WIDGET, emacs_shell.field) | |
137 #define coreoffset(field) XtOffset(EMACS_SHELL_WIDGET, core.field) | |
4528
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
138 #define res(name,_class,member,size) \ |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
139 { (String) name, (String) _class, XtRInt, sizeof (int), \ |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
140 offset (member), XtRImmediate, (XtPointer)0 } |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
141 #define motifres(name,member) \ |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
142 { (String) name, XtCPosition, XtRPosition, sizeof (Position), \ |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
143 coreoffset (member), XtRImmediate, (XtPointer)BIGSIZE } |
428 | 144 #ifdef LWLIB_USES_MOTIF |
145 /* *** BOGOSITY^10! *** The Motif VendorShell fucks around with | |
146 the default values for X and Y, for no obvious reason. This | |
147 causes Shell to indicate that the defaults of (0,0) were | |
148 program-specified, instead of letting the WM do what it wants. */ | |
4528
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
149 motifres (XtNx, x), |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
150 motifres (XtNy, y), |
428 | 151 #endif |
4528
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
152 res (XtNwidthCells, XtCWidthCells, width_cells, 0), |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
153 res (XtNheightCells, XtCHeightCells, height_cells, 0), |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
154 res (XtNminWidthCells, XtCMinWidthCells, min_width_cells, 0), |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
155 res (XtNminHeightCells, XtCMinHeightCells, min_height_cells, 0), |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
156 #undef offset |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
157 #undef coreoffset |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
158 #undef res |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
159 #undef motifres |
428 | 160 }; |
161 | |
162 static CompositeClassExtensionRec compositeClassExtRec = { | |
163 NULL, | |
164 NULLQUARK, | |
165 XtCompositeExtensionVersion, | |
440 | 166 sizeof (CompositeClassExtensionRec), |
428 | 167 TRUE, |
168 }; | |
169 | |
170 static ShellClassExtensionRec shellClassExtRec = { | |
171 NULL, | |
172 NULLQUARK, | |
173 XtShellExtensionVersion, | |
440 | 174 sizeof (ShellClassExtensionRec), |
428 | 175 RootGeometryManager |
176 }; | |
177 | |
178 EMACS_SHELL_CLASS_REC_TYPE EMACS_SHELL_CLASS_REC = { | |
179 { /* | |
180 * core_class fields | |
181 */ | |
182 /* superclass */ (WidgetClass) &SUPERCLASS_CLASS_REC, | |
183 /* class_name */ (String) EMACS_SHELL_CLASS_NAME, | |
440 | 184 /* size */ sizeof (EMACS_SHELL_REC), |
428 | 185 /* Class Initializer */ NULL, |
186 /* class_part_initialize*/ NULL, /* XtInheritClassPartInitialize, */ | |
187 /* Class init'ed ? */ FALSE, | |
188 /* initialize */ NULL, | |
189 /* initialize_notify */ NULL, | |
190 /* realize */ XtInheritRealize, | |
191 /* actions */ NULL, | |
192 /* num_actions */ 0, | |
193 /* resources */ resources, | |
194 /* resource_count */ XtNumber (resources), | |
195 /* xrm_class */ NULLQUARK, | |
1294 | 196 /* compress_motion */ TRUE, |
197 /* compress_exposure */ XtExposeCompressMaximal | XtExposeNoRegion, | |
198 /* compress_enterleave*/ TRUE, | |
428 | 199 /* visible_interest */ TRUE, |
200 /* destroy */ NULL, | |
201 /* resize */ XtInheritResize, | |
202 /* expose */ NULL, | |
203 /* set_values */ NULL, /* XtInheritSetValues, */ | |
204 /* set_values_hook */ NULL, | |
205 /* set_values_almost */ XtInheritSetValuesAlmost, | |
206 /* get_values_hook */ NULL, | |
207 /* accept_focus */ NULL, | |
208 /* intrinsics version */ XtVersion, | |
209 /* callback offsets */ NULL, | |
210 /* tm_table */ NULL, | |
211 /* query_geometry */ NULL, | |
212 /* display_accelerator*/ NULL, | |
213 /* extension */ NULL | |
214 },{ /* Composite */ | |
215 /* geometry_manager */ XtInheritGeometryManager, | |
216 /* change_managed */ ChangeManaged, | |
217 /* insert_child */ XtInheritInsertChild, | |
218 /* delete_child */ XtInheritDeleteChild, | |
219 /* extension */ (XtPointer)&compositeClassExtRec | |
220 },{ /* Shell */ | |
221 /* extension */ (XtPointer)&shellClassExtRec | |
222 },{ /* WMShell */ | |
223 /* extension */ NULL | |
224 },{ /* VendorShell */ | |
225 /* extension */ NULL | |
226 },{ /* TopLevelShell or TransientShell */ | |
227 /* both have exactly one XtPointer here. */ | |
228 /* extension */ NULL | |
229 },{ /* EmacsShell */ | |
230 0 | |
231 } | |
232 }; | |
233 | |
234 WidgetClass EMACS_SHELL_WIDGET_CLASS = (WidgetClass) &EMACS_SHELL_CLASS_REC; | |
235 | |
236 static void | |
237 update_size_hints_internal (EMACS_SHELL_WIDGET w, | |
238 int width, int height) | |
239 { | |
240 int base_width, base_height; | |
241 int cell_width, cell_height; | |
242 Arg al [10]; | |
243 | |
244 /* time to update them thar size hints */ | |
245 cell_width = w->wm.size_hints.width_inc; | |
246 cell_height = w->wm.size_hints.height_inc; | |
247 base_width = width - cell_width * w->emacs_shell.width_cells; | |
248 base_height = height - cell_height * w->emacs_shell.height_cells; | |
249 #ifdef DEBUG_GEOMETRY_MANAGEMENT | |
250 /* Very useful info when debugging geometry management problems. | |
251 When it's guaranteed that no more such problems exist, take | |
252 this stuff out. */ | |
253 printf ("update_size_hints_internal:\n"); | |
254 printf (" actual pixel size: %d %d\n", width, height); | |
255 printf (" cell size in pixels: %d %d\n", cell_width, cell_height); | |
256 printf (" text area size in cells: %d %d\n", w->emacs_shell.width_cells, | |
257 w->emacs_shell.height_cells); | |
258 printf (" base size set to: %d %d\n", base_width, base_height); | |
259 fflush (stdout); | |
260 #endif | |
4528
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
261 Xt_SET_ARG(al [0], XtNbaseWidth, base_width); |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
262 Xt_SET_ARG(al [1], XtNbaseHeight, base_height); |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
263 Xt_SET_ARG(al [2], XtNminWidth, base_width + |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
264 cell_width * w->emacs_shell.min_width_cells); |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
265 Xt_SET_ARG(al [3], XtNminHeight, base_height + |
726060ee587c
First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4522
diff
changeset
|
266 cell_height * w->emacs_shell.min_height_cells); |
428 | 267 XtSetValues ((Widget) w, al, 4); |
268 } | |
269 | |
270 static XtGeometryResult | |
271 SuperClassRootGeometryManager (Widget gw, | |
272 XtWidgetGeometry *request, | |
273 XtWidgetGeometry *reply) | |
274 { | |
275 ShellWidgetClass swc = (ShellWidgetClass) SUPERCLASS_WIDGET_CLASS; | |
276 ShellClassExtensionRec *scer; | |
277 GenericClassExtRec *gcer; | |
278 | |
279 /* find the shell extension record that specifies the | |
3381 | 280 root geometry manager method |
281 #### We could use XtGetClassExtension here. */ | |
428 | 282 for (gcer = (GenericClassExtRec *) swc->shell_class.extension; |
283 gcer; | |
284 gcer = (GenericClassExtRec *) gcer->next_extension) | |
285 { | |
286 if (gcer->record_type == NULLQUARK) | |
287 break; | |
288 } | |
289 | |
3381 | 290 /* #### The R11.6.4 Xt specification says if we don't find NULLQUARK here, |
291 we should assume root_geometry_manager = XtInheritRootGeometryManager. | |
292 Is that actually callable? */ | |
428 | 293 if (!gcer) |
2500 | 294 ABORT (); |
428 | 295 |
296 /* call it to actually make the geometry request */ | |
297 scer = (ShellClassExtensionRec *) gcer; | |
298 return (scer->root_geometry_manager)(gw, request, reply); | |
299 } | |
300 | |
301 static XtGeometryResult | |
302 RootGeometryManager (Widget gw, | |
303 XtWidgetGeometry *request, | |
304 XtWidgetGeometry *reply) | |
305 { | |
306 EMACS_SHELL_WIDGET w = (EMACS_SHELL_WIDGET) gw; | |
307 /* OK since this file is not dumped */ | |
308 static int reentrant = 0; | |
309 XtGeometryResult result; | |
310 | |
311 if (reentrant) | |
2500 | 312 ABORT (); |
428 | 313 reentrant++; |
314 | |
315 #ifdef DEBUG_GEOMETRY_MANAGEMENT | |
316 printf ("root_geometry_manager:\n"); | |
317 printf (" current shell size: %d %d\n", w->core.width, w->core.height); | |
318 if (request->request_mode & CWWidth) | |
319 printf ("width requested;"); | |
320 if (request->request_mode & CWHeight) | |
321 printf ("height requested;"); | |
322 printf ("\n"); | |
323 printf (" requested shell size: %d %d\n", request->width, request->height); | |
324 #endif | |
325 /* update the size hints */ | |
326 update_size_hints_internal (w, | |
327 request->request_mode & CWWidth ? | |
328 request->width : w->core.width, | |
329 request->request_mode & CWHeight ? | |
330 request->height : w->core.height); | |
331 | |
332 result = SuperClassRootGeometryManager (gw, request, reply); | |
333 | |
334 #ifdef DEBUG_GEOMETRY_MANAGEMENT | |
335 printf (" result: %s\n", | |
336 result == XtGeometryYes ? "XtGeometryYes" : | |
337 result == XtGeometryNo ? "XtGeometryNo" : | |
338 result == XtGeometryAlmost ? "XtGeometryAlmost" : | |
339 "XtGeometryDone"); | |
340 if (reply->request_mode & CWWidth) | |
3385 | 341 printf ("width returned was %d%s", |
342 reply->width, | |
343 reply->request_mode & CWHeight ? "; " : ".\n"); | |
428 | 344 if (reply->request_mode & CWHeight) |
3385 | 345 printf ("height returned was %d.\n", reply->height); |
346 /* #### does this also need to depend on the result? | |
347 With XtGeometryYes there doesn't seem to be a useful reply object. */ | |
348 printf (" resulting shell size: %d %d\n", | |
349 reply->request_mode & CWWidth ? reply->width : w->core.width, | |
350 reply->request_mode & CWHeight ? reply->height : w->core.height); | |
428 | 351 printf ("----------\n"); |
352 fflush (stdout); | |
353 #endif | |
354 reentrant--; | |
355 return result; | |
356 } | |
357 | |
358 static void | |
359 ChangeManaged (Widget wid) | |
360 { | |
361 EMACS_SHELL_WIDGET w = (EMACS_SHELL_WIDGET) wid; | |
362 | |
363 /* If not realized, then we're being called from XtRealizeWidget(). | |
364 RootGeometryManager() has not yet been called, and thus our | |
365 base size is incorrect. We need to set it now or the Shell | |
366 will mess up geometry specifications with negative positional | |
367 offsets. */ | |
368 if (!XtIsRealized (wid)) | |
369 { | |
370 Widget child = NULL; | |
371 Cardinal i; | |
372 | |
373 /* the managed child indicates what our size is */ | |
374 for (i = 0; i < w->composite.num_children; i++) { | |
375 if (XtIsManaged(w->composite.children[i])) { | |
376 child = w->composite.children[i]; | |
377 break; | |
378 } | |
379 } | |
380 | |
381 update_size_hints_internal (w, child->core.width, child->core.height); | |
382 } | |
383 | |
384 /* call the real ChangeManaged */ | |
385 (((ShellWidgetClass) SUPERCLASS_WIDGET_CLASS)-> | |
386 composite_class.change_managed)(wid); | |
387 } | |
388 | |
389 | |
390 /******************* external entry points *********************/ | |
391 | |
392 void | |
393 EMACS_SHELL_UPDATE_SIZE_HINTS (Widget gw) | |
394 { | |
395 EMACS_SHELL_WIDGET w = (EMACS_SHELL_WIDGET) gw; | |
396 update_size_hints_internal (w, w->core.width, w->core.height); | |
397 } |