return wmshell;
}
+#if 0 /* Currently not used. */
+
static void
mark_shell_size_user_specified (wmshell)
Widget wmshell;
((WMShellWidget) wmshell)->wm.size_hints.flags |= USSize;
}
+#endif
+
/* Can't have static frame locals because of some broken compilers.
Normally, initializing a variable like this doesn't work in emacs,
thus have its data not go into text space) because Xt needs to
write to initialized data objects too.
*/
+#if 0
static Boolean first_frame_p = True;
+#endif
static void
set_frame_size (ew)
*/
- /* Geometry of the AppShell */
- int app_flags = 0;
- int app_x = 0;
- int app_y = 0;
- unsigned int app_w = 0;
- unsigned int app_h = 0;
-
- /* Geometry of the EmacsFrame */
- int frame_flags = 0;
- int frame_x = 0;
- int frame_y = 0;
- unsigned int frame_w = 0;
- unsigned int frame_h = 0;
-
/* Hairily merged geometry */
- int x = 0;
- int y = 0;
unsigned int w = ew->emacs_frame.frame->width;
unsigned int h = ew->emacs_frame.frame->height;
- int flags = 0;
Widget wmshell = get_wm_shell ((Widget) ew);
/* Each Emacs shell is now independent and top-level. */
- Widget app_shell = wmshell;
if (! XtIsSubclass (wmshell, shellWidgetClass)) abort ();
treat that as the geometry of the frame. (Is this bogus?
I'm not sure.) */
if (ew->emacs_frame.geometry == 0)
- XtVaGetValues (wmshell, XtNgeometry, &ew->emacs_frame.geometry, 0);
+ XtVaGetValues (wmshell, XtNgeometry, &ew->emacs_frame.geometry, NULL);
/* If the Shell is iconic, then the EmacsFrame is iconic. (Is
this bogus? I'm not sure.) */
if (!ew->emacs_frame.iconic)
- XtVaGetValues (wmshell, XtNiconic, &ew->emacs_frame.iconic, 0);
+ XtVaGetValues (wmshell, XtNiconic, &ew->emacs_frame.iconic, NULL);
{
char *geom = 0;
- XtVaGetValues (app_shell, XtNgeometry, &geom, 0);
+ XtVaGetValues (app_shell, XtNgeometry, &geom, NULL);
if (geom)
app_flags = XParseGeometry (geom, &app_x, &app_y, &app_w, &app_h);
}
/* If the AppShell is iconic, then the EmacsFrame is iconic. */
if (!ew->emacs_frame.iconic)
- XtVaGetValues (app_shell, XtNiconic, &ew->emacs_frame.iconic, 0);
+ XtVaGetValues (app_shell, XtNiconic, &ew->emacs_frame.iconic, NULL);
first_frame_p = False;
}
{
struct frame* frame = ew->emacs_frame.frame;
Dimension pixel_width, pixel_height;
- char shell_position [32];
/* Take into account the size of the scrollbar. Always use the
number of columns occupied by the scroll bar here otherwise we
* FONT_WIDTH (frame->output_data.x->font)));
frame->output_data.x->flags_areas_extra
- = 2 * FRAME_FLAGS_AREA_WIDTH (frame);
+ = FRAME_FLAGS_AREA_WIDTH (frame);
- change_frame_size (frame, h, w, 1, 0);
+ change_frame_size (frame, h, w, 1, 0, 0);
char_to_pixel_size (ew, w, h, &pixel_width, &pixel_height);
ew->core.width = pixel_width;
ew->core.height = pixel_height;
len = strlen (shell_position) + 1;
tem = (char *) xmalloc (len);
strncpy (tem, shell_position, len);
- XtVaSetValues (wmshell, XtNgeometry, tem, 0);
+ XtVaSetValues (wmshell, XtNgeometry, tem, NULL);
}
else if (flags & (WidthValue | HeightValue))
{
len = strlen (shell_position) + 1;
tem = (char *) xmalloc (len);
strncpy (tem, shell_position, len);
- XtVaSetValues (wmshell, XtNgeometry, tem, 0);
+ XtVaSetValues (wmshell, XtNgeometry, tem, NULL);
}
/* If the geometry spec we're using has W/H components, mark the size
/* Also assign the iconic status of the frame to the Shell, so that
the WM sees it. */
- XtVaSetValues (wmshell, XtNiconic, ew->emacs_frame.iconic, 0);
+ XtVaSetValues (wmshell, XtNiconic, ew->emacs_frame.iconic, NULL);
#endif /* 0 */
}
}
XtNheightInc, ch,
XtNminWidth, base_width + min_cols * cw,
XtNminHeight, base_height + min_rows * ch,
- 0);
+ NULL);
}
+#if 0
+
static void
create_frame_gcs (ew)
EmacsFrame ew;
s->output_data.x->white_relief.gc = 0;
}
+#endif /* 0 */
+
static char setup_frame_cursor_bits[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
{
EmacsFrame ew = (EmacsFrame)widget;
- attrs->event_mask = (STANDARD_EVENT_SET | PropertyChangeMask
- | SubstructureNotifyMask | SubstructureRedirectMask);
+ /* This used to contain SubstructureRedirectMask, but this turns out
+ to be a problem with XIM on Solaris, and events from that mask
+ don't seem to be used. Let's check that. */
+ attrs->event_mask = (STANDARD_EVENT_SET
+ | PropertyChangeMask
+ | SubstructureNotifyMask);
*mask |= CWEventMask;
XtCreateWindow (widget, InputOutput, (Visual *)CopyFromParent, *mask,
attrs);
int rows;
pixel_to_char_size (ew, ew->core.width, ew->core.height, &columns, &rows);
- change_frame_size (f, rows, columns, 0, 1);
+ change_frame_size (f, rows, columns, 0, 1, 0);
update_wm_hints (ew);
update_various_frame_slots (ew);
new->core.height = pixel_height;
change_frame_size (new->emacs_frame.frame, char_height, char_width,
- 1, 0);
+ 1, 0, 0);
needs_a_refresh = True;
}
if (cur->emacs_frame.iconic != new->emacs_frame.iconic)
{
Widget wmshell = get_wm_shell ((Widget) cur);
- XtVaSetValues (wmshell, XtNiconic, new->emacs_frame.iconic, 0);
+ XtVaSetValues (wmshell, XtNiconic, new->emacs_frame.iconic, NULL);
}
return needs_a_refresh;
int rows;
{
EmacsFrame ew = (EmacsFrame) widget;
- Dimension pixel_width, pixel_height, granted_width, granted_height;
- XtGeometryResult result;
+ Dimension pixel_width, pixel_height;
struct frame *f = ew->emacs_frame.frame;
Arg al[10];
int ac = 0;
- Dimension border_width;
if (columns < 3) columns = 3; /* no way buddy */
: (FRAME_SCROLL_BAR_COLS (f) * FONT_WIDTH (f->output_data.x->font)));
f->output_data.x->flags_areas_extra
- = 2 * FRAME_FLAGS_AREA_WIDTH (f);
+ = FRAME_FLAGS_AREA_WIDTH (f);
char_to_pixel_size (ew, columns, rows, &pixel_width, &pixel_height);
lw_refigure_widget (f->output_data.x->column_widget, False);
update_hints_inhibit = 1;
- ac = 0;
- XtSetArg (al[ac], XtNheight, pixel_height); ac++;
- XtSetArg (al[ac], XtNwidth, pixel_width); ac++;
- XtSetValues ((Widget) ew, al, ac);
+ /* Do parents first, otherwise LessTif's geometry
+ management enters an infinite loop (as of 2000-01-15). */
+ XtVaSetValues (f->output_data.x->widget,
+ XtNheight, outer_widget_height + hdelta,
+ XtNwidth, outer_widget_width + wdelta, NULL);
+ XtVaSetValues (f->output_data.x->column_widget,
+ XtNheight, column_widget_height + hdelta,
+ XtNwidth, column_widget_width + wdelta, NULL);
+ XtVaSetValues ((Widget) ew,
+ XtNheight, pixel_height,
+ XtNwidth, pixel_width, NULL);
- ac = 0;
- XtSetArg (al[ac], XtNheight, column_widget_height + hdelta); ac++;
- XtSetArg (al[ac], XtNwidth, column_widget_width + wdelta); ac++;
- XtSetValues (f->output_data.x->column_widget, al, ac);
-
- ac = 0;
- XtSetArg (al[ac], XtNheight, outer_widget_height + hdelta); ac++;
- XtSetArg (al[ac], XtNwidth, outer_widget_width + wdelta); ac++;
- XtSetValues (f->output_data.x->widget, al, ac);
-
lw_refigure_widget (f->output_data.x->column_widget, True);
update_hints_inhibit = 0;