diff options
author | Jim Blandy <[email protected]> | 1992-07-14 16:25:43 +0000 |
---|---|---|
committer | Jim Blandy <[email protected]> | 1992-07-14 16:25:43 +0000 |
commit | f676886a9ea3e4f2cb9275a658c69c899056a500 (patch) | |
tree | 7a023de027febdad462cf452f6153cda6af17339 /src/xfns.c | |
parent | 7708e9bd10bbcbb024b9e72b934eae5cbb252872 (diff) |
*** empty log message ***
Diffstat (limited to 'src/xfns.c')
-rw-r--r-- | src/xfns.c | 1688 |
1 files changed, 844 insertions, 844 deletions
diff --git a/src/xfns.c b/src/xfns.c index 6eb248c6ba..12e211a512 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -28,7 +28,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "lisp.h" #include "xterm.h" -#include "screen.h" +#include "frame.h" #include "window.h" #include "buffer.h" #include "dispextern.h" @@ -38,7 +38,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef HAVE_X_WINDOWS extern void abort (); -void x_set_screen_param (); +void x_set_frame_param (); #define min(a,b) ((a) < (b) ? (a) : (b)) #define max(a,b) ((a) > (b) ? (a) : (b)) @@ -194,7 +194,7 @@ char minibuffer_iconidentity[MAXICID]; Time mouse_timestamp; Lisp_Object Qundefined_color; -Lisp_Object Qx_screen_parameter; +Lisp_Object Qx_frame_parameter; extern Lisp_Object Vwindow_system_version; @@ -204,112 +204,112 @@ extern Lisp_Object Vglobal_mouse_map; /* Points to table of defined typefaces. */ struct face *x_face_table[MAX_FACES_AND_GLYPHS]; -/* Return the Emacs screen-object corresponding to an X window. - It could be the screen's main window or an icon window. */ +/* Return the Emacs frame-object corresponding to an X window. + It could be the frame's main window or an icon window. */ -struct screen * -x_window_to_screen (wdesc) +struct frame * +x_window_to_frame (wdesc) int wdesc; { - Lisp_Object tail, screen; - struct screen *s; + Lisp_Object tail, frame; + struct frame *f; - for (tail = Vscreen_list; CONSP (tail); tail = XCONS (tail)->cdr) + for (tail = Vframe_list; CONSP (tail); tail = XCONS (tail)->cdr) { - screen = XCONS (tail)->car; - if (XTYPE (screen) != Lisp_Screen) + frame = XCONS (tail)->car; + if (XTYPE (frame) != Lisp_Frame) continue; - s = XSCREEN (screen); - if (s->display.x->window_desc == wdesc - || s->display.x->icon_desc == wdesc) - return s; + f = XFRAME (frame); + if (f->display.x->window_desc == wdesc + || f->display.x->icon_desc == wdesc) + return f; } return 0; } -/* Map an X window that implements a scroll bar to the Emacs screen it +/* Map an X window that implements a scroll bar to the Emacs frame it belongs to. Also store in *PART a symbol identifying which part of the scroll bar it is. */ -struct screen * +struct frame * x_window_to_scrollbar (wdesc, part_ptr, prefix_ptr) int wdesc; Lisp_Object *part_ptr; enum scroll_bar_prefix *prefix_ptr; { - Lisp_Object tail, screen; - struct screen *s; + Lisp_Object tail, frame; + struct frame *f; - for (tail = Vscreen_list; CONSP (tail); tail = XCONS (tail)->cdr) + for (tail = Vframe_list; CONSP (tail); tail = XCONS (tail)->cdr) { - screen = XCONS (tail)->car; - if (XTYPE (screen) != Lisp_Screen) + frame = XCONS (tail)->car; + if (XTYPE (frame) != Lisp_Frame) continue; - s = XSCREEN (screen); + f = XFRAME (frame); if (part_ptr == 0 && prefix_ptr == 0) - return s; + return f; - if (s->display.x->v_scrollbar == wdesc) + if (f->display.x->v_scrollbar == wdesc) { *part_ptr = Qvscrollbar_part; *prefix_ptr = VSCROLL_BAR_PREFIX; - return s; + return f; } - else if (s->display.x->v_slider == wdesc) + else if (f->display.x->v_slider == wdesc) { *part_ptr = Qvslider_part; *prefix_ptr = VSCROLL_SLIDER_PREFIX; - return s; + return f; } - else if (s->display.x->v_thumbup == wdesc) + else if (f->display.x->v_thumbup == wdesc) { *part_ptr = Qvthumbup_part; *prefix_ptr = VSCROLL_THUMBUP_PREFIX; - return s; + return f; } - else if (s->display.x->v_thumbdown == wdesc) + else if (f->display.x->v_thumbdown == wdesc) { *part_ptr = Qvthumbdown_part; *prefix_ptr = VSCROLL_THUMBDOWN_PREFIX; - return s; + return f; } - else if (s->display.x->h_scrollbar == wdesc) + else if (f->display.x->h_scrollbar == wdesc) { *part_ptr = Qhscrollbar_part; *prefix_ptr = HSCROLL_BAR_PREFIX; - return s; + return f; } - else if (s->display.x->h_slider == wdesc) + else if (f->display.x->h_slider == wdesc) { *part_ptr = Qhslider_part; *prefix_ptr = HSCROLL_SLIDER_PREFIX; - return s; + return f; } - else if (s->display.x->h_thumbleft == wdesc) + else if (f->display.x->h_thumbleft == wdesc) { *part_ptr = Qhthumbleft_part; *prefix_ptr = HSCROLL_THUMBLEFT_PREFIX; - return s; + return f; } - else if (s->display.x->h_thumbright == wdesc) + else if (f->display.x->h_thumbright == wdesc) { *part_ptr = Qhthumbright_part; *prefix_ptr = HSCROLL_THUMBRIGHT_PREFIX; - return s; + return f; } } return 0; } -/* Connect the screen-parameter names for X screens +/* Connect the frame-parameter names for X frames to the ways of passing the parameter values to the window system. The name of a parameter, as a Lisp symbol, - has an `x-screen-parameter' property which is an integer in Lisp - but can be interpreted as an `enum x_screen_parm' in C. */ + has an `x-frame-parameter' property which is an integer in Lisp + but can be interpreted as an `enum x_frame_parm' in C. */ -enum x_screen_parm +enum x_frame_parm { X_PARM_FOREGROUND_COLOR, X_PARM_BACKGROUND_COLOR, @@ -328,10 +328,10 @@ enum x_screen_parm }; -struct x_screen_parm_table +struct x_frame_parm_table { char *name; - void (*setter)( /* struct screen *screen, Lisp_Object val, oldval */ ); + void (*setter)( /* struct frame *frame, Lisp_Object val, oldval */ ); }; void x_set_foreground_color (); @@ -349,7 +349,7 @@ void x_set_autolower (); void x_set_vertical_scrollbar (); void x_set_horizontal_scrollbar (); -static struct x_screen_parm_table x_screen_parms[] = +static struct x_frame_parm_table x_frame_parms[] = { "foreground-color", x_set_foreground_color, "background-color", x_set_background_color, @@ -367,21 +367,21 @@ static struct x_screen_parm_table x_screen_parms[] = "horizontal-scrollbar", x_set_horizontal_scrollbar, }; -/* Attach the `x-screen-parameter' properties to +/* Attach the `x-frame-parameter' properties to the Lisp symbol names of parameters relevant to X. */ init_x_parm_symbols () { int i; - Qx_screen_parameter = intern ("x-screen-parameter"); + Qx_frame_parameter = intern ("x-frame-parameter"); - for (i = 0; i < sizeof (x_screen_parms)/sizeof (x_screen_parms[0]); i++) - Fput (intern (x_screen_parms[i].name), Qx_screen_parameter, + for (i = 0; i < sizeof (x_frame_parms)/sizeof (x_frame_parms[0]); i++) + Fput (intern (x_frame_parms[i].name), Qx_frame_parameter, make_number (i)); } -/* Report to X that a screen parameter of screen S is being set or changed. +/* Report to X that a frame parameter of frame F is being set or changed. PARAM is the symbol that says which parameter. VAL is the new value. OLDVAL is the old value. @@ -389,45 +389,45 @@ init_x_parm_symbols () otherwise the `x_set_...' function for this parameter. */ void -x_set_screen_param (s, param, val, oldval) - register struct screen *s; +x_set_frame_param (f, param, val, oldval) + register struct frame *f; Lisp_Object param; register Lisp_Object val; register Lisp_Object oldval; { register Lisp_Object tem; - tem = Fget (param, Qx_screen_parameter); + tem = Fget (param, Qx_frame_parameter); if (XTYPE (tem) == Lisp_Int && XINT (tem) >= 0 - && XINT (tem) < sizeof (x_screen_parms)/sizeof (x_screen_parms[0])) - (*x_screen_parms[XINT (tem)].setter)(s, val, oldval); + && XINT (tem) < sizeof (x_frame_parms)/sizeof (x_frame_parms[0])) + (*x_frame_parms[XINT (tem)].setter)(f, val, oldval); } -/* Insert a description of internally-recorded parameters of screen X +/* Insert a description of internally-recorded parameters of frame X into the parameter alist *ALISTPTR that is to be given to the user. Only parameters that are specific to the X window system - and whose values are not correctly recorded in the screen's + and whose values are not correctly recorded in the frame's param_alist need to be considered here. */ -x_report_screen_params (s, alistptr) - struct screen *s; +x_report_frame_params (f, alistptr) + struct frame *f; Lisp_Object *alistptr; { char buf[16]; - store_in_alist (alistptr, "left", make_number (s->display.x->left_pos)); - store_in_alist (alistptr, "top", make_number (s->display.x->top_pos)); + store_in_alist (alistptr, "left", make_number (f->display.x->left_pos)); + store_in_alist (alistptr, "top", make_number (f->display.x->top_pos)); store_in_alist (alistptr, "border-width", - make_number (s->display.x->border_width)); + make_number (f->display.x->border_width)); store_in_alist (alistptr, "internal-border-width", - make_number (s->display.x->internal_border_width)); - sprintf (buf, "%d", s->display.x->window_desc); + make_number (f->display.x->internal_border_width)); + sprintf (buf, "%d", f->display.x->window_desc); store_in_alist (alistptr, "window-id", build_string (buf)); } /* Decide if color named COLOR is valid for the display - associated with the selected screen. */ + associated with the selected frame. */ int defined_color (color, color_def) char *color; @@ -456,8 +456,8 @@ defined_color (color, color_def) } /* Given a string ARG naming a color, compute a pixel value from it - suitable for screen S. - If S is not a color screen, return DEF (default) regardless of what + suitable for screen F. + If F is not a color screen, return DEF (default) regardless of what ARG says. */ int @@ -488,112 +488,112 @@ x_decode_color (arg, def) Fsignal (Qundefined_color, Fcons (arg, Qnil)); } -/* Functions called only from `x_set_screen_param' +/* Functions called only from `x_set_frame_param' to set individual parameters. - If s->display.x->window_desc is 0, - the screen is being created and its X-window does not exist yet. + If f->display.x->window_desc is 0, + the frame is being created and its X-window does not exist yet. In that case, just record the parameter's new value in the standard place; do not attempt to change the window. */ void -x_set_foreground_color (s, arg, oldval) - struct screen *s; +x_set_foreground_color (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { - s->display.x->foreground_pixel = x_decode_color (arg, BLACK_PIX_DEFAULT); - if (s->display.x->window_desc != 0) + f->display.x->foreground_pixel = x_decode_color (arg, BLACK_PIX_DEFAULT); + if (f->display.x->window_desc != 0) { #ifdef HAVE_X11 BLOCK_INPUT; - XSetForeground (x_current_display, s->display.x->normal_gc, - s->display.x->foreground_pixel); - XSetBackground (x_current_display, s->display.x->reverse_gc, - s->display.x->foreground_pixel); - if (s->display.x->v_scrollbar) + XSetForeground (x_current_display, f->display.x->normal_gc, + f->display.x->foreground_pixel); + XSetBackground (x_current_display, f->display.x->reverse_gc, + f->display.x->foreground_pixel); + if (f->display.x->v_scrollbar) { Pixmap up_arrow_pixmap, down_arrow_pixmap, slider_pixmap; - XSetWindowBorder (x_current_display, s->display.x->v_scrollbar, - s->display.x->foreground_pixel); + XSetWindowBorder (x_current_display, f->display.x->v_scrollbar, + f->display.x->foreground_pixel); slider_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, gray_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); up_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, up_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); down_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, down_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->v_thumbup, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->v_thumbup, up_arrow_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->v_thumbdown, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->v_thumbdown, down_arrow_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->v_slider, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->v_slider, slider_pixmap); - XClearWindow (XDISPLAY s->display.x->v_thumbup); - XClearWindow (XDISPLAY s->display.x->v_thumbdown); - XClearWindow (XDISPLAY s->display.x->v_slider); + XClearWindow (XDISPLAY f->display.x->v_thumbup); + XClearWindow (XDISPLAY f->display.x->v_thumbdown); + XClearWindow (XDISPLAY f->display.x->v_slider); XFreePixmap (x_current_display, down_arrow_pixmap); XFreePixmap (x_current_display, up_arrow_pixmap); XFreePixmap (x_current_display, slider_pixmap); } - if (s->display.x->h_scrollbar) + if (f->display.x->h_scrollbar) { Pixmap left_arrow_pixmap, right_arrow_pixmap, slider_pixmap; - XSetWindowBorder (x_current_display, s->display.x->h_scrollbar, - s->display.x->foreground_pixel); + XSetWindowBorder (x_current_display, f->display.x->h_scrollbar, + f->display.x->foreground_pixel); slider_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, gray_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); left_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, up_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); right_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, down_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->h_slider, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->h_slider, slider_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->h_thumbleft, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->h_thumbleft, left_arrow_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->h_thumbright, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->h_thumbright, right_arrow_pixmap); - XClearWindow (XDISPLAY s->display.x->h_thumbleft); - XClearWindow (XDISPLAY s->display.x->h_thumbright); - XClearWindow (XDISPLAY s->display.x->h_slider); + XClearWindow (XDISPLAY f->display.x->h_thumbleft); + XClearWindow (XDISPLAY f->display.x->h_thumbright); + XClearWindow (XDISPLAY f->display.x->h_slider); XFreePixmap (x_current_display, slider_pixmap); XFreePixmap (x_current_display, left_arrow_pixmap); @@ -601,150 +601,150 @@ x_set_foreground_color (s, arg, oldval) } UNBLOCK_INPUT; #endif /* HAVE_X11 */ - if (s->visible) - redraw_screen (s); + if (f->visible) + redraw_frame (f); } } void -x_set_background_color (s, arg, oldval) - struct screen *s; +x_set_background_color (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { Pixmap temp; int mask; - s->display.x->background_pixel = x_decode_color (arg, WHITE_PIX_DEFAULT); + f->display.x->background_pixel = x_decode_color (arg, WHITE_PIX_DEFAULT); - if (s->display.x->window_desc != 0) + if (f->display.x->window_desc != 0) { BLOCK_INPUT; #ifdef HAVE_X11 - /* The main screen. */ - XSetBackground (x_current_display, s->display.x->normal_gc, - s->display.x->background_pixel); - XSetForeground (x_current_display, s->display.x->reverse_gc, - s->display.x->background_pixel); - XSetWindowBackground (x_current_display, s->display.x->window_desc, - s->display.x->background_pixel); + /* The main frame area. */ + XSetBackground (x_current_display, f->display.x->normal_gc, + f->display.x->background_pixel); + XSetForeground (x_current_display, f->display.x->reverse_gc, + f->display.x->background_pixel); + XSetWindowBackground (x_current_display, f->display.x->window_desc, + f->display.x->background_pixel); /* Scroll bars. */ - if (s->display.x->v_scrollbar) + if (f->display.x->v_scrollbar) { Pixmap up_arrow_pixmap, down_arrow_pixmap, slider_pixmap; - XSetWindowBackground (x_current_display, s->display.x->v_scrollbar, - s->display.x->background_pixel); + XSetWindowBackground (x_current_display, f->display.x->v_scrollbar, + f->display.x->background_pixel); slider_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, gray_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); up_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, up_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); down_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, down_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->v_thumbup, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->v_thumbup, up_arrow_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->v_thumbdown, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->v_thumbdown, down_arrow_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->v_slider, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->v_slider, slider_pixmap); - XClearWindow (XDISPLAY s->display.x->v_thumbup); - XClearWindow (XDISPLAY s->display.x->v_thumbdown); - XClearWindow (XDISPLAY s->display.x->v_slider); + XClearWindow (XDISPLAY f->display.x->v_thumbup); + XClearWindow (XDISPLAY f->display.x->v_thumbdown); + XClearWindow (XDISPLAY f->display.x->v_slider); XFreePixmap (x_current_display, down_arrow_pixmap); XFreePixmap (x_current_display, up_arrow_pixmap); XFreePixmap (x_current_display, slider_pixmap); } - if (s->display.x->h_scrollbar) + if (f->display.x->h_scrollbar) { Pixmap left_arrow_pixmap, right_arrow_pixmap, slider_pixmap; - XSetWindowBackground (x_current_display, s->display.x->h_scrollbar, - s->display.x->background_pixel); + XSetWindowBackground (x_current_display, f->display.x->h_scrollbar, + f->display.x->background_pixel); slider_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, gray_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); left_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, up_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); right_arrow_pixmap = - XCreatePixmapFromBitmapData (XDISPLAY s->display.x->window_desc, + XCreatePixmapFromBitmapData (XDISPLAY f->display.x->window_desc, down_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->h_slider, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->h_slider, slider_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->h_thumbleft, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->h_thumbleft, left_arrow_pixmap); - XSetWindowBackgroundPixmap (XDISPLAY s->display.x->h_thumbright, + XSetWindowBackgroundPixmap (XDISPLAY f->display.x->h_thumbright, right_arrow_pixmap); - XClearWindow (XDISPLAY s->display.x->h_thumbleft); - XClearWindow (XDISPLAY s->display.x->h_thumbright); - XClearWindow (XDISPLAY s->display.x->h_slider); + XClearWindow (XDISPLAY f->display.x->h_thumbleft); + XClearWindow (XDISPLAY f->display.x->h_thumbright); + XClearWindow (XDISPLAY f->display.x->h_slider); XFreePixmap (x_current_display, slider_pixmap); XFreePixmap (x_current_display, left_arrow_pixmap); XFreePixmap (x_current_display, right_arrow_pixmap); } #else - temp = XMakeTile (s->display.x->background_pixel); - XChangeBackground (s->display.x->window_desc, temp); + temp = XMakeTile (f->display.x->background_pixel); + XChangeBackground (f->display.x->window_desc, temp); XFreePixmap (temp); #endif /* not HAVE_X11 */ UNBLOCK_INPUT; - if (s->visible) - redraw_screen (s); + if (f->visible) + redraw_frame (f); } } void -x_set_mouse_color (s, arg, oldval) - struct screen *s; +x_set_mouse_color (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { Cursor cursor, nontext_cursor, mode_cursor; int mask_color; if (!EQ (Qnil, arg)) - s->display.x->mouse_pixel = x_decode_color (arg, BLACK_PIX_DEFAULT); - mask_color = s->display.x->background_pixel; + f->display.x->mouse_pixel = x_decode_color (arg, BLACK_PIX_DEFAULT); + mask_color = f->display.x->background_pixel; /* No invisible pointers. */ - if (mask_color == s->display.x->mouse_pixel - && mask_color == s->display.x->background_pixel) - s->display.x->mouse_pixel = s->display.x->foreground_pixel; + if (mask_color == f->display.x->mouse_pixel + && mask_color == f->display.x->background_pixel) + f->display.x->mouse_pixel = f->display.x->foreground_pixel; BLOCK_INPUT; #ifdef HAVE_X11 @@ -777,7 +777,7 @@ x_set_mouse_color (s, arg, oldval) { XColor fore_color, back_color; - fore_color.pixel = s->display.x->mouse_pixel; + fore_color.pixel = f->display.x->mouse_pixel; back_color.pixel = mask_color; XQueryColor (x_current_display, DefaultColormap (x_current_display, @@ -797,29 +797,29 @@ x_set_mouse_color (s, arg, oldval) #else /* X10 */ cursor = XCreateCursor (16, 16, MouseCursor, MouseMask, 0, 0, - s->display.x->mouse_pixel, - s->display.x->background_pixel, + f->display.x->mouse_pixel, + f->display.x->background_pixel, GXcopy); #endif /* X10 */ - if (s->display.x->window_desc != 0) + if (f->display.x->window_desc != 0) { - XDefineCursor (XDISPLAY s->display.x->window_desc, cursor); + XDefineCursor (XDISPLAY f->display.x->window_desc, cursor); } - if (cursor != s->display.x->text_cursor && s->display.x->text_cursor != 0) - XFreeCursor (XDISPLAY s->display.x->text_cursor); - s->display.x->text_cursor = cursor; + if (cursor != f->display.x->text_cursor && f->display.x->text_cursor != 0) + XFreeCursor (XDISPLAY f->display.x->text_cursor); + f->display.x->text_cursor = cursor; #ifdef HAVE_X11 - if (nontext_cursor != s->display.x->nontext_cursor - && s->display.x->nontext_cursor != 0) - XFreeCursor (XDISPLAY s->display.x->nontext_cursor); - s->display.x->nontext_cursor = nontext_cursor; - - if (mode_cursor != s->display.x->modeline_cursor - && s->display.x->modeline_cursor != 0) - XFreeCursor (XDISPLAY s->display.x->modeline_cursor); - s->display.x->modeline_cursor = mode_cursor; + if (nontext_cursor != f->display.x->nontext_cursor + && f->display.x->nontext_cursor != 0) + XFreeCursor (XDISPLAY f->display.x->nontext_cursor); + f->display.x->nontext_cursor = nontext_cursor; + + if (mode_cursor != f->display.x->modeline_cursor + && f->display.x->modeline_cursor != 0) + XFreeCursor (XDISPLAY f->display.x->modeline_cursor); + f->display.x->modeline_cursor = mode_cursor; #endif /* HAVE_X11 */ XFlushQueue (); @@ -827,8 +827,8 @@ x_set_mouse_color (s, arg, oldval) } void -x_set_cursor_color (s, arg, oldval) - struct screen *s; +x_set_cursor_color (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { unsigned long fore_pixel; @@ -836,40 +836,40 @@ x_set_cursor_color (s, arg, oldval) if (!EQ (Vx_cursor_fore_pixel, Qnil)) fore_pixel = x_decode_color (Vx_cursor_fore_pixel, WHITE_PIX_DEFAULT); else - fore_pixel = s->display.x->background_pixel; - s->display.x->cursor_pixel = x_decode_color (arg, BLACK_PIX_DEFAULT); + fore_pixel = f->display.x->background_pixel; + f->display.x->cursor_pixel = x_decode_color (arg, BLACK_PIX_DEFAULT); /* No invisible cursors */ - if (s->display.x->cursor_pixel == s->display.x->background_pixel) + if (f->display.x->cursor_pixel == f->display.x->background_pixel) { - s->display.x->cursor_pixel == s->display.x->mouse_pixel; - if (s->display.x->cursor_pixel == fore_pixel) - fore_pixel = s->display.x->background_pixel; + f->display.x->cursor_pixel == f->display.x->mouse_pixel; + if (f->display.x->cursor_pixel == fore_pixel) + fore_pixel = f->display.x->background_pixel; } - if (s->display.x->window_desc != 0) + if (f->display.x->window_desc != 0) { #ifdef HAVE_X11 BLOCK_INPUT; - XSetBackground (x_current_display, s->display.x->cursor_gc, - s->display.x->cursor_pixel); - XSetForeground (x_current_display, s->display.x->cursor_gc, + XSetBackground (x_current_display, f->display.x->cursor_gc, + f->display.x->cursor_pixel); + XSetForeground (x_current_display, f->display.x->cursor_gc, fore_pixel); UNBLOCK_INPUT; #endif /* HAVE_X11 */ - if (s->visible) + if (f->visible) { - x_display_cursor (s, 0); - x_display_cursor (s, 1); + x_display_cursor (f, 0); + x_display_cursor (f, 1); } } } -/* Set the border-color of screen S to value described by ARG. +/* Set the border-color of frame F to value described by ARG. ARG can be a string naming a color. The border-color is used for the border that is drawn by the X server. Note that this does not fully take effect if done before - S has an x-window; it must be redone when the window is created. + F has an x-window; it must be redone when the window is created. Note: this is done in two routines because of the way X10 works. @@ -877,8 +877,8 @@ x_set_cursor_color (s, arg, oldval) and so emacs' border colors may be overridden. */ void -x_set_border_color (s, arg, oldval) - struct screen *s; +x_set_border_color (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { unsigned char *str; @@ -896,33 +896,33 @@ x_set_border_color (s, arg, oldval) pix = x_decode_color (arg, BLACK_PIX_DEFAULT); - x_set_border_pixel (s, pix); + x_set_border_pixel (f, pix); } -/* Set the border-color of screen S to pixel value PIX. +/* Set the border-color of frame F to pixel value PIX. Note that this does not fully take effect if done before - S has an x-window. */ + F has an x-window. */ -x_set_border_pixel (s, pix) - struct screen *s; +x_set_border_pixel (f, pix) + struct frame *f; int pix; { - s->display.x->border_pixel = pix; + f->display.x->border_pixel = pix; - if (s->display.x->window_desc != 0 && s->display.x->border_width > 0) + if (f->display.x->window_desc != 0 && f->display.x->border_width > 0) { Pixmap temp; int mask; BLOCK_INPUT; #ifdef HAVE_X11 - XSetWindowBorder (x_current_display, s->display.x->window_desc, + XSetWindowBorder (x_current_display, f->display.x->window_desc, pix); - if (s->display.x->h_scrollbar) - XSetWindowBorder (x_current_display, s->display.x->h_slider, + if (f->display.x->h_scrollbar) + XSetWindowBorder (x_current_display, f->display.x->h_slider, pix); - if (s->display.x->v_scrollbar) - XSetWindowBorder (x_current_display, s->display.x->v_slider, + if (f->display.x->v_scrollbar) + XSetWindowBorder (x_current_display, f->display.x->v_slider, pix); #else if (pix < 0) @@ -930,19 +930,19 @@ x_set_border_pixel (s, pix) BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT); else temp = XMakeTile (pix); - XChangeBorder (s->display.x->window_desc, temp); + XChangeBorder (f->display.x->window_desc, temp); XFreePixmap (XDISPLAY temp); #endif /* not HAVE_X11 */ UNBLOCK_INPUT; - if (s->visible) - redraw_screen (s); + if (f->visible) + redraw_frame (f); } } void -x_set_icon_type (s, arg, oldval) - struct screen *s; +x_set_icon_type (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { Lisp_Object tem; @@ -953,9 +953,9 @@ x_set_icon_type (s, arg, oldval) BLOCK_INPUT; if (NILP (arg)) - result = x_text_icon (s, 0); + result = x_text_icon (f, 0); else - result = x_bitmap_icon (s, 0); + result = x_bitmap_icon (f, 0); if (result) { @@ -965,16 +965,16 @@ x_set_icon_type (s, arg, oldval) /* If the window was unmapped (and its icon was mapped), the new icon is not mapped, so map the window in its stead. */ - if (s->visible) - XMapWindow (XDISPLAY s->display.x->window_desc); + if (f->visible) + XMapWindow (XDISPLAY f->display.x->window_desc); XFlushQueue (); UNBLOCK_INPUT; } void -x_set_font (s, arg, oldval) - struct screen *s; +x_set_font (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { unsigned char *name; @@ -984,7 +984,7 @@ x_set_font (s, arg, oldval) name = XSTRING (arg)->data; BLOCK_INPUT; - result = x_new_font (s, name); + result = x_new_font (f, name); UNBLOCK_INPUT; if (result) @@ -992,62 +992,62 @@ x_set_font (s, arg, oldval) } void -x_set_border_width (s, arg, oldval) - struct screen *s; +x_set_border_width (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { CHECK_NUMBER (arg, 0); - if (XINT (arg) == s->display.x->border_width) + if (XINT (arg) == f->display.x->border_width) return; - if (s->display.x->window_desc != 0) + if (f->display.x->window_desc != 0) error ("Cannot change the border width of a window"); - s->display.x->border_width = XINT (arg); + f->display.x->border_width = XINT (arg); } void -x_set_internal_border_width (s, arg, oldval) - struct screen *s; +x_set_internal_border_width (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { int mask; - int old = s->display.x->internal_border_width; + int old = f->display.x->internal_border_width; CHECK_NUMBER (arg, 0); - s->display.x->internal_border_width = XINT (arg); - if (s->display.x->internal_border_width < 0) - s->display.x->internal_border_width = 0; + f->display.x->internal_border_width = XINT (arg); + if (f->display.x->internal_border_width < 0) + f->display.x->internal_border_width = 0; - if (s->display.x->internal_border_width == old) + if (f->display.x->internal_border_width == old) return; - if (s->display.x->window_desc != 0) + if (f->display.x->window_desc != 0) { BLOCK_INPUT; - x_set_window_size (s, s->width, s->height); + x_set_window_size (f, f->width, f->height); #if 0 - x_set_resize_hint (s); + x_set_resize_hint (f); #endif XFlushQueue (); UNBLOCK_INPUT; - SET_SCREEN_GARBAGED (s); + SET_FRAME_GARBAGED (f); } } void -x_set_name (s, arg, oldval) - struct screen *s; +x_set_name (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { CHECK_STRING (arg, 0); /* Don't change the name if it's already ARG. */ - if (! NILP (Fstring_equal (arg, s->name))) + if (! NILP (Fstring_equal (arg, f->name))) return; - if (s->display.x->window_desc) + if (f->display.x->window_desc) { #ifdef HAVE_X11 XTextProperty prop; @@ -1056,43 +1056,43 @@ x_set_name (s, arg, oldval) prop.format = 8; prop.nitems = XSTRING (arg)->size; BLOCK_INPUT; - XSetWMName (XDISPLAY s->display.x->window_desc, &prop); - XSetWMIconName (XDISPLAY s->display.x->window_desc, &prop); + XSetWMName (XDISPLAY f->display.x->window_desc, &prop); + XSetWMIconName (XDISPLAY f->display.x->window_desc, &prop); UNBLOCK_INPUT; #else BLOCK_INPUT; - XStoreName (XDISPLAY s->display.x->window_desc, + XStoreName (XDISPLAY f->display.x->window_desc, (char *) XSTRING (arg)->data); - XSetIconName (XDISPLAY s->display.x->window_desc, + XSetIconName (XDISPLAY f->display.x->window_desc, (char *) XSTRING (arg)->data); UNBLOCK_INPUT; #endif } - s->name = arg; + f->name = arg; } void -x_set_autoraise (s, arg, oldval) - struct screen *s; +x_set_autoraise (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { - s->auto_raise = !EQ (Qnil, arg); + f->auto_raise = !EQ (Qnil, arg); } void -x_set_autolower (s, arg, oldval) - struct screen *s; +x_set_autolower (f, arg, oldval) + struct frame *f; Lisp_Object arg, oldval; { - s->auto_lower = !EQ (Qnil, arg); + f->auto_lower = !EQ (Qnil, arg); } #ifdef HAVE_X11 int n_faces; x_set_face (scr, font, background, foreground, stipple) - struct screen *scr; + struct frame *scr; XFontStruct *font; unsigned long background, foreground; Pixmap stipple; @@ -1166,15 +1166,15 @@ DEFUN ("x-set-face-font", Fx_set_face_font, Sx_set_face_font, 4, 2, 0, XGCValues gc_values; /* Need to do something about this. */ - Drawable drawable = selected_screen->display.x->window_desc; + Drawable drawable = selected_frame->display.x->window_desc; CHECK_NUMBER (face_code, 1); CHECK_STRING (font_name, 2); if (EQ (foreground, Qnil) || EQ (background, Qnil)) { - fg = selected_screen->display.x->foreground_pixel; - bg = selected_screen->display.x->background_pixel; + fg = selected_frame->display.x->foreground_pixel; + bg = selected_frame->display.x->background_pixel; } else { @@ -1318,7 +1318,7 @@ The value is a list (FONT FG-COLOR BG-COLOR).") } #endif /* 0 */ -/* Subroutines of creating an X screen. */ +/* Subroutines of creating an X frame. */ #ifdef HAVE_X11 extern char *x_get_string_resource (); @@ -1422,7 +1422,7 @@ enum resource_types /* Return the value of parameter PARAM. - First search ALIST, then Vdefault_screen_alist, then the X defaults + First search ALIST, then Vdefault_frame_alist, then the X defaults database, using ATTRIBUTE as the attribute name. Convert the resource to the type specified by desired_type. @@ -1439,7 +1439,7 @@ x_get_arg (alist, param, attribute, type) tem = Fassq (param, alist); if (EQ (tem, Qnil)) - tem = Fassq (param, Vdefault_screen_alist); + tem = Fassq (param, Vdefault_frame_alist); if (EQ (tem, Qnil) && attribute) { tem = Fx_get_resource (build_string (attribute), Qnil, Qnil); @@ -1470,15 +1470,15 @@ x_get_arg (alist, param, attribute, type) return Fcdr (tem); } -/* Record in screen S the specified or default value according to ALIST +/* Record in frame F the specified or default value according to ALIST of the parameter named PARAM (a Lisp symbol). If no value is specified for PARAM, look for an X default for XPROP - on the screen named NAME. + on the frame named NAME. If that is not found either, use the value DEFLT. */ static Lisp_Object -x_default_parameter (s, alist, propname, deflt, xprop, type) - struct screen *s; +x_default_parameter (f, alist, propname, deflt, xprop, type) + struct frame *f; Lisp_Object alist; char *propname; Lisp_Object deflt; @@ -1491,8 +1491,8 @@ x_default_parameter (s, alist, propname, deflt, xprop, type) tem = x_get_arg (alist, propsym, xprop, type); if (EQ (tem, Qnil)) tem = deflt; - store_screen_param (s, propsym, tem); - x_set_screen_param (s, propsym, tem, Qnil); + store_frame_param (f, propsym, tem); + x_set_frame_param (f, propsym, tem, Qnil); return tem; } @@ -1558,8 +1558,8 @@ Returns an alist of the form ((top . TOP), (left . LEFT) ... ).") #define DEFAULT_COLS 80 static -x_figure_window_size (s, parms) - struct screen *s; +x_figure_window_size (f, parms) + struct frame *f; Lisp_Object parms; { register Lisp_Object tem0, tem1; @@ -1570,10 +1570,10 @@ x_figure_window_size (s, parms) /* Default values if we fall through. Actually, if that happens we should get window manager prompting. */ - s->width = DEFAULT_COLS; - s->height = DEFAULT_ROWS; - s->display.x->top_pos = 1; - s->display.x->left_pos = 1; + f->width = DEFAULT_COLS; + f->height = DEFAULT_ROWS; + f->display.x->top_pos = 1; + f->display.x->left_pos = 1; tem0 = x_get_arg (parms, intern ("height"), 0, 0); tem1 = x_get_arg (parms, intern ("width"), 0, 0); @@ -1581,17 +1581,17 @@ x_figure_window_size (s, parms) { CHECK_NUMBER (tem0, 0); CHECK_NUMBER (tem1, 0); - s->height = XINT (tem0); - s->width = XINT (tem1); + f->height = XINT (tem0); + f->width = XINT (tem1); window_prompting |= USSize; } else if (! EQ (tem0, Qnil) || ! EQ (tem1, Qnil)) error ("Must specify *both* height and width"); - s->display.x->pixel_width = (FONT_WIDTH (s->display.x->font) * s->width - + 2 * s->display.x->internal_border_width); - s->display.x->pixel_height = (FONT_HEIGHT (s->display.x->font) * s->height - + 2 * s->display.x->internal_border_width); + f->display.x->pixel_width = (FONT_WIDTH (f->display.x->font) * f->width + + 2 * f->display.x->internal_border_width); + f->display.x->pixel_height = (FONT_HEIGHT (f->display.x->font) * f->height + + 2 * f->display.x->internal_border_width); tem0 = x_get_arg (parms, intern ("top"), 0, 0); tem1 = x_get_arg (parms, intern ("left"), 0, 0); @@ -1599,9 +1599,9 @@ x_figure_window_size (s, parms) { CHECK_NUMBER (tem0, 0); CHECK_NUMBER (tem1, 0); - s->display.x->top_pos = XINT (tem0); - s->display.x->left_pos = XINT (tem1); - x_calc_absolute_position (s); + f->display.x->top_pos = XINT (tem0); + f->display.x->left_pos = XINT (tem1); + x_calc_absolute_position (f); window_prompting |= USPosition; } else if (! EQ (tem0, Qnil) || ! EQ (tem1, Qnil)) @@ -1636,15 +1636,15 @@ x_figure_window_size (s, parms) } static void -x_window (s) - struct screen *s; +x_window (f) + struct frame *f; { XSetWindowAttributes attributes; unsigned long attribute_mask; XClassHint class_hints; - attributes.background_pixel = s->display.x->background_pixel; - attributes.border_pixel = s->display.x->border_pixel; + attributes.background_pixel = f->display.x->background_pixel; + attributes.border_pixel = f->display.x->border_pixel; attributes.bit_gravity = StaticGravity; attributes.backing_store = NotUseful; attributes.save_under = True; @@ -1656,26 +1656,26 @@ x_window (s) | CWEventMask); BLOCK_INPUT; - s->display.x->window_desc + f->display.x->window_desc = XCreateWindow (x_current_display, ROOT_WINDOW, - s->display.x->left_pos, - s->display.x->top_pos, - PIXEL_WIDTH (s), PIXEL_HEIGHT (s), - s->display.x->border_width, + f->display.x->left_pos, + f->display.x->top_pos, + PIXEL_WIDTH (f), PIXEL_HEIGHT (f), + f->display.x->border_width, CopyFromParent, /* depth */ InputOutput, /* class */ screen_visual, /* set in Fx_open_connection */ attribute_mask, &attributes); - class_hints.res_name = (char *) XSTRING (s->name)->data; + class_hints.res_name = (char *) XSTRING (f->name)->data; class_hints.res_class = EMACS_CLASS; - XSetClassHint (x_current_display, s->display.x->window_desc, &class_hints); + XSetClassHint (x_current_display, f->display.x->window_desc, &class_hints); - XDefineCursor (XDISPLAY s->display.x->window_desc, - s->display.x->text_cursor); + XDefineCursor (XDISPLAY f->display.x->window_desc, + f->display.x->text_cursor); UNBLOCK_INPUT; - if (s->display.x->window_desc == 0) + if (f->display.x->window_desc == 0) error ("Unable to create window."); } @@ -1684,8 +1684,8 @@ x_window (s) well. */ static void -x_icon (s, parms) - struct screen *s; +x_icon (f, parms) + struct frame *f; Lisp_Object parms; { register Lisp_Object tem0,tem1; @@ -1706,8 +1706,8 @@ x_icon (s, parms) error ("Both left and top icon corners of icon must be specified"); else { - hints.icon_x = s->display.x->left_pos; - hints.icon_y = s->display.x->top_pos; + hints.icon_x = f->display.x->left_pos; + hints.icon_y = f->display.x->top_pos; } /* Start up iconic or window? */ @@ -1720,7 +1720,7 @@ x_icon (s, parms) BLOCK_INPUT; hints.flags = StateHint | IconPositionHint | InputHint; - XSetWMHints (x_current_display, s->display.x->window_desc, &hints); + XSetWMHints (x_current_display, f->display.x->window_desc, &hints); UNBLOCK_INPUT; } @@ -1729,8 +1729,8 @@ x_icon (s, parms) mouse cursor and the gray border tile. */ static void -x_make_gc (s) - struct screen *s; +x_make_gc (f) + struct frame *f; { XGCValues gc_values; GC temp_gc; @@ -1743,53 +1743,53 @@ x_make_gc (s) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - /* Create the GC's of this screen. + /* Create the GC's of this frame. Note that many default values are used. */ /* Normal video */ - gc_values.font = s->display.x->font->fid; - gc_values.foreground = s->display.x->foreground_pixel; - gc_values.background = s->display.x->background_pixel; + gc_values.font = f->display.x->font->fid; + gc_values.foreground = f->display.x->foreground_pixel; + gc_values.background = f->display.x->background_pixel; gc_values.line_width = 0; /* Means 1 using fast algorithm. */ - s->display.x->normal_gc = XCreateGC (x_current_display, - s->display.x->window_desc, + f->display.x->normal_gc = XCreateGC (x_current_display, + f->display.x->window_desc, GCLineWidth | GCFont | GCForeground | GCBackground, &gc_values); /* Reverse video style. */ - gc_values.foreground = s->display.x->background_pixel; - gc_values.background = s->display.x->foreground_pixel; - s->display.x->reverse_gc = XCreateGC (x_current_display, - s->display.x->window_desc, + gc_values.foreground = f->display.x->background_pixel; + gc_values.background = f->display.x->foreground_pixel; + f->display.x->reverse_gc = XCreateGC (x_current_display, + f->display.x->window_desc, GCFont | GCForeground | GCBackground | GCLineWidth, &gc_values); /* Cursor has cursor-color background, background-color foreground. */ - gc_values.foreground = s->display.x->background_pixel; - gc_values.background = s->display.x->cursor_pixel; + gc_values.foreground = f->display.x->background_pixel; + gc_values.background = f->display.x->cursor_pixel; gc_values.fill_style = FillOpaqueStippled; gc_values.stipple = XCreateBitmapFromData (x_current_display, ROOT_WINDOW, cursor_bits, 16, 16); - s->display.x->cursor_gc - = XCreateGC (x_current_display, s->display.x->window_desc, + f->display.x->cursor_gc + = XCreateGC (x_current_display, f->display.x->window_desc, (GCFont | GCForeground | GCBackground | GCFillStyle | GCStipple | GCLineWidth), &gc_values); /* Create the gray border tile used when the pointer is not in - the screen. Since this depends on the screen's pixel values, - this must be done on a per-screen basis. */ - s->display.x->border_tile = + the frame. Since this depends on the frame's pixel values, + this must be done on a per-frame basis. */ + f->display.x->border_tile = XCreatePixmap (x_current_display, ROOT_WINDOW, 16, 16, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); - gc_values.foreground = s->display.x->foreground_pixel; - gc_values.background = s->display.x->background_pixel; + gc_values.foreground = f->display.x->foreground_pixel; + gc_values.background = f->display.x->background_pixel; temp_gc = XCreateGC (x_current_display, - (Drawable) s->display.x->border_tile, + (Drawable) f->display.x->border_tile, GCForeground | GCBackground, &gc_values); /* These are things that should be determined by the server, in @@ -1805,27 +1805,27 @@ x_make_gc (s) tileimage.bitmap_pad = 8; tileimage.bytes_per_line = (16 + 7) >> 3; tileimage.depth = 1; - XPutImage (x_current_display, s->display.x->border_tile, temp_gc, + XPutImage (x_current_display, f->display.x->border_tile, temp_gc, &tileimage, 0, 0, 0, 0, 16, 16); XFreeGC (x_current_display, temp_gc); } #endif /* HAVE_X11 */ -DEFUN ("x-create-screen", Fx_create_screen, Sx_create_screen, +DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, 1, 1, 0, - "Make a new X window, which is called a \"screen\" in Emacs terms.\n\ -Return an Emacs screen object representing the X window.\n\ -ALIST is an alist of screen parameters.\n\ -If the parameters specify that the screen should not have a minibuffer,\n\ + "Make a new X window, which is called a \"frame\" in Emacs terms.\n\ +Return an Emacs frame object representing the X window.\n\ +ALIST is an alist of frame parameters.\n\ +If the parameters specify that the frame should not have a minibuffer,\n\ and do not specify a specific minibuffer window to use,\n\ -then `default-minibuffer-screen' must be a screen whose minibuffer can\n\ -be shared by the new screen.") +then `default-minibuffer-frame' must be a frame whose minibuffer can\n\ +be shared by the new frame.") (parms) Lisp_Object parms; { #ifdef HAVE_X11 - struct screen *s; - Lisp_Object screen, tem; + struct frame *f; + Lisp_Object frame, tem; Lisp_Object name; int minibuffer_only = 0; long window_prompting = 0; @@ -1838,92 +1838,92 @@ be shared by the new screen.") if (NILP (name)) name = build_string (x_id_name); if (XTYPE (name) != Lisp_String) - error ("x-create-screen: name parameter must be a string"); + error ("x-create-frame: name parameter must be a string"); tem = x_get_arg (parms, intern ("minibuffer"), 0, 0); if (EQ (tem, intern ("none"))) - s = make_screen_without_minibuffer (Qnil); + f = make_frame_without_minibuffer (Qnil); else if (EQ (tem, intern ("only"))) { - s = make_minibuffer_screen (); + f = make_minibuffer_frame (); minibuffer_only = 1; } else if (EQ (tem, Qnil) || EQ (tem, Qt)) - s = make_screen (1); + f = make_frame (1); else - s = make_screen_without_minibuffer (tem); + f = make_frame_without_minibuffer (tem); - /* Set the name; the functions to which we pass s expect the + /* Set the name; the functions to which we pass f expect the name to be set. */ - XSET (s->name, Lisp_String, name); + XSET (f->name, Lisp_String, name); - XSET (screen, Lisp_Screen, s); - s->output_method = output_x_window; - s->display.x = (struct x_display *) xmalloc (sizeof (struct x_display)); - bzero (s->display.x, sizeof (struct x_display)); + XSET (frame, Lisp_Frame, f); + f->output_method = output_x_window; + f->display.x = (struct x_display *) xmalloc (sizeof (struct x_display)); + bzero (f->display.x, sizeof (struct x_display)); - /* Note that the screen has no physical cursor right now. */ - s->phys_cursor_x = -1; + /* Note that the frame has no physical cursor right now. */ + f->phys_cursor_x = -1; /* Extract the window parameters from the supplied values that are needed to determine window geometry. */ - x_default_parameter (s, parms, "font", + x_default_parameter (f, parms, "font", build_string ("9x15"), "font", string); - x_default_parameter (s, parms, "background-color", + x_default_parameter (f, parms, "background-color", build_string ("white"), "background", string); - x_default_parameter (s, parms, "border-width", + x_default_parameter (f, parms, "border-width", make_number (2), "BorderWidth", number); /* This defaults to 2 in order to match XTerms. */ - x_default_parameter (s, parms, "internal-border-width", + x_default_parameter (f, parms, "internal-border-width", make_number (2), "InternalBorderWidth", number); /* Also do the stuff which must be set before the window exists. */ - x_default_parameter (s, parms, "foreground-color", + x_default_parameter (f, parms, "foreground-color", build_string ("black"), "foreground", string); - x_default_parameter (s, parms, "mouse-color", + x_default_parameter (f, parms, "mouse-color", build_string ("black"), "mouse", string); - x_default_parameter (s, parms, "cursor-color", + x_default_parameter (f, parms, "cursor-color", build_string ("black"), "cursor", string); - x_default_parameter (s, parms, "border-color", + x_default_parameter (f, parms, "border-color", build_string ("black"), "border", string); /* Need to do icon type, auto-raise, auto-lower. */ - s->display.x->parent_desc = ROOT_WINDOW; - window_prompting = x_figure_window_size (s, parms); + f->display.x->parent_desc = ROOT_WINDOW; + window_prompting = x_figure_window_size (f, parms); - x_window (s); - x_icon (s, parms); - x_make_gc (s); + x_window (f); + x_icon (f, parms); + x_make_gc (f); - /* Dimensions, especially s->height, must be done via change_screen_size. + /* Dimensions, especially f->height, must be done via change_frame_size. Change will not be effected unless different from the current - s->height. */ - width = s->width; - height = s->height; - s->height = s->width = 0; - change_screen_size (s, height, width, 1); + f->height. */ + width = f->width; + height = f->height; + f->height = f->width = 0; + change_frame_size (f, height, width, 1); BLOCK_INPUT; - x_wm_set_size_hint (s, window_prompting); + x_wm_set_size_hint (f, window_prompting); UNBLOCK_INPUT; tem = x_get_arg (parms, intern ("unsplittable"), 0, 0); - s->no_split = minibuffer_only || EQ (tem, Qt); + f->no_split = minibuffer_only || EQ (tem, Qt); /* Now handle the rest of the parameters. */ - x_default_parameter (s, parms, "horizontal-scroll-bar", + x_default_parameter (f, parms, "horizontal-scroll-bar", Qnil, "?HScrollBar", string); - x_default_parameter (s, parms, "vertical-scroll-bar", + x_default_parameter (f, parms, "vertical-scroll-bar", Qnil, "?VScrollBar", string); - /* Make the window appear on the screen and enable display. */ + /* Make the window appear on the frame and enable display. */ if (!EQ (x_get_arg (parms, intern ("suppress-initial-map"), 0, 0), Qt)) - x_make_screen_visible (s); + x_make_frame_visible (f); - return screen; + return frame; #else /* X10 */ - struct screen *s; - Lisp_Object screen, tem; + struct frame *f; + Lisp_Object frame, tem; Lisp_Object name; int pixelwidth, pixelheight; Cursor cursor; @@ -1940,37 +1940,37 @@ be shared by the new screen.") tem = x_get_arg (parms, intern ("minibuffer"), 0, 0); if (EQ (tem, intern ("none"))) - s = make_screen_without_minibuffer (Qnil); + f = make_frame_without_minibuffer (Qnil); else if (EQ (tem, intern ("only"))) { - s = make_minibuffer_screen (); + f = make_minibuffer_frame (); minibuffer_only = 1; } else if (! EQ (tem, Qnil)) - s = make_screen_without_minibuffer (tem); + f = make_frame_without_minibuffer (tem); else - s = make_screen (1); + f = make_frame (1); parent = ROOT_WINDOW; - XSET (screen, Lisp_Screen, s); - s->output_method = output_x_window; - s->display.x = (struct x_display *) xmalloc (sizeof (struct x_display)); - bzero (s->display.x, sizeof (struct x_display)); + XSET (frame, Lisp_Frame, f); + f->output_method = output_x_window; + f->display.x = (struct x_display *) xmalloc (sizeof (struct x_display)); + bzero (f->display.x, sizeof (struct x_display)); /* Some temprorary default values for height and width. */ width = 80; height = 40; - s->display.x->left_pos = -1; - s->display.x->top_pos = -1; + f->display.x->left_pos = -1; + f->display.x->top_pos = -1; - /* Give the screen a default name (which may be overridden with PARMS). */ + /* Give the frame a default name (which may be overridden with PARMS). */ strncpy (iconidentity, ICONTAG, MAXICID); if (gethostname (&iconidentity[sizeof (ICONTAG) - 1], (MAXICID - 1) - sizeof (ICONTAG))) iconidentity[sizeof (ICONTAG) - 2] = '\0'; - s->name = build_string (iconidentity); + f->name = build_string (iconidentity); /* Extract some window parameters from the supplied values. These are the parameters that affect window geometry. */ @@ -1978,29 +1978,29 @@ be shared by the new screen.") tem = x_get_arg (parms, intern ("font"), "BodyFont", string); if (EQ (tem, Qnil)) tem = build_string ("9x15"); - x_set_font (s, tem); - x_default_parameter (s, parms, "border-color", + x_set_font (f, tem); + x_default_parameter (f, parms, "border-color", build_string ("black"), "Border", string); - x_default_parameter (s, parms, "background-color", + x_default_parameter (f, parms, "background-color", build_string ("white"), "Background", string); - x_default_parameter (s, parms, "foreground-color", + x_default_parameter (f, parms, "foreground-color", build_string ("black"), "Foreground", string); - x_default_parameter (s, parms, "mouse-color", + x_default_parameter (f, parms, "mouse-color", build_string ("black"), "Mouse", string); - x_default_parameter (s, parms, "cursor-color", + x_default_parameter (f, parms, "cursor-color", build_string ("black"), "Cursor", string); - x_default_parameter (s, parms, "border-width", + x_default_parameter (f, parms, "border-width", make_number (2), "BorderWidth", number); - x_default_parameter (s, parms, "internal-border-width", + x_default_parameter (f, parms, "internal-border-width", make_number (4), "InternalBorderWidth", number); - x_default_parameter (s, parms, "auto-raise", + x_default_parameter (f, parms, "auto-raise", Qnil, "AutoRaise", boolean); hscroll = x_get_arg (parms, intern ("horizontal-scroll-bar"), 0, 0); vscroll = x_get_arg (parms, intern ("vertical-scroll-bar"), 0, 0); - if (s->display.x->internal_border_width < 0) - s->display.x->internal_border_width = 0; + if (f->display.x->internal_border_width < 0) + f->display.x->internal_border_width = 0; tem = x_get_arg (parms, intern ("window-id"), 0, 0); if (!EQ (tem, Qnil)) @@ -2010,23 +2010,23 @@ be shared by the new screen.") Window *children, root; CHECK_STRING (tem, 0); - s->display.x->window_desc = (Window) atoi (XSTRING (tem)->data); + f->display.x->window_desc = (Window) atoi (XSTRING (tem)->data); BLOCK_INPUT; - XGetWindowInfo (s->display.x->window_desc, &wininfo); - XQueryTree (s->display.x->window_desc, &parent, &nchildren, &children); + XGetWindowInfo (f->display.x->window_desc, &wininfo); + XQueryTree (f->display.x->window_desc, &parent, &nchildren, &children); free (children); UNBLOCK_INPUT; - height = (wininfo.height - 2 * s->display.x->internal_border_width) - / FONT_HEIGHT (s->display.x->font); - width = (wininfo.width - 2 * s->display.x->internal_border_width) - / FONT_WIDTH (s->display.x->font); - s->display.x->left_pos = wininfo.x; - s->display.x->top_pos = wininfo.y; - s->visible = wininfo.mapped != 0; - s->display.x->border_width = wininfo.bdrwidth; - s->display.x->parent_desc = parent; + height = (wininfo.height - 2 * f->display.x->internal_border_width) + / FONT_HEIGHT (f->display.x->font); + width = (wininfo.width - 2 * f->display.x->internal_border_width) + / FONT_WIDTH (f->display.x->font); + f->display.x->left_pos = wininfo.x; + f->display.x->top_pos = wininfo.y; + f->visible = wininfo.mapped != 0; + f->display.x->border_width = wininfo.bdrwidth; + f->display.x->parent_desc = parent; } else { @@ -2036,7 +2036,7 @@ be shared by the new screen.") CHECK_STRING (tem, 0); parent = (Window) atoi (XSTRING (tem)->data); } - s->display.x->parent_desc = parent; + f->display.x->parent_desc = parent; tem = x_get_arg (parms, intern ("height"), 0, 0); if (EQ (tem, Qnil)) { @@ -2053,12 +2053,12 @@ be shared by the new screen.") if (EQ (tem, Qnil)) { tem = x_get_arg (parms, intern ("geometry"), 0, 0); - x_rubber_band (s, - &s->display.x->left_pos, &s->display.x->top_pos, + x_rubber_band (f, + &f->display.x->left_pos, &f->display.x->top_pos, &width, &height, (XTYPE (tem) == Lisp_String ? (char *) XSTRING (tem)->data : ""), - XSTRING (s->name)->data, + XSTRING (f->name)->data, !NILP (hscroll), !NILP (vscroll)); } else @@ -2081,128 +2081,128 @@ be shared by the new screen.") if (EQ (tem, Qnil)) error ("Top position not specified"); CHECK_NUMBER (tem, 0); - s->display.x->left_pos = XINT (tem); + f->display.x->left_pos = XINT (tem); tem = x_get_arg (parms, intern ("left"), 0, 0); if (EQ (tem, Qnil)) error ("Left position not specified"); CHECK_NUMBER (tem, 0); - s->display.x->top_pos = XINT (tem); + f->display.x->top_pos = XINT (tem); } - pixelwidth = (width * FONT_WIDTH (s->display.x->font) - + 2 * s->display.x->internal_border_width + pixelwidth = (width * FONT_WIDTH (f->display.x->font) + + 2 * f->display.x->internal_border_width + (!NILP (vscroll) ? VSCROLL_WIDTH : 0)); - pixelheight = (height * FONT_HEIGHT (s->display.x->font) - + 2 * s->display.x->internal_border_width + pixelheight = (height * FONT_HEIGHT (f->display.x->font) + + 2 * f->display.x->internal_border_width + (!NILP (hscroll) ? HSCROLL_HEIGHT : 0)); BLOCK_INPUT; - s->display.x->window_desc + f->display.x->window_desc = XCreateWindow (parent, - s->display.x->left_pos, /* Absolute horizontal offset */ - s->display.x->top_pos, /* Absolute Vertical offset */ + f->display.x->left_pos, /* Absolute horizontal offset */ + f->display.x->top_pos, /* Absolute Vertical offset */ pixelwidth, pixelheight, - s->display.x->border_width, + f->display.x->border_width, BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT); UNBLOCK_INPUT; - if (s->display.x->window_desc == 0) + if (f->display.x->window_desc == 0) error ("Unable to create window."); } /* Install the now determined height and width in the windows and in phys_lines and desired_lines. */ /* ??? jla version had 1 here instead of 0. */ - change_screen_size (s, height, width, 1); - XSelectInput (s->display.x->window_desc, KeyPressed | ExposeWindow + change_frame_size (f, height, width, 1); + XSelectInput (f->display.x->window_desc, KeyPressed | ExposeWindow | ButtonPressed | ButtonReleased | ExposeRegion | ExposeCopy | EnterWindow | LeaveWindow | UnmapWindow ); - x_set_resize_hint (s); + x_set_resize_hint (f); /* Tell the server the window's default name. */ #ifdef HAVE_X11 { XTextProperty prop; - prop.value = XSTRING (s->name)->data; + prop.value = XSTRING (f->name)->data; prop.encoding = XA_STRING; prop.format = 8; - prop.nitems = XSTRING (s->name)->size; - XSetWMName (XDISPLAY s->display.x->window_desc, &prop); + prop.nitems = XSTRING (f->name)->size; + XSetWMName (XDISPLAY f->display.x->window_desc, &prop); } #else - XStoreName (XDISPLAY s->display.x->window_desc, XSTRING (s->name)->data); + XStoreName (XDISPLAY f->display.x->window_desc, XSTRING (f->name)->data); #endif /* Now override the defaults with all the rest of the specified parms. */ tem = x_get_arg (parms, intern ("unsplittable"), 0, 0); - s->no_split = minibuffer_only || EQ (tem, Qt); + f->no_split = minibuffer_only || EQ (tem, Qt); /* Do not create an icon window if the caller says not to */ if (!EQ (x_get_arg (parms, intern ("suppress-icon"), 0, 0), Qt) - || s->display.x->parent_desc != ROOT_WINDOW) + || f->display.x->parent_desc != ROOT_WINDOW) { - x_text_icon (s, iconidentity); - x_default_parameter (s, parms, "icon-type", Qnil, + x_text_icon (f, iconidentity); + x_default_parameter (f, parms, "icon-type", Qnil, "BitmapIcon", boolean); } /* Tell the X server the previously set values of the background, border and mouse colors; also create the mouse cursor. */ BLOCK_INPUT; - temp = XMakeTile (s->display.x->background_pixel); - XChangeBackground (s->display.x->window_desc, temp); + temp = XMakeTile (f->display.x->background_pixel); + XChangeBackground (f->display.x->window_desc, temp); XFreePixmap (temp); UNBLOCK_INPUT; - x_set_border_pixel (s, s->display.x->border_pixel); + x_set_border_pixel (f, f->display.x->border_pixel); - x_set_mouse_color (s, Qnil, Qnil); + x_set_mouse_color (f, Qnil, Qnil); /* Now override the defaults with all the rest of the specified parms. */ - Fmodify_screen_parameters (screen, parms); + Fmodify_frame_parameters (frame, parms); if (!NILP (vscroll)) - install_vertical_scrollbar (s, pixelwidth, pixelheight); + install_vertical_scrollbar (f, pixelwidth, pixelheight); if (!NILP (hscroll)) - install_horizontal_scrollbar (s, pixelwidth, pixelheight); + install_horizontal_scrollbar (f, pixelwidth, pixelheight); - /* Make the window appear on the screen and enable display. */ + /* Make the window appear on the frame and enable display. */ if (!EQ (x_get_arg (parms, intern ("suppress-initial-map"), 0, 0), Qt)) - x_make_window_visible (s); - SCREEN_GARBAGED (s); + x_make_window_visible (f); + FRAME_GARBAGED (f); - return screen; + return frame; #endif /* X10 */ } -DEFUN ("focus-screen", Ffocus_screen, Sfocus_screen, 1, 1, 0, - "Set the focus on SCREEN.") - (screen) - Lisp_Object screen; +DEFUN ("focus-frame", Ffocus_frame, Sfocus_frame, 1, 1, 0, + "Set the focus on FRAME.") + (frame) + Lisp_Object frame; { - CHECK_LIVE_SCREEN (screen, 0); + CHECK_LIVE_FRAME (frame, 0); - if (SCREEN_IS_X (XSCREEN (screen))) + if (FRAME_IS_X (XFRAME (frame))) { BLOCK_INPUT; - x_focus_on_screen (XSCREEN (screen)); + x_focus_on_frame (XFRAME (frame)); UNBLOCK_INPUT; - return screen; + return frame; } return Qnil; } -DEFUN ("unfocus-screen", Funfocus_screen, Sunfocus_screen, 0, 0, 0, - "If a screen has been focused, release it.") +DEFUN ("unfocus-frame", Funfocus_frame, Sunfocus_frame, 0, 0, 0, + "If a frame has been focused, release it.") () { - if (x_focus_screen) + if (x_focus_frame) { BLOCK_INPUT; - x_unfocus_screen (x_focus_screen); + x_unfocus_frame (x_focus_frame); UNBLOCK_INPUT; } @@ -2213,7 +2213,7 @@ DEFUN ("unfocus-screen", Funfocus_screen, Sunfocus_screen, 0, 0, 0, /* Computes an X-window size and position either from geometry GEO or with the mouse. - S is a screen. It specifies an X window which is used to + F is a frame. It specifies an X window which is used to determine which display to compute for. Its font, borders and colors control how the rectangle will be displayed. @@ -2225,8 +2225,8 @@ DEFUN ("unfocus-screen", Funfocus_screen, Sunfocus_screen, 0, 0, 0, HSCROLL and VSCROLL say whether we have horiz and vert scroll bars. */ int -x_rubber_band (s, x, y, width, height, geo, str, hscroll, vscroll) - struct screen *s; +x_rubber_band (f, x, y, width, height, geo, str, hscroll, vscroll) + struct frame *f; int *x, *y, *width, *height; char *geo; char *str; @@ -2242,20 +2242,20 @@ x_rubber_band (s, x, y, width, height, geo, str, hscroll, vscroll) BLOCK_INPUT; - background_color = s->display.x->background_pixel; - border_color = s->display.x->border_pixel; + background_color = f->display.x->background_pixel; + border_color = f->display.x->border_pixel; - frame.bdrwidth = s->display.x->border_width; + frame.bdrwidth = f->display.x->border_width; frame.border = XMakeTile (border_color); frame.background = XMakeTile (background_color); tempwindow = XCreateTerm (str, "emacs", geo, default_window, &frame, 10, 5, - (2 * s->display.x->internal_border_width + (2 * f->display.x->internal_border_width + (vscroll ? VSCROLL_WIDTH : 0)), - (2 * s->display.x->internal_border_width + (2 * f->display.x->internal_border_width + (hscroll ? HSCROLL_HEIGHT : 0)), - width, height, s->display.x->font, - FONT_WIDTH (s->display.x->font), - FONT_HEIGHT (s->display.x->font)); + width, height, f->display.x->font, + FONT_WIDTH (f->display.x->font), + FONT_HEIGHT (f->display.x->font)); XFreePixmap (frame.border); XFreePixmap (frame.background); @@ -2270,7 +2270,7 @@ x_rubber_band (s, x, y, width, height, geo, str, hscroll, vscroll) /* Coordinates we got are relative to the root window. Convert them to coordinates relative to desired parent window by scanning from there up to the root. */ - tempwindow = s->display.x->parent_desc; + tempwindow = f->display.x->parent_desc; while (tempwindow != ROOT_WINDOW) { int nchildren; @@ -2287,114 +2287,114 @@ x_rubber_band (s, x, y, width, height, geo, str, hscroll, vscroll) } #endif /* not HAVE_X11 */ -/* Set whether screen S has a horizontal scroll bar. +/* Set whether frame F has a horizontal scroll bar. VAL is t or nil to specify it. */ static void -x_set_horizontal_scrollbar (s, val, oldval) - struct screen *s; +x_set_horizontal_scrollbar (f, val, oldval) + struct frame *f; Lisp_Object val, oldval; { if (!NILP (val)) { - if (s->display.x->window_desc != 0) + if (f->display.x->window_desc != 0) { BLOCK_INPUT; - s->display.x->h_scrollbar_height = HSCROLL_HEIGHT; - x_set_window_size (s, s->width, s->height); - install_horizontal_scrollbar (s); - SET_SCREEN_GARBAGED (s); + f->display.x->h_scrollbar_height = HSCROLL_HEIGHT; + x_set_window_size (f, f->width, f->height); + install_horizontal_scrollbar (f); + SET_FRAME_GARBAGED (f); UNBLOCK_INPUT; } } else - if (s->display.x->h_scrollbar) + if (f->display.x->h_scrollbar) { BLOCK_INPUT; - s->display.x->h_scrollbar_height = 0; - XDestroyWindow (XDISPLAY s->display.x->h_scrollbar); - s->display.x->h_scrollbar = 0; - x_set_window_size (s, s->width, s->height); - s->garbaged++; - screen_garbaged++; + f->display.x->h_scrollbar_height = 0; + XDestroyWindow (XDISPLAY f->display.x->h_scrollbar); + f->display.x->h_scrollbar = 0; + x_set_window_size (f, f->width, f->height); + f->garbaged++; + frame_garbaged++; BLOCK_INPUT; } } -/* Set whether screen S has a vertical scroll bar. +/* Set whether frame F has a vertical scroll bar. VAL is t or nil to specify it. */ static void -x_set_vertical_scrollbar (s, val, oldval) - struct screen *s; +x_set_vertical_scrollbar (f, val, oldval) + struct frame *f; Lisp_Object val, oldval; { if (!NILP (val)) { - if (s->display.x->window_desc != 0) + if (f->display.x->window_desc != 0) { BLOCK_INPUT; - s->display.x->v_scrollbar_width = VSCROLL_WIDTH; - x_set_window_size (s, s->width, s->height); - install_vertical_scrollbar (s); - SET_SCREEN_GARBAGED (s); + f->display.x->v_scrollbar_width = VSCROLL_WIDTH; + x_set_window_size (f, f->width, f->height); + install_vertical_scrollbar (f); + SET_FRAME_GARBAGED (f); UNBLOCK_INPUT; } } else - if (s->display.x->v_scrollbar != 0) + if (f->display.x->v_scrollbar != 0) { BLOCK_INPUT; - s->display.x->v_scrollbar_width = 0; - XDestroyWindow (XDISPLAY s->display.x->v_scrollbar); - s->display.x->v_scrollbar = 0; - x_set_window_size (s, s->width, s->height); - SET_SCREEN_GARBAGED (s); + f->display.x->v_scrollbar_width = 0; + XDestroyWindow (XDISPLAY f->display.x->v_scrollbar); + f->display.x->v_scrollbar = 0; + x_set_window_size (f, f->width, f->height); + SET_FRAME_GARBAGED (f); UNBLOCK_INPUT; } } /* Create the X windows for a vertical scroll bar - for a screen X that already has an X window but no scroll bar. */ + for a frame X that already has an X window but no scroll bar. */ static void -install_vertical_scrollbar (s) - struct screen *s; +install_vertical_scrollbar (f) + struct frame *f; { - int ibw = s->display.x->internal_border_width; + int ibw = f->display.x->internal_border_width; Window parent; XColor fore_color, back_color; Pixmap up_arrow_pixmap, down_arrow_pixmap, slider_pixmap; int pix_x, pix_y, width, height, border; - height = s->display.x->pixel_height - ibw - 2; + height = f->display.x->pixel_height - ibw - 2; width = VSCROLL_WIDTH - 2; - pix_x = s->display.x->pixel_width - ibw/2; + pix_x = f->display.x->pixel_width - ibw/2; pix_y = ibw / 2; border = 1; #ifdef HAVE_X11 up_arrow_pixmap = - XCreatePixmapFromBitmapData (x_current_display, s->display.x->window_desc, + XCreatePixmapFromBitmapData (x_current_display, f->display.x->window_desc, up_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); down_arrow_pixmap = - XCreatePixmapFromBitmapData (x_current_display, s->display.x->window_desc, + XCreatePixmapFromBitmapData (x_current_display, f->display.x->window_desc, down_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); slider_pixmap = - XCreatePixmapFromBitmapData (x_current_display, s->display.x->window_desc, + XCreatePixmapFromBitmapData (x_current_display, f->display.x->window_desc, gray_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); @@ -2405,54 +2405,54 @@ install_vertical_scrollbar (s) down_arrow_cursor = XCreateFontCursor (x_current_display, XC_sb_down_arrow); v_double_arrow_cursor = XCreateFontCursor (x_current_display, XC_sb_v_double_arrow); - s->display.x->v_scrollbar = - XCreateSimpleWindow (x_current_display, s->display.x->window_desc, + f->display.x->v_scrollbar = + XCreateSimpleWindow (x_current_display, f->display.x->window_desc, pix_x, pix_y, width, height, border, - s->display.x->foreground_pixel, - s->display.x->background_pixel); + f->display.x->foreground_pixel, + f->display.x->background_pixel); XFlush (x_current_display); - XDefineCursor (x_current_display, s->display.x->v_scrollbar, + XDefineCursor (x_current_display, f->display.x->v_scrollbar, v_double_arrow_cursor); /* Create slider window */ - s->display.x->v_slider = - XCreateSimpleWindow (x_current_display, s->display.x->v_scrollbar, + f->display.x->v_slider = + XCreateSimpleWindow (x_current_display, f->display.x->v_scrollbar, 0, VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 4, VSCROLL_WIDTH - 4, - 1, s->display.x->border_pixel, - s->display.x->foreground_pixel); + 1, f->display.x->border_pixel, + f->display.x->foreground_pixel); XFlush (x_current_display); - XDefineCursor (x_current_display, s->display.x->v_slider, + XDefineCursor (x_current_display, f->display.x->v_slider, v_double_arrow_cursor); - XSetWindowBackgroundPixmap (x_current_display, s->display.x->v_slider, + XSetWindowBackgroundPixmap (x_current_display, f->display.x->v_slider, slider_pixmap); - s->display.x->v_thumbup = - XCreateSimpleWindow (x_current_display, s->display.x->v_scrollbar, + f->display.x->v_thumbup = + XCreateSimpleWindow (x_current_display, f->display.x->v_scrollbar, 0, 0, VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 2, - 0, s->display.x->foreground_pixel, - s->display.x-> background_pixel); + 0, f->display.x->foreground_pixel, + f->display.x-> background_pixel); XFlush (x_current_display); - XDefineCursor (x_current_display, s->display.x->v_thumbup, + XDefineCursor (x_current_display, f->display.x->v_thumbup, up_arrow_cursor); - XSetWindowBackgroundPixmap (x_current_display, s->display.x->v_thumbup, + XSetWindowBackgroundPixmap (x_current_display, f->display.x->v_thumbup, up_arrow_pixmap); - s->display.x->v_thumbdown = - XCreateSimpleWindow (x_current_display, s->display.x->v_scrollbar, + f->display.x->v_thumbdown = + XCreateSimpleWindow (x_current_display, f->display.x->v_scrollbar, 0, height - VSCROLL_WIDTH + 2, VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 2, - 0, s->display.x->foreground_pixel, - s->display.x->background_pixel); + 0, f->display.x->foreground_pixel, + f->display.x->background_pixel); XFlush (x_current_display); - XDefineCursor (x_current_display, s->display.x->v_thumbdown, + XDefineCursor (x_current_display, f->display.x->v_thumbdown, down_arrow_cursor); - XSetWindowBackgroundPixmap (x_current_display, s->display.x->v_thumbdown, + XSetWindowBackgroundPixmap (x_current_display, f->display.x->v_thumbdown, down_arrow_pixmap); - fore_color.pixel = s->display.x->mouse_pixel; - back_color.pixel = s->display.x->background_pixel; + fore_color.pixel = f->display.x->mouse_pixel; + back_color.pixel = f->display.x->background_pixel; XQueryColor (x_current_display, DefaultColormap (x_current_display, DefaultScreen (x_current_display)), @@ -2473,21 +2473,21 @@ install_vertical_scrollbar (s) XFreePixmap (x_current_display, down_arrow_pixmap); XFlush (x_current_display); - XSelectInput (x_current_display, s->display.x->v_scrollbar, + XSelectInput (x_current_display, f->display.x->v_scrollbar, ButtonPressMask | ButtonReleaseMask | PointerMotionMask | PointerMotionHintMask | EnterWindowMask); - XSelectInput (x_current_display, s->display.x->v_slider, + XSelectInput (x_current_display, f->display.x->v_slider, ButtonPressMask | ButtonReleaseMask); - XSelectInput (x_current_display, s->display.x->v_thumbdown, + XSelectInput (x_current_display, f->display.x->v_thumbdown, ButtonPressMask | ButtonReleaseMask); - XSelectInput (x_current_display, s->display.x->v_thumbup, + XSelectInput (x_current_display, f->display.x->v_thumbup, ButtonPressMask | ButtonReleaseMask); XFlush (x_current_display); /* This should be done at the same time as the main window. */ - XMapWindow (x_current_display, s->display.x->v_scrollbar); - XMapSubwindows (x_current_display, s->display.x->v_scrollbar); + XMapWindow (x_current_display, f->display.x->v_scrollbar); + XMapSubwindows (x_current_display, f->display.x->v_scrollbar); XFlush (x_current_display); #else /* not HAVE_X11 */ Bitmap b; @@ -2503,66 +2503,66 @@ install_vertical_scrollbar (s) 0x7ffe, 0x3ffc, 0x1ff8, 0x0ff0, 0x07e0, 0x03c0, 0x0180, 0x0000}; - fore_tile = XMakeTile (s->display.x->foreground_pixel); - back_tile = XMakeTile (s->display.x->background_pixel); - bord_tile = XMakeTile (s->display.x->border_pixel); + fore_tile = XMakeTile (f->display.x->foreground_pixel); + back_tile = XMakeTile (f->display.x->background_pixel); + bord_tile = XMakeTile (f->display.x->border_pixel); b = XStoreBitmap (VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 2, up_arrow_bits); up_arrow_pixmap = XMakePixmap (b, - s->display.x->foreground_pixel, - s->display.x->background_pixel); + f->display.x->foreground_pixel, + f->display.x->background_pixel); XFreeBitmap (b); b = XStoreBitmap (VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 2, down_arrow_bits); down_arrow_pixmap = XMakePixmap (b, - s->display.x->foreground_pixel, - s->display.x->background_pixel); + f->display.x->foreground_pixel, + f->display.x->background_pixel); XFreeBitmap (b); - ibw = s->display.x->internal_border_width; + ibw = f->display.x->internal_border_width; - s->display.x->v_scrollbar = XCreateWindow (s->display.x->window_desc, + f->display.x->v_scrollbar = XCreateWindow (f->display.x->window_desc, width - VSCROLL_WIDTH - ibw/2, ibw/2, VSCROLL_WIDTH - 2, height - ibw - 2, 1, bord_tile, back_tile); - s->display.x->v_scrollbar_width = VSCROLL_WIDTH; + f->display.x->v_scrollbar_width = VSCROLL_WIDTH; - s->display.x->v_thumbup = XCreateWindow (s->display.x->v_scrollbar, + f->display.x->v_thumbup = XCreateWindow (f->display.x->v_scrollbar, 0, 0, VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 2, 0, 0, up_arrow_pixmap); - XTileAbsolute (s->display.x->v_thumbup); + XTileAbsolute (f->display.x->v_thumbup); - s->display.x->v_thumbdown = XCreateWindow (s->display.x->v_scrollbar, + f->display.x->v_thumbdown = XCreateWindow (f->display.x->v_scrollbar, 0, height - ibw - VSCROLL_WIDTH, VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 2, 0, 0, down_arrow_pixmap); - XTileAbsolute (s->display.x->v_thumbdown); + XTileAbsolute (f->display.x->v_thumbdown); - s->display.x->v_slider = XCreateWindow (s->display.x->v_scrollbar, + f->display.x->v_slider = XCreateWindow (f->display.x->v_scrollbar, 0, VSCROLL_WIDTH - 2, VSCROLL_WIDTH - 4, VSCROLL_WIDTH - 4, 1, back_tile, fore_tile); - XSelectInput (s->display.x->v_scrollbar, + XSelectInput (f->display.x->v_scrollbar, (ButtonPressed | ButtonReleased | KeyPressed)); - XSelectInput (s->display.x->v_thumbup, + XSelectInput (f->display.x->v_thumbup, (ButtonPressed | ButtonReleased | KeyPressed)); - XSelectInput (s->display.x->v_thumbdown, + XSelectInput (f->display.x->v_thumbdown, (ButtonPressed | ButtonReleased | KeyPressed)); - XMapWindow (s->display.x->v_thumbup); - XMapWindow (s->display.x->v_thumbdown); - XMapWindow (s->display.x->v_slider); - XMapWindow (s->display.x->v_scrollbar); + XMapWindow (f->display.x->v_thumbup); + XMapWindow (f->display.x->v_thumbdown); + XMapWindow (f->display.x->v_slider); + XMapWindow (f->display.x->v_scrollbar); XFreePixmap (fore_tile); XFreePixmap (back_tile); @@ -2572,43 +2572,43 @@ install_vertical_scrollbar (s) } static void -install_horizontal_scrollbar (s) - struct screen *s; +install_horizontal_scrollbar (f) + struct frame *f; { - int ibw = s->display.x->internal_border_width; + int ibw = f->display.x->internal_border_width; Window parent; Pixmap left_arrow_pixmap, right_arrow_pixmap, slider_pixmap; int pix_x, pix_y; int width; pix_x = ibw; - pix_y = PIXEL_HEIGHT (s) - HSCROLL_HEIGHT - ibw ; - width = PIXEL_WIDTH (s) - 2 * ibw; - if (s->display.x->v_scrollbar_width) - width -= (s->display.x->v_scrollbar_width + 1); + pix_y = PIXEL_HEIGHT (f) - HSCROLL_HEIGHT - ibw ; + width = PIXEL_WIDTH (f) - 2 * ibw; + if (f->display.x->v_scrollbar_width) + width -= (f->display.x->v_scrollbar_width + 1); #ifdef HAVE_X11 left_arrow_pixmap = - XCreatePixmapFromBitmapData (x_current_display, s->display.x->window_desc, + XCreatePixmapFromBitmapData (x_current_display, f->display.x->window_desc, left_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); right_arrow_pixmap = - XCreatePixmapFromBitmapData (x_current_display, s->display.x->window_desc, + XCreatePixmapFromBitmapData (x_current_display, f->display.x->window_desc, right_arrow_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); slider_pixmap = - XCreatePixmapFromBitmapData (x_current_display, s->display.x->window_desc, + XCreatePixmapFromBitmapData (x_current_display, f->display.x->window_desc, gray_bits, 16, 16, - s->display.x->foreground_pixel, - s->display.x->background_pixel, + f->display.x->foreground_pixel, + f->display.x->background_pixel, DefaultDepth (x_current_display, XDefaultScreen (x_current_display))); @@ -2616,65 +2616,65 @@ install_horizontal_scrollbar (s) right_arrow_cursor = XCreateFontCursor (x_current_display, XC_sb_right_arrow); h_double_arrow_cursor = XCreateFontCursor (x_current_display, XC_sb_h_double_arrow); - s->display.x->h_scrollbar = - XCreateSimpleWindow (x_current_display, s->display.x->window_desc, + f->display.x->h_scrollbar = + XCreateSimpleWindow (x_current_display, f->display.x->window_desc, pix_x, pix_y, width - ibw - 2, HSCROLL_HEIGHT - 2, 1, - s->display.x->foreground_pixel, - s->display.x->background_pixel); - XDefineCursor (x_current_display, s->display.x->h_scrollbar, + f->display.x->foreground_pixel, + f->display.x->background_pixel); + XDefineCursor (x_current_display, f->display.x->h_scrollbar, h_double_arrow_cursor); - s->display.x->h_slider = - XCreateSimpleWindow (x_current_display, s->display.x->h_scrollbar, + f->display.x->h_slider = + XCreateSimpleWindow (x_current_display, f->display.x->h_scrollbar, 0, 0, HSCROLL_HEIGHT - 4, HSCROLL_HEIGHT - 4, - 1, s->display.x->foreground_pixel, - s->display.x->background_pixel); - XDefineCursor (x_current_display, s->display.x->h_slider, + 1, f->display.x->foreground_pixel, + f->display.x->background_pixel); + XDefineCursor (x_current_display, f->display.x->h_slider, h_double_arrow_cursor); - XSetWindowBackgroundPixmap (x_current_display, s->display.x->h_slider, + XSetWindowBackgroundPixmap (x_current_display, f->display.x->h_slider, slider_pixmap); - s->display.x->h_thumbleft = - XCreateSimpleWindow (x_current_display, s->display.x->h_scrollbar, + f->display.x->h_thumbleft = + XCreateSimpleWindow (x_current_display, f->display.x->h_scrollbar, 0, 0, HSCROLL_HEIGHT - 2, HSCROLL_HEIGHT - 2, - 0, s->display.x->foreground_pixel, - s->display.x->background_pixel); - XDefineCursor (x_current_display, s->display.x->h_thumbleft, + 0, f->display.x->foreground_pixel, + f->display.x->background_pixel); + XDefineCursor (x_current_display, f->display.x->h_thumbleft, left_arrow_cursor); - XSetWindowBackgroundPixmap (x_current_display, s->display.x->h_thumbleft, + XSetWindowBackgroundPixmap (x_current_display, f->display.x->h_thumbleft, left_arrow_pixmap); - s->display.x->h_thumbright = - XCreateSimpleWindow (x_current_display, s->display.x->h_scrollbar, + f->display.x->h_thumbright = + XCreateSimpleWindow (x_current_display, f->display.x->h_scrollbar, width - ibw - HSCROLL_HEIGHT, 0, HSCROLL_HEIGHT - 2, HSCROLL_HEIGHT -2, - 0, s->display.x->foreground_pixel, - s->display.x->background_pixel); - XDefineCursor (x_current_display, s->display.x->h_thumbright, + 0, f->display.x->foreground_pixel, + f->display.x->background_pixel); + XDefineCursor (x_current_display, f->display.x->h_thumbright, right_arrow_cursor); - XSetWindowBackgroundPixmap (x_current_display, s->display.x->h_thumbright, + XSetWindowBackgroundPixmap (x_current_display, f->display.x->h_thumbright, right_arrow_pixmap); XFreePixmap (x_current_display, slider_pixmap); XFreePixmap (x_current_display, left_arrow_pixmap); XFreePixmap (x_current_display, right_arrow_pixmap); - XSelectInput (x_current_display, s->display.x->h_scrollbar, + XSelectInput (x_current_display, f->display.x->h_scrollbar, ButtonPressMask | ButtonReleaseMask | PointerMotionMask | PointerMotionHintMask | EnterWindowMask); - XSelectInput (x_current_display, s->display.x->h_slider, + XSelectInput (x_current_display, f->display.x->h_slider, ButtonPressMask | ButtonReleaseMask); - XSelectInput (x_current_display, s->display.x->h_thumbright, + XSelectInput (x_current_display, f->display.x->h_thumbright, ButtonPressMask | ButtonReleaseMask); - XSelectInput (x_current_display, s->display.x->h_thumbleft, + XSelectInput (x_current_display, f->display.x->h_thumbleft, ButtonPressMask | ButtonReleaseMask); - XMapWindow (x_current_display, s->display.x->h_scrollbar); - XMapSubwindows (x_current_display, s->display.x->h_scrollbar); + XMapWindow (x_current_display, f->display.x->h_scrollbar); + XMapSubwindows (x_current_display, f->display.x->h_scrollbar); #else /* not HAVE_X11 */ Bitmap b; Pixmap fore_tile, back_tile, bord_tile; @@ -2688,18 +2688,18 @@ install_horizontal_scrollbar (s) /* Adjust the displayed position in the scroll bar for window W. */ void -adjust_scrollbars (s) - struct screen *s; +adjust_scrollbars (f) + struct frame *f; { int pos; int first_char_in_window, char_beyond_window, chars_in_window; int chars_in_buffer, buffer_size; - struct window *w = XWINDOW (SCREEN_SELECTED_WINDOW (s)); + struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); - if (! SCREEN_IS_X (s)) + if (! FRAME_IS_X (f)) return; - if (s->display.x->v_scrollbar != 0) + if (f->display.x->v_scrollbar != 0) { int h, height; struct buffer *b = XBUFFER (w->buffer); @@ -2712,9 +2712,9 @@ adjust_scrollbars (s) /* Calculate height of scrollbar area */ - height = s->height * FONT_HEIGHT (s->display.x->font) - + s->display.x->internal_border_width - - 2 * (s->display.x->v_scrollbar_width); + height = f->height * FONT_HEIGHT (f->display.x->font) + + f->display.x->internal_border_width + - 2 * (f->display.x->v_scrollbar_width); /* Figure starting position for the scrollbar slider */ @@ -2737,27 +2737,27 @@ adjust_scrollbars (s) /* Add thumbup offset to starting position of slider */ - pos += (s->display.x->v_scrollbar_width - 2); + pos += (f->display.x->v_scrollbar_width - 2); XMoveResizeWindow (XDISPLAY - s->display.x->v_slider, + f->display.x->v_slider, 0, pos, - s->display.x->v_scrollbar_width - 4, h); + f->display.x->v_scrollbar_width - 4, h); } - if (s->display.x->h_scrollbar != 0) + if (f->display.x->h_scrollbar != 0) { int l, length; /* Length of the scrollbar area */ - length = s->width * FONT_WIDTH (s->display.x->font) - + s->display.x->internal_border_width - - 2 * (s->display.x->h_scrollbar_height); + length = f->width * FONT_WIDTH (f->display.x->font) + + f->display.x->internal_border_width + - 2 * (f->display.x->h_scrollbar_height); /* Starting position for horizontal slider */ if (! w->hscroll) pos = 0; else - pos = (w->hscroll * length) / (w->hscroll + s->width); + pos = (w->hscroll * length) / (w->hscroll + f->width); pos = max (0, pos); pos = min (pos, length - 2); @@ -2765,81 +2765,81 @@ adjust_scrollbars (s) l = length - pos; /* Add thumbup offset */ - pos += (s->display.x->h_scrollbar_height - 2); + pos += (f->display.x->h_scrollbar_height - 2); XMoveResizeWindow (XDISPLAY - s->display.x->h_slider, + f->display.x->h_slider, pos, 0, - l, s->display.x->h_scrollbar_height - 4); + l, f->display.x->h_scrollbar_height - 4); } } -/* Adjust the size of the scroll bars of screen S, - when the screen size has changed. */ +/* Adjust the size of the scroll bars of frame F, + when the frame size has changed. */ void -x_resize_scrollbars (s) - struct screen *s; +x_resize_scrollbars (f) + struct frame *f; { - int ibw = s->display.x->internal_border_width; + int ibw = f->display.x->internal_border_width; int pixelwidth, pixelheight; - if (s == 0 - || s->display.x == 0 - || (s->display.x->v_scrollbar == 0 - && s->display.x->h_scrollbar == 0)) + if (f == 0 + || f->display.x == 0 + || (f->display.x->v_scrollbar == 0 + && f->display.x->h_scrollbar == 0)) return; - /* Get the size of the screen. */ - pixelwidth = (s->width * FONT_WIDTH (s->display.x->font) - + 2 * ibw + s->display.x->v_scrollbar_width); - pixelheight = (s->height * FONT_HEIGHT (s->display.x->font) - + 2 * ibw + s->display.x->h_scrollbar_height); + /* Get the size of the frame. */ + pixelwidth = (f->width * FONT_WIDTH (f->display.x->font) + + 2 * ibw + f->display.x->v_scrollbar_width); + pixelheight = (f->height * FONT_HEIGHT (f->display.x->font) + + 2 * ibw + f->display.x->h_scrollbar_height); - if (s->display.x->v_scrollbar_width && s->display.x->v_scrollbar) + if (f->display.x->v_scrollbar_width && f->display.x->v_scrollbar) { BLOCK_INPUT; XMoveResizeWindow (XDISPLAY - s->display.x->v_scrollbar, - pixelwidth - s->display.x->v_scrollbar_width - ibw/2, + f->display.x->v_scrollbar, + pixelwidth - f->display.x->v_scrollbar_width - ibw/2, ibw/2, - s->display.x->v_scrollbar_width - 2, + f->display.x->v_scrollbar_width - 2, pixelheight - ibw - 2); XMoveWindow (XDISPLAY - s->display.x->v_thumbdown, 0, - pixelheight - ibw - s->display.x->v_scrollbar_width); + f->display.x->v_thumbdown, 0, + pixelheight - ibw - f->display.x->v_scrollbar_width); UNBLOCK_INPUT; } - if (s->display.x->h_scrollbar_height && s->display.x->h_scrollbar) + if (f->display.x->h_scrollbar_height && f->display.x->h_scrollbar) { - if (s->display.x->v_scrollbar_width) - pixelwidth -= s->display.x->v_scrollbar_width + 1; + if (f->display.x->v_scrollbar_width) + pixelwidth -= f->display.x->v_scrollbar_width + 1; BLOCK_INPUT; XMoveResizeWindow (XDISPLAY - s->display.x->h_scrollbar, + f->display.x->h_scrollbar, ibw / 2, - pixelheight - s->display.x->h_scrollbar_height - ibw / 2, + pixelheight - f->display.x->h_scrollbar_height - ibw / 2, pixelwidth - ibw - 2, - s->display.x->h_scrollbar_height - 2); + f->display.x->h_scrollbar_height - 2); XMoveWindow (XDISPLAY - s->display.x->h_thumbright, - pixelwidth - ibw - s->display.x->h_scrollbar_height, 0); + f->display.x->h_thumbright, + pixelwidth - ibw - f->display.x->h_scrollbar_height, 0); UNBLOCK_INPUT; } } -x_pixel_width (s) - register struct screen *s; +x_pixel_width (f) + register struct frame *f; { - return PIXEL_WIDTH (s); + return PIXEL_WIDTH (f); } -x_pixel_height (s) - register struct screen *s; +x_pixel_height (f) + register struct frame *f; { - return PIXEL_HEIGHT (s); + return PIXEL_HEIGHT (f); } DEFUN ("x-defined-color", Fx_defined_color, Sx_defined_color, 1, 1, 0, @@ -2878,64 +2878,64 @@ DEFUN ("x-color-display-p", Fx_color_display_p, Sx_color_display_p, 0, 0, 0, } DEFUN ("x-pixel-width", Fx_pixel_width, Sx_pixel_width, 1, 1, 0, - "Return the width in pixels of screen S.") - (screen) - Lisp_Object screen; + "Return the width in pixels of FRAME.") + (frame) + Lisp_Object frame; { - CHECK_LIVE_SCREEN (screen, 0); - return make_number (XSCREEN (screen)->display.x->pixel_width); + CHECK_LIVE_FRAME (frame, 0); + return make_number (XFRAME (frame)->display.x->pixel_width); } DEFUN ("x-pixel-height", Fx_pixel_height, Sx_pixel_height, 1, 1, 0, - "Return the height in pixels of screen S.") - (screen) - Lisp_Object screen; + "Return the height in pixels of FRAME.") + (frame) + Lisp_Object frame; { - CHECK_LIVE_SCREEN (screen, 0); - return make_number (XSCREEN (screen)->display.x->pixel_height); + CHECK_LIVE_FRAME (frame, 0); + return make_number (XFRAME (frame)->display.x->pixel_height); } #if 0 /* These no longer seem like the right way to do things. */ -/* Draw a rectangle on the screen with left top corner including +/* Draw a rectangle on the frame with left top corner including the character specified by LEFT_CHAR and TOP_CHAR. The rectangle is CHARS by LINES wide and long and is the color of the cursor. */ void -x_rectangle (s, gc, left_char, top_char, chars, lines) - register struct screen *s; +x_rectangle (f, gc, left_char, top_char, chars, lines) + register struct frame *f; GC gc; register int top_char, left_char, chars, lines; { int width; int height; - int left = (left_char * FONT_WIDTH (s->display.x->font) - + s->display.x->internal_border_width); - int top = (top_char * FONT_HEIGHT (s->display.x->font) - + s->display.x->internal_border_width); + int left = (left_char * FONT_WIDTH (f->display.x->font) + + f->display.x->internal_border_width); + int top = (top_char * FONT_HEIGHT (f->display.x->font) + + f->display.x->internal_border_width); if (chars < 0) - width = FONT_WIDTH (s->display.x->font) / 2; + width = FONT_WIDTH (f->display.x->font) / 2; else - width = FONT_WIDTH (s->display.x->font) * chars; + width = FONT_WIDTH (f->display.x->font) * chars; if (lines < 0) - height = FONT_HEIGHT (s->display.x->font) / 2; + height = FONT_HEIGHT (f->display.x->font) / 2; else - height = FONT_HEIGHT (s->display.x->font) * lines; + height = FONT_HEIGHT (f->display.x->font) * lines; - XDrawRectangle (x_current_display, s->display.x->window_desc, + XDrawRectangle (x_current_display, f->display.x->window_desc, gc, left, top, width, height); } DEFUN ("x-draw-rectangle", Fx_draw_rectangle, Sx_draw_rectangle, 5, 5, 0, - "Draw a rectangle on SCREEN between coordinates specified by\n\ + "Draw a rectangle on FRAME between coordinates specified by\n\ numbers X0, Y0, X1, Y1 in the cursor pixel.") - (screen, X0, Y0, X1, Y1) - register Lisp_Object screen, X0, X1, Y0, Y1; + (frame, X0, Y0, X1, Y1) + register Lisp_Object frame, X0, X1, Y0, Y1; { register int x0, y0, x1, y1, top, left, n_chars, n_lines; - CHECK_LIVE_SCREEN (screen, 0); + CHECK_LIVE_FRAME (frame, 0); CHECK_NUMBER (X0, 0); CHECK_NUMBER (Y0, 1); CHECK_NUMBER (X1, 2); @@ -2969,7 +2969,7 @@ numbers X0, Y0, X1, Y1 in the cursor pixel.") } BLOCK_INPUT; - x_rectangle (XSCREEN (screen), XSCREEN (screen)->display.x->cursor_gc, + x_rectangle (XFRAME (frame), XFRAME (frame)->display.x->cursor_gc, left, top, n_chars, n_lines); UNBLOCK_INPUT; @@ -2977,14 +2977,14 @@ numbers X0, Y0, X1, Y1 in the cursor pixel.") } DEFUN ("x-erase-rectangle", Fx_erase_rectangle, Sx_erase_rectangle, 5, 5, 0, - "Draw a rectangle drawn on SCREEN between coordinates\n\ + "Draw a rectangle drawn on FRAME between coordinates\n\ X0, Y0, X1, Y1 in the regular background-pixel.") - (screen, X0, Y0, X1, Y1) - register Lisp_Object screen, X0, Y0, X1, Y1; + (frame, X0, Y0, X1, Y1) + register Lisp_Object frame, X0, Y0, X1, Y1; { register int x0, y0, x1, y1, top, left, n_chars, n_lines; - CHECK_SCREEN (screen, 0); + CHECK_FRAME (frame, 0); CHECK_NUMBER (X0, 0); CHECK_NUMBER (Y0, 1); CHECK_NUMBER (X1, 2); @@ -3018,7 +3018,7 @@ X0, Y0, X1, Y1 in the regular background-pixel.") } BLOCK_INPUT; - x_rectangle (XSCREEN (screen), XSCREEN (screen)->display.x->reverse_gc, + x_rectangle (XFRAME (frame), XFRAME (frame)->display.x->reverse_gc, left, top, n_chars, n_lines); UNBLOCK_INPUT; @@ -3029,17 +3029,17 @@ X0, Y0, X1, Y1 in the regular background-pixel.") TOP_X, TOP_Y and ending at BOTTOM_X and BOTTOM_Y. GC specifies the pixel and line characteristics. */ -#define line_len(line) (SCREEN_CURRENT_GLYPHS (s)->used[(line)]) +#define line_len(line) (FRAME_CURRENT_GLYPHS (f)->used[(line)]) static void -outline_region (s, gc, top_x, top_y, bottom_x, bottom_y) - register struct screen *s; +outline_region (f, gc, top_x, top_y, bottom_x, bottom_y) + register struct frame *f; GC gc; int top_x, top_y, bottom_x, bottom_y; { - register int ibw = s->display.x->internal_border_width; - register int font_w = FONT_WIDTH (s->display.x->font); - register int font_h = FONT_HEIGHT (s->display.x->font); + register int ibw = f->display.x->internal_border_width; + register int font_w = FONT_WIDTH (f->display.x->font); + register int font_h = FONT_HEIGHT (f->display.x->font); int y = top_y; int x = line_len (y); XPoint *pixel_points = (XPoint *) @@ -3104,19 +3104,19 @@ outline_region (s, gc, top_x, top_y, bottom_x, bottom_y) this_point->x = pixel_points->x; this_point->y = pixel_points->y; - XDrawLines (x_current_display, s->display.x->window_desc, + XDrawLines (x_current_display, f->display.x->window_desc, gc, pixel_points, (this_point - pixel_points + 1), CoordModeOrigin); } DEFUN ("x-contour-region", Fx_contour_region, Sx_contour_region, 1, 1, 0, "Highlight the region between point and the character under the mouse\n\ -selected screen.") +selected frame.") (event) register Lisp_Object event; { register int x0, y0, x1, y1; - register struct screen *s = selected_screen; + register struct frame *f = selected_frame; register int p1, p2; CHECK_CONS (event, 0); @@ -3128,22 +3128,22 @@ selected screen.") /* If the mouse is past the end of the line, don't that area. */ /* ReWrite this... */ - x1 = s->cursor_x; - y1 = s->cursor_y; + x1 = f->cursor_x; + y1 = f->cursor_y; if (y1 > y0) /* point below mouse */ - outline_region (s, s->display.x->cursor_gc, + outline_region (f, f->display.x->cursor_gc, x0, y0, x1, y1); else if (y1 < y0) /* point above mouse */ - outline_region (s, s->display.x->cursor_gc, + outline_region (f, f->display.x->cursor_gc, x1, y1, x0, y0); else /* same line: draw horizontal rectangle */ { if (x1 > x0) - x_rectangle (s, s->display.x->cursor_gc, + x_rectangle (f, f->display.x->cursor_gc, x0, y0, (x1 - x0 + 1), 1); else if (x1 < x0) - x_rectangle (s, s->display.x->cursor_gc, + x_rectangle (f, f->display.x->cursor_gc, x1, y1, (x0 - x1 + 1), 1); } @@ -3155,32 +3155,32 @@ selected screen.") DEFUN ("x-uncontour-region", Fx_uncontour_region, Sx_uncontour_region, 1, 1, 0, "Erase any highlighting of the region between point and the character\n\ -at X, Y on the selected screen.") +at X, Y on the selected frame.") (event) register Lisp_Object event; { register int x0, y0, x1, y1; - register struct screen *s = selected_screen; + register struct frame *f = selected_frame; BLOCK_INPUT; x0 = XINT (Fcar (Fcar (event))); y0 = XINT (Fcar (Fcdr (Fcar (event)))); - x1 = s->cursor_x; - y1 = s->cursor_y; + x1 = f->cursor_x; + y1 = f->cursor_y; if (y1 > y0) /* point below mouse */ - outline_region (s, s->display.x->reverse_gc, + outline_region (f, f->display.x->reverse_gc, x0, y0, x1, y1); else if (y1 < y0) /* point above mouse */ - outline_region (s, s->display.x->reverse_gc, + outline_region (f, f->display.x->reverse_gc, x1, y1, x0, y0); else /* same line: draw horizontal rectangle */ { if (x1 > x0) - x_rectangle (s, s->display.x->reverse_gc, + x_rectangle (f, f->display.x->reverse_gc, x0, y0, (x1 - x0 + 1), 1); else if (x1 < x0) - x_rectangle (s, s->display.x->reverse_gc, + x_rectangle (f, f->display.x->reverse_gc, x1, y1, (x0 - x1 + 1), 1); } UNBLOCK_INPUT; @@ -3203,7 +3203,7 @@ clip_contour_top (y_pos, x_pos) register XPoint *begin = contour_lines[y_pos].top_left; register XPoint *end; register int npoints; - register struct display_line *line = selected_screen->phys_lines[y_pos + 1]; + register struct display_line *line = selected_frame->phys_lines[y_pos + 1]; if (x_pos >= line->len - 1) /* Draw one, straight horizontal line. */ { @@ -3268,9 +3268,9 @@ DEFUN ("x-select-region", Fx_select_region, Sx_select_region, 1, 1, "e", (event) Lisp_Object event; { - register struct screen *s = selected_screen; - register int point_x = s->cursor_x; - register int point_y = s->cursor_y; + register struct frame *f = selected_frame; + register int point_x = f->cursor_x; + register int point_y = f->cursor_y; register int mouse_below_point; register Lisp_Object obj; register int x_contour_x, x_contour_y; @@ -3281,13 +3281,13 @@ DEFUN ("x-select-region", Fx_select_region, Sx_select_region, 1, 1, "e", && x_contour_x > point_x)) { mouse_below_point = 1; - outline_region (s, s->display.x->cursor_gc, point_x, point_y, + outline_region (f, f->display.x->cursor_gc, point_x, point_y, x_contour_x, x_contour_y); } else { mouse_below_point = 0; - outline_region (s, s->display.x->cursor_gc, x_contour_x, x_contour_y, + outline_region (f, f->display.x->cursor_gc, x_contour_x, x_contour_y, point_x, point_y); } @@ -3303,9 +3303,9 @@ DEFUN ("x-select-region", Fx_select_region, Sx_select_region, 1, 1, "e", { mouse_below_point = 0; - outline_region (s, s->display.x->reverse_gc, point_x, point_y, + outline_region (f, f->display.x->reverse_gc, point_x, point_y, x_contour_x, x_contour_y); - outline_region (s, s->display.x->cursor_gc, x_mouse_x, x_mouse_y, + outline_region (f, f->display.x->cursor_gc, x_mouse_x, x_mouse_y, point_x, point_y); } else if (x_mouse_y < x_contour_y) /* Bottom clipped. */ @@ -3326,9 +3326,9 @@ DEFUN ("x-select-region", Fx_select_region, Sx_select_region, 1, 1, "e", { mouse_below_point = 1; - outline_region (s, s->display.x->reverse_gc, + outline_region (f, f->display.x->reverse_gc, x_contour_x, x_contour_y, point_x, point_y); - outline_region (s, s->display.x->cursor_gc, point_x, point_y, + outline_region (f, f->display.x->cursor_gc, point_x, point_y, x_mouse_x, x_mouse_y); } else if (x_mouse_y > x_contour_y) /* Top clipped. */ @@ -3366,42 +3366,42 @@ DEFUN ("x-horizontal-line", Fx_horizontal_line, Sx_horizontal_line, 1, 1, "e", Lisp_Object event; { register Lisp_Object obj; - struct screen *s = selected_screen; + struct frame *f = selected_frame; register struct window *w = XWINDOW (selected_window); - register GC line_gc = s->display.x->cursor_gc; - register GC erase_gc = s->display.x->reverse_gc; + register GC line_gc = f->display.x->cursor_gc; + register GC erase_gc = f->display.x->reverse_gc; #if 0 char dash_list[] = {6, 4, 6, 4}; int dashes = 4; XGCValues gc_values; #endif register int previous_y; - register int line = (x_mouse_y + 1) * FONT_HEIGHT (s->display.x->font) - + s->display.x->internal_border_width; - register int left = s->display.x->internal_border_width + register int line = (x_mouse_y + 1) * FONT_HEIGHT (f->display.x->font) + + f->display.x->internal_border_width; + register int left = f->display.x->internal_border_width + (w->left - * FONT_WIDTH (s->display.x->font)); + * FONT_WIDTH (f->display.x->font)); register int right = left + (w->width - * FONT_WIDTH (s->display.x->font)) - - s->display.x->internal_border_width; + * FONT_WIDTH (f->display.x->font)) + - f->display.x->internal_border_width; #if 0 BLOCK_INPUT; - gc_values.foreground = s->display.x->cursor_pixel; - gc_values.background = s->display.x->background_pixel; + gc_values.foreground = f->display.x->cursor_pixel; + gc_values.background = f->display.x->background_pixel; gc_values.line_width = 1; gc_values.line_style = LineOnOffDash; gc_values.cap_style = CapRound; gc_values.join_style = JoinRound; - line_gc = XCreateGC (x_current_display, s->display.x->window_desc, + line_gc = XCreateGC (x_current_display, f->display.x->window_desc, GCLineStyle | GCJoinStyle | GCCapStyle | GCLineWidth | GCForeground | GCBackground, &gc_values); XSetDashes (x_current_display, line_gc, 0, dash_list, dashes); - gc_values.foreground = s->display.x->background_pixel; - gc_values.background = s->display.x->foreground_pixel; - erase_gc = XCreateGC (x_current_display, s->display.x->window_desc, + gc_values.foreground = f->display.x->background_pixel; + gc_values.background = f->display.x->foreground_pixel; + erase_gc = XCreateGC (x_current_display, f->display.x->window_desc, GCLineStyle | GCJoinStyle | GCCapStyle | GCLineWidth | GCForeground | GCBackground, &gc_values); @@ -3415,9 +3415,9 @@ DEFUN ("x-horizontal-line", Fx_horizontal_line, Sx_horizontal_line, 1, 1, "e", && x_mouse_y < XINT (w->top) + XINT (w->height) - 1) { previous_y = x_mouse_y; - line = (x_mouse_y + 1) * FONT_HEIGHT (s->display.x->font) - + s->display.x->internal_border_width; - XDrawLine (x_current_display, s->display.x->window_desc, + line = (x_mouse_y + 1) * FONT_HEIGHT (f->display.x->font) + + f->display.x->internal_border_width; + XDrawLine (x_current_display, f->display.x->window_desc, line_gc, left, line, right, line); } XFlushQueue (); @@ -3432,7 +3432,7 @@ DEFUN ("x-horizontal-line", Fx_horizontal_line, Sx_horizontal_line, 1, 1, "e", || x_mouse_grabbed) { BLOCK_INPUT; - XDrawLine (x_current_display, s->display.x->window_desc, + XDrawLine (x_current_display, f->display.x->window_desc, erase_gc, left, line, right, line); UNBLOCK_INPUT; unread_command_char = obj; @@ -3446,7 +3446,7 @@ DEFUN ("x-horizontal-line", Fx_horizontal_line, Sx_horizontal_line, 1, 1, "e", while (x_mouse_y == previous_y); BLOCK_INPUT; - XDrawLine (x_current_display, s->display.x->window_desc, + XDrawLine (x_current_display, f->display.x->window_desc, erase_gc, left, line, right, line); UNBLOCK_INPUT; } @@ -3465,29 +3465,29 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 0, 0, 0, () { static Cursor current_pointer_shape; - SCREEN_PTR s = x_mouse_screen; + FRAME_PTR f = x_mouse_frame; BLOCK_INPUT; - if (EQ (Vmouse_screen_part, Qtext_part) - && (current_pointer_shape != s->display.x->nontext_cursor)) + if (EQ (Vmouse_frame_part, Qtext_part) + && (current_pointer_shape != f->display.x->nontext_cursor)) { unsigned char c; struct buffer *buf; - current_pointer_shape = s->display.x->nontext_cursor; + current_pointer_shape = f->display.x->nontext_cursor; XDefineCursor (x_current_display, - s->display.x->window_desc, + f->display.x->window_desc, current_pointer_shape); buf = XBUFFER (XWINDOW (Vmouse_window)->buffer); c = *(BUF_CHAR_ADDRESS (buf, mouse_buffer_offset)); } - else if (EQ (Vmouse_screen_part, Qmodeline_part) - && (current_pointer_shape != s->display.x->modeline_cursor)) + else if (EQ (Vmouse_frame_part, Qmodeline_part) + && (current_pointer_shape != f->display.x->modeline_cursor)) { - current_pointer_shape = s->display.x->modeline_cursor; + current_pointer_shape = f->display.x->modeline_cursor; XDefineCursor (x_current_display, - s->display.x->window_desc, + f->display.x->window_desc, current_pointer_shape); } @@ -3503,7 +3503,7 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 1, 1, "e", Lisp_Object event; { struct window *w = XWINDOW (Vmouse_window); - struct screen *s = XSCREEN (WINDOW_SCREEN (w)); + struct frame *f = XFRAME (WINDOW_FRAME (w)); struct buffer *b = XBUFFER (w->buffer); Lisp_Object obj; @@ -3514,7 +3514,7 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 1, 1, "e", { int x, y; - x_read_mouse_position (selected_screen, &x, &y); + x_read_mouse_position (selected_frame, &x, &y); } BLOCK_INPUT; @@ -3529,29 +3529,29 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 1, 1, "e", || x_mouse_y != mouse_track_top) { int hp = 0; /* Horizontal position */ - int len = SCREEN_CURRENT_GLYPHS (s)->used[x_mouse_y]; - int p = SCREEN_CURRENT_GLYPHS (s)->bufp[x_mouse_y]; + int len = FRAME_CURRENT_GLYPHS (f)->used[x_mouse_y]; + int p = FRAME_CURRENT_GLYPHS (f)->bufp[x_mouse_y]; int tab_width = XINT (b->tab_width); int ctl_arrow_p = !NILP (b->ctl_arrow); unsigned char c; int mode_line_vpos = XFASTINT (w->height) + XFASTINT (w->top) - 1; int in_mode_line = 0; - if (! SCREEN_CURRENT_GLYPHS (s)->enable[x_mouse_y]) + if (! FRAME_CURRENT_GLYPHS (f)->enable[x_mouse_y]) break; /* Erase previous rectangle. */ if (mouse_track_width) { - x_rectangle (s, s->display.x->reverse_gc, + x_rectangle (f, f->display.x->reverse_gc, mouse_track_left, mouse_track_top, mouse_track_width, 1); - if ((mouse_track_left == s->phys_cursor_x - || mouse_track_left == s->phys_cursor_x - 1) - && mouse_track_top == s->phys_cursor_y) + if ((mouse_track_left == f->phys_cursor_x + || mouse_track_left == f->phys_cursor_x - 1) + && mouse_track_top == f->phys_cursor_y) { - x_display_cursor (s, 1); + x_display_cursor (f, 1); } } @@ -3572,7 +3572,7 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 1, 1, "e", do { c = FETCH_CHAR (p); - if (len == s->width && hp == len - 1 && c != '\n') + if (len == f->width && hp == len - 1 && c != '\n') goto draw_or_not; switch (c) @@ -3622,20 +3622,20 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 1, 1, "e", if (mouse_track_width) /* Over text; use text pointer shape. */ { XDefineCursor (x_current_display, - s->display.x->window_desc, - s->display.x->text_cursor); - x_rectangle (s, s->display.x->cursor_gc, + f->display.x->window_desc, + f->display.x->text_cursor); + x_rectangle (f, f->display.x->cursor_gc, mouse_track_left, mouse_track_top, mouse_track_width, 1); } else if (in_mode_line) XDefineCursor (x_current_display, - s->display.x->window_desc, - s->display.x->modeline_cursor); + f->display.x->window_desc, + f->display.x->modeline_cursor); else XDefineCursor (x_current_display, - s->display.x->window_desc, - s->display.x->nontext_cursor); + f->display.x->window_desc, + f->display.x->nontext_cursor); } XFlush (x_current_display); @@ -3648,26 +3648,26 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 1, 1, "e", && EQ (Fcar (Fcdr (Fcdr (obj))), Qnil) /* Not scrollbar */ && EQ (Vmouse_depressed, Qnil) /* Only motion events */ && EQ (Vmouse_window, selected_window) /* In this window */ - && x_mouse_screen); + && x_mouse_frame); unread_command_char = obj; if (mouse_track_width) { - x_rectangle (s, s->display.x->reverse_gc, + x_rectangle (f, f->display.x->reverse_gc, mouse_track_left, mouse_track_top, mouse_track_width, 1); mouse_track_width = 0; - if ((mouse_track_left == s->phys_cursor_x - || mouse_track_left - 1 == s->phys_cursor_x) - && mouse_track_top == s->phys_cursor_y) + if ((mouse_track_left == f->phys_cursor_x + || mouse_track_left - 1 == f->phys_cursor_x) + && mouse_track_top == f->phys_cursor_y) { - x_display_cursor (s, 1); + x_display_cursor (f, 1); } } XDefineCursor (x_current_display, - s->display.x->window_desc, - s->display.x->nontext_cursor); + f->display.x->window_desc, + f->display.x->nontext_cursor); XFlush (x_current_display); UNBLOCK_INPUT; @@ -3679,20 +3679,20 @@ DEFUN ("x-track-pointer", Fx_track_pointer, Sx_track_pointer, 1, 1, "e", #include "glyphs.h" /* Draw a pixmap specified by IMAGE_DATA of dimensions WIDTH and HEIGHT - on the screen S at position X, Y. */ + on the frame F at position X, Y. */ -x_draw_pixmap (s, x, y, image_data, width, height) - struct screen *s; +x_draw_pixmap (f, x, y, image_data, width, height) + struct frame *f; int x, y, width, height; char *image_data; { Pixmap image; image = XCreateBitmapFromData (x_current_display, - s->display.x->window_desc, image_data, + f->display.x->window_desc, image_data, width, height); - XCopyPlane (x_current_display, image, s->display.x->window_desc, - s->display.x->normal_gc, 0, 0, width, height, x, y); + XCopyPlane (x_current_display, image, f->display.x->window_desc, + f->display.x->normal_gc, 0, 0, width, height, x, y); } #endif @@ -3745,16 +3745,16 @@ DEFUN ("x-get-mouse-event", Fx_get_mouse_event, Sx_get_mouse_event, "Get next mouse event out of mouse event buffer.\n\ Optional ARG non-nil means return nil immediately if no pending event;\n\ otherwise, wait for an event. Returns a four-part list:\n\ - ((X-POS Y-POS) WINDOW SCREEN-PART KEYSEQ TIMESTAMP).\n\ -Normally X-POS and Y-POS are the position of the click on the screen\n\ + ((X-POS Y-POS) WINDOW FRAME-PART KEYSEQ TIMESTAMP).\n\ +Normally X-POS and Y-POS are the position of the click on the frame\n\ (measured in characters and lines), and WINDOW is the window clicked in.\n\ KEYSEQ is a string, the key sequence to be looked up in the mouse maps.\n\ -If SCREEN-PART is non-nil, the event was on a scrollbar;\n\ +If FRAME-PART is non-nil, the event was on a scrollbar;\n\ then Y-POS is really the total length of the scrollbar, while X-POS is\n\ the relative position of the scrollbar's value within that total length,\n\ and a third element OFFSET appears in that list: the height of the thumb-up\n\ area at the top of the scroll bar.\n\ -SCREEN-PART is one of the following symbols:\n\ +FRAME-PART is one of the following symbols:\n\ `vertical-scrollbar', `vertical-thumbup', `vertical-thumbdown',\n\ `horizontal-scrollbar', `horizontal-thumbleft', `horizontal-thumbright'.\n\ TIMESTAMP is the lower 23 bits of the X-server's timestamp for\n\ @@ -3768,7 +3768,7 @@ the mouse event.") register Lisp_Object tempy; Lisp_Object part, pos, timestamp; int prefix; - struct screen *s; + struct frame *f; int tem; @@ -3788,26 +3788,26 @@ the mouse event.") com_letter = encode_mouse_button (xrep); mouse_timestamp = xrep.MouseTime; - if ((s = x_window_to_screen (xrep.MouseWindow)) != 0) + if ((f = x_window_to_frame (xrep.MouseWindow)) != 0) { - Lisp_Object screen; + Lisp_Object frame; - if (s->display.x->icon_desc == xrep.MouseWindow) + if (f->display.x->icon_desc == xrep.MouseWindow) { - x_make_screen_visible (s); + x_make_frame_visible (f); continue; } XSET (tempx, Lisp_Int, - min (s->width-1, max (0, (xrep.MouseX - s->display.x->internal_border_width)/FONT_WIDTH (s->display.x->font)))); + min (f->width-1, max (0, (xrep.MouseX - f->display.x->internal_border_width)/FONT_WIDTH (f->display.x->font)))); XSET (tempy, Lisp_Int, - min (s->height-1, max (0, (xrep.MouseY - s->display.x->internal_border_width)/FONT_HEIGHT (s->display.x->font)))); + min (f->height-1, max (0, (xrep.MouseY - f->display.x->internal_border_width)/FONT_HEIGHT (f->display.x->font)))); XSET (timestamp, Lisp_Int, (xrep.MouseTime & 0x7fffff)); - XSET (screen, Lisp_Screen, s); + XSET (frame, Lisp_Frame, f); pos = Fcons (tempx, Fcons (tempy, Qnil)); Vmouse_window - = Flocate_window_from_coordinates (screen, pos); + = Flocate_window_from_coordinates (frame, pos); Vmouse_event = Fcons (pos, @@ -3817,7 +3817,7 @@ the mouse event.") Fcons (timestamp, Qnil))))); return Vmouse_event; } - else if ((s = x_window_to_scrollbar (xrep.MouseWindow, &part, &prefix)) != 0) + else if ((f = x_window_to_scrollbar (xrep.MouseWindow, &part, &prefix)) != 0) { int pos, len; Lisp_Object keyseq; @@ -3826,17 +3826,17 @@ the mouse event.") keyseq = concat2 (Fchar_to_string (make_number (prefix)), Fchar_to_string (make_number (com_letter))); - pos = xrep.MouseY - (s->display.x->v_scrollbar_width - 2); + pos = xrep.MouseY - (f->display.x->v_scrollbar_width - 2); XSET (tempx, Lisp_Int, pos); - len = ((FONT_HEIGHT (s->display.x->font) * s->height) - + s->display.x->internal_border_width - - (2 * (s->display.x->v_scrollbar_width - 2))); + len = ((FONT_HEIGHT (f->display.x->font) * f->height) + + f->display.x->internal_border_width + - (2 * (f->display.x->v_scrollbar_width - 2))); XSET (tempy, Lisp_Int, len); XSET (timestamp, Lisp_Int, (xrep.MouseTime & 0x7fffff)); - Vmouse_window = s->selected_window; + Vmouse_window = f->selected_window; Vmouse_event = Fcons (Fcons (tempx, Fcons (tempy, - Fcons (make_number (s->display.x->v_scrollbar_width - 2), + Fcons (make_number (f->display.x->v_scrollbar_width - 2), Qnil))), Fcons (Vmouse_window, Fcons (intern (part), @@ -3851,25 +3851,25 @@ the mouse event.") case MotionNotify: com_letter = x11_encode_mouse_button (xrep); - if ((s = x_window_to_screen (xrep.MouseWindow)) != 0) + if ((f = x_window_to_frame (xrep.MouseWindow)) != 0) { - Lisp_Object screen; + Lisp_Object frame; XSET (tempx, Lisp_Int, - min (s->width-1, - max (0, (xrep.MouseX - s->display.x->internal_border_width) - / FONT_WIDTH (s->display.x->font)))); + min (f->width-1, + max (0, (xrep.MouseX - f->display.x->internal_border_width) + / FONT_WIDTH (f->display.x->font)))); XSET (tempy, Lisp_Int, - min (s->height-1, - max (0, (xrep.MouseY - s->display.x->internal_border_width) - / FONT_HEIGHT (s->display.x->font)))); + min (f->height-1, + max (0, (xrep.MouseY - f->display.x->internal_border_width) + / FONT_HEIGHT (f->display.x->font)))); - XSET (screen, Lisp_Screen, s); + XSET (frame, Lisp_Frame, f); XSET (timestamp, Lisp_Int, (xrep.MouseTime & 0x7fffff)); pos = Fcons (tempx, Fcons (tempy, Qnil)); Vmouse_window - = Flocate_window_from_coordinates (screen, pos); + = Flocate_window_from_coordinates (frame, pos); Vmouse_event = Fcons (pos, @@ -3884,10 +3884,10 @@ the mouse event.") #endif /* HAVE_X11 */ default: - if (s = x_window_to_screen (xrep.MouseWindow)) - Vmouse_window = s->selected_window; - else if (s = x_window_to_scrollbar (xrep.MouseWindow, &part, &prefix)) - Vmouse_window = s->selected_window; + if (f = x_window_to_frame (xrep.MouseWindow)) + Vmouse_window = f->selected_window; + else if (f = x_window_to_scrollbar (xrep.MouseWindow, &part, &prefix)) + Vmouse_window = f->selected_window; return Vmouse_event = Qnil; } } @@ -3912,8 +3912,8 @@ DEFUN ("x-store-cut-buffer", Fx_store_cut_buffer, Sx_store_cut_buffer, int mask; CHECK_STRING (string, 1); - if (SCREEN_IS_X (selected_screen)) - error ("Selected screen does not understand X protocol."); + if (! FRAME_IS_X (selected_frame)) + error ("Selected frame does not understand X protocol."); BLOCK_INPUT; XStoreBytes ((char *) XSTRING (string)->data, XSTRING (string)->size); @@ -4400,9 +4400,9 @@ Values can be the symbols Always, WhenMapped, or NotUseful."); defsubr (&Sx_set_face); #endif defsubr (&Sx_geometry); - defsubr (&Sx_create_screen); - defsubr (&Sfocus_screen); - defsubr (&Sunfocus_screen); + defsubr (&Sx_create_frame); + defsubr (&Sfocus_frame); + defsubr (&Sunfocus_frame); #if 0 defsubr (&Sx_horizontal_line); #endif |