X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/21733e4f154f8830fa568a347a0d6dbd59793c2b..9ab3ce4d2f1c6409d36072192bfce797ec189837:/src/widget.c diff --git a/src/widget.c b/src/widget.c index 28e9fc29a9..73c5149e2c 100644 --- a/src/widget.c +++ b/src/widget.c @@ -404,15 +404,13 @@ set_frame_size (EmacsFrame ew) might end up with a frame width that is not a multiple of the frame's character width which is bad for vertically split windows. */ - f->scroll_bar_actual_width - = FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f); compute_fringe_widths (f, 0); #if 0 /* This can run Lisp code, and it is dangerous to give out the frame to Lisp code before it officially exists. This is handled in Fx_create_frame so not needed here. */ - change_frame_size (f, h, w, 1, 0, 0); + change_frame_size (f, w, h, 1, 0, 0, 0); #endif char_to_pixel_size (ew, w, h, &pixel_width, &pixel_height); ew->core.width = pixel_width; @@ -467,7 +465,7 @@ update_wm_hints (EmacsFrame ew) if (! wmshell) return; #if 0 - check_frame_size (ew->emacs_frame.frame, &min_rows, &min_cols); + check_frame_size (ew->emacs_frame.frame, &min_cols, &min_rows, 0); #endif pixel_to_char_size (ew, ew->core.width, ew->core.height, @@ -503,26 +501,6 @@ widget_update_wm_size_hints (Widget widget) update_wm_hints (ew); } - -#if 0 - -static void -create_frame_gcs (EmacsFrame ew) -{ - struct frame *s = ew->emacs_frame.frame; - - s->output_data.x->normal_gc - = XCreateGC (XtDisplay (ew), RootWindowOfScreen (XtScreen (ew)), 0, 0); - s->output_data.x->reverse_gc - = XCreateGC (XtDisplay (ew), RootWindowOfScreen (XtScreen (ew)), 0, 0); - s->output_data.x->cursor_gc - = XCreateGC (XtDisplay (ew), RootWindowOfScreen (XtScreen (ew)), 0, 0); - s->output_data.x->black_relief.gc = 0; - s->output_data.x->white_relief.gc = 0; -} - -#endif /* 0 */ - static char setup_frame_cursor_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -545,7 +523,7 @@ setup_frame_gcs (EmacsFrame ew) font = Ffont_xlfd_name (font, Qnil); if (STRINGP (font)) { - XFontStruct *xfont = XLoadQueryFont (FRAME_X_DISPLAY_INFO (s)->display, + XFontStruct *xfont = XLoadQueryFont (FRAME_DISPLAY_INFO (s)->display, SSDATA (font)); if (xfont) { @@ -656,7 +634,6 @@ resize_cb (Widget widget, XEvent* event, Boolean* continue_to_dispatch) { - EmacsFrame ew = (EmacsFrame) widget; EmacsFrameResize (widget); } @@ -684,19 +661,7 @@ EmacsFrameRealize (Widget widget, XtValueMask *mask, XSetWindowAttributes *attrs static void EmacsFrameDestroy (Widget widget) { - EmacsFrame ew = (EmacsFrame) widget; - struct frame* s = ew->emacs_frame.frame; - - if (! s) emacs_abort (); - if (! s->output_data.x) emacs_abort (); - - block_input (); - x_free_gcs (s); - if (s->output_data.x->white_relief.gc) - XFreeGC (XtDisplay (widget), s->output_data.x->white_relief.gc); - if (s->output_data.x->black_relief.gc) - XFreeGC (XtDisplay (widget), s->output_data.x->black_relief.gc); - unblock_input (); + /* All GCs are now freed in x_free_frame_resources. */ } static void @@ -714,7 +679,7 @@ EmacsFrameResize (Widget widget) || ew->core.width != FRAME_PIXEL_WIDTH (f) || ew->core.height + x->menubar_height != FRAME_PIXEL_HEIGHT (f)) { - change_frame_size (f, rows, columns, 0, 1, 0); + change_frame_size (f, columns, rows, 0, 1, 0, 0); update_wm_hints (ew); update_various_frame_slots (ew); @@ -768,8 +733,8 @@ EmacsFrameSetValues (Widget cur_widget, Widget req_widget, Widget new_widget, Ar new->core.width = pixel_width; new->core.height = pixel_height; - change_frame_size (new->emacs_frame.frame, char_height, char_width, - 1, 0, 0); + change_frame_size (new->emacs_frame.frame, char_width, char_height, + 1, 0, 0, 0); needs_a_refresh = True; } @@ -831,7 +796,7 @@ EmacsFrameSetCharSize (Widget widget, int columns, int rows) EmacsFrame ew = (EmacsFrame) widget; struct frame *f = ew->emacs_frame.frame; - x_set_window_size (f, 0, columns, rows); + x_set_window_size (f, 0, columns, rows, 0); } @@ -839,7 +804,7 @@ void widget_store_internal_border (Widget widget) { EmacsFrame ew = (EmacsFrame) widget; - FRAME_PTR f = ew->emacs_frame.frame; + struct frame *f = ew->emacs_frame.frame; ew->emacs_frame.internal_border_width = f->internal_border_width; }