X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fframe-x.c;h=780367d757bd9400aa5f5f1cf1f2c62a6f93b8fa;hb=3f711eea68ce5fd586297b43c8d9936cd2ba916f;hp=23ef0701f436070c6b5a3a88c169c94ac905d122;hpb=2b7371e841478fd7b9bc7e4d9a515e0c26b9ed9a;p=chise%2Fxemacs-chise.git.1 diff --git a/src/frame-x.c b/src/frame-x.c index 23ef070..780367d 100644 --- a/src/frame-x.c +++ b/src/frame-x.c @@ -210,14 +210,14 @@ decode_x_frame (Lisp_Object frame) void x_wm_mark_shell_size_user_specified (Widget wmshell) { - if (! XtIsWMShell (wmshell)) abort (); + if (! XtIsWMShell (wmshell)) ABORT (); EmacsShellSetSizeUserSpecified (wmshell); } void x_wm_mark_shell_position_user_specified (Widget wmshell) { - if (! XtIsWMShell (wmshell)) abort (); + if (! XtIsWMShell (wmshell)) ABORT (); EmacsShellSetPositionUserSpecified (wmshell); } @@ -226,7 +226,7 @@ x_wm_mark_shell_position_user_specified (Widget wmshell) void x_wm_set_shell_iconic_p (Widget shell, int iconic_p) { - if (! XtIsWMShell (shell)) abort (); + if (! XtIsWMShell (shell)) ABORT (); /* Because of questionable logic in Shell.c, this sequence can't work: @@ -256,9 +256,9 @@ x_wm_set_cell_size (Widget wmshell, int cw, int ch) Arg al [2]; if (!XtIsWMShell (wmshell)) - abort (); + ABORT (); if (cw <= 0 || ch <= 0) - abort (); + ABORT (); XtSetArg (al [0], XtNwidthInc, cw); XtSetArg (al [1], XtNheightInc, ch); @@ -271,7 +271,7 @@ x_wm_set_variable_size (Widget wmshell, int width, int height) Arg al [2]; if (!XtIsWMShell (wmshell)) - abort (); + ABORT (); #ifdef DEBUG_GEOMETRY_MANAGEMENT /* See comment in EmacsShell.c */ printf ("x_wm_set_variable_size: %d %d\n", width, height); @@ -338,7 +338,7 @@ x_wm_store_class_hints (Widget shell, char *frame_name) XClassHint classhint; if (!XtIsWMShell (shell)) - abort (); + ABORT (); XtGetApplicationNameAndClass (dpy, &app_name, &app_class); classhint.res_name = frame_name; @@ -354,7 +354,7 @@ x_wm_maybe_store_wm_command (struct frame *f) struct device *d = XDEVICE (FRAME_DEVICE (f)); if (!XtIsWMShell (w)) - abort (); + ABORT (); if (NILP (DEVICE_X_WM_COMMAND_FRAME (d))) { @@ -1637,7 +1637,7 @@ x_initialize_frame_size (struct frame *f) /* OK, we're a top-level shell. */ if (!XtIsWMShell (wmshell)) - abort (); + ABORT (); /* If the EmacsFrame doesn't have a geometry but the shell does, treat that as the geometry of the frame. @@ -1811,10 +1811,14 @@ x_layout_widgets (Widget w, XtPointer client_data, XtPointer call_data) #endif /* finally the text area */ - XtConfigureWidget (text, text_x, text_y, - width - 2*textbord, - height - text_y - 2*textbord, - textbord); + { + Dimension nw = width - 2*textbord; + Dimension nh = height - text_y - 2*textbord; + + if (nh != f->pixheight || nw != f->pixwidth) + MARK_FRAME_SIZE_SLIPPED (f); + XtConfigureWidget (text, text_x, text_y, nw, nh, textbord); + } } static void @@ -2673,14 +2677,14 @@ x_delete_frame (struct frame *f) dpy = XtDisplay (FRAME_X_SHELL_WIDGET (f)); #ifdef EXTERNAL_WIDGET - expect_x_error (XtDisplay (FRAME_X_SHELL_WIDGET (f))); + expect_x_error (dpy); /* for obscure reasons having (I think) to do with the internal window-to-widget hierarchy maintained by Xt, we have to call XtUnrealizeWidget() here. Xt can really suck. */ if (f->being_deleted) XtUnrealizeWidget (FRAME_X_SHELL_WIDGET (f)); XtDestroyWidget (FRAME_X_SHELL_WIDGET (f)); - x_error_occurred_p (XtDisplay (FRAME_X_SHELL_WIDGET (f))); + x_error_occurred_p (dpy); #else XtDestroyWidget (FRAME_X_SHELL_WIDGET (f)); /* make sure the windows are really gone! */ @@ -2744,12 +2748,14 @@ x_update_frame_external_traits (struct frame* frm, Lisp_Object name) Lisp_Object font = FACE_FONT (Vdefault_face, frame, Vcharset_ascii); if (!EQ (font, Vthe_null_font_instance)) - XtSetArg (al[ac], XtNfont, - (void *) FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font))); - ac++; + { + XtSetArg (al[ac], XtNfont, + (void *) FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font))); + ac++; + } } else - abort (); + ABORT (); XtSetValues (FRAME_X_TEXT_WIDGET (frm), al, ac);