X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fframe-x.c;h=f3aaef1676aae23d89379184926e2d6d56dd1d68;hb=9ce94a1b07586a16174d00e7c27ca2b652b0a127;hp=dbd70cb878392b5fcad79edf5c92c8d348aebcfd;hpb=59eec5f21669e81977b5b1fe9bf717cab49cf7fb;p=chise%2Fxemacs-chise.git.1 diff --git a/src/frame-x.c b/src/frame-x.c index dbd70cb..f3aaef1 100644 --- a/src/frame-x.c +++ b/src/frame-x.c @@ -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 @@ -2654,7 +2658,7 @@ x_focus_on_frame (struct frame *f) XFlush (XtDisplay (shell_widget)); /* hey, I'd like to DEBUG this... */ } -/* Destroy the X window of frame S. */ +/* Destroy the X window of frame F. */ static void x_delete_frame (struct frame *f) { @@ -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,9 +2748,11 @@ 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 ();