# HG changeset patch # User Jim Blandy # Date 710735621 0 # Node ID 0276f8eb306fd47124df9d0fafe3a1ba4c7c5f52 # Parent e4312322637239c5c82727a9de6c5843e541d1f9 *** empty log message *** diff -r e43123226372 -r 0276f8eb306f lisp/buff-menu.el --- a/lisp/buff-menu.el Fri Jul 10 01:16:40 1992 +0000 +++ b/lisp/buff-menu.el Fri Jul 10 02:33:41 1992 +0000 @@ -102,7 +102,7 @@ (error "No buffer named \"%s\"" string) nil))))) -(defun buffer-menu (arg) +(defun buffer-menu (&optional arg) "Make a menu of buffers so you can save, delete or select them. With argument, show only buffers that are visiting files. Type ? after invocation to get help on commands available. diff -r e43123226372 -r 0276f8eb306f lisp/frame.el --- a/lisp/frame.el Fri Jul 10 01:16:40 1992 +0000 +++ b/lisp/frame.el Fri Jul 10 02:33:41 1992 +0000 @@ -201,7 +201,39 @@ (let ((screen (selected-screen))) (if (eq (screen-visible-p screen) t) (iconify-screen screen) - (deiconify-screen screen)))) + (make-screen-visible screen)))) + + +;;;; Screen configurations + +(defun current-screen-configuration () + "Return a list describing the positions and states of all screens. +Each element is a list of the form (SCREEN ALIST WINDOW-CONFIG), where +SCREEN is a screen object, ALIST is an association list specifying +some of SCREEN's parameters, and WINDOW-CONFIG is a window +configuration object for SCREEN." + (mapcar (function + (lambda (screen) + (list screen + (screen-parameters screen) + (current-window-configuration screen)))) + (screen-list))) + +(defun set-screen-configuration (configuration) + "Restore the screens to the state described by CONFIGURATION. +Each screen listed in CONFIGURATION has its position, size, window +configuration, and other parameters set as specified in CONFIGURATION." + (let (screens-to-delete) + (mapcar (function + (lambda (screen) + (let ((parameters (assq screen configuration))) + (if parameters + (progn + (modify-screen-parameters screen (nth 1 parameters)) + (set-window-configuration (nth 2 parameters))) + (setq screens-to-delete (cons screen screens-to-delete)))))) + (screen-list)) + (mapcar 'delete-screen screens-to-delete))) ;;;; Convenience functions for dynamically changing screen parameters diff -r e43123226372 -r 0276f8eb306f src/frame.c --- a/src/frame.c Fri Jul 10 01:16:40 1992 +0000 +++ b/src/frame.c Fri Jul 10 02:33:41 1992 +0000 @@ -641,7 +641,9 @@ #if 0 /* ??? Can this be replaced with a Lisp function? - It is used in minibuf.c. Can we get rid of that? */ + It is used in minibuf.c. Can we get rid of that? + Yes. All uses in minibuf.c are gone, and parallels to these + functions have been defined in screen.el. */ DEFUN ("screen-configuration", Fscreen_configuration, Sscreen_configuration, 0, 0, 0, @@ -872,7 +874,7 @@ error ("Surrogate minibuffer windows must be minibuffer windows."); if (SCREEN_HAS_MINIBUF (s) || SCREEN_MINIBUF_ONLY_P (s)) - error ("Can't change surrogate minibuffer on screens with their own minibuffers."); + error ("Can't change the surrogate minibuffer of a screen with its own minibuffer."); /* Install the chosen minibuffer window, with proper buffer. */ s->minibuffer_window = val; diff -r e43123226372 -r 0276f8eb306f src/xterm.c --- a/src/xterm.c Fri Jul 10 01:16:40 1992 +0000 +++ b/src/xterm.c Fri Jul 10 02:33:41 1992 +0000 @@ -3374,10 +3374,8 @@ if (! SCREEN_VISIBLE_P (s)) { #ifdef HAVE_X11 -#if 0 if (! EQ (Vx_no_window_manager, Qt)) x_wm_set_window_state (s, NormalState); -#endif XMapWindow (XDISPLAY s->display.x->window_desc); if (s->display.x->v_scrollbar != 0 || s->display.x->h_scrollbar != 0)