Index: lisp/buffer.el =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/buffer.el,v retrieving revision 1.3.2.2 diff -u -r1.3.2.2 buffer.el --- lisp/buffer.el 1999/07/19 11:04:07 1.3.2.2 +++ lisp/buffer.el 1999/08/05 10:15:49 @@ -32,9 +32,6 @@ ;;; Code: -(defvar switch-to-buffer-hooks nil - "Hooks to run after a recorded buffer switch.") - (defun switch-to-buffer (bufname &optional norecord) "Select buffer BUFNAME in the current window. BUFNAME may be a buffer or a buffer name and is created if it did not exist. @@ -68,8 +65,6 @@ (next-window (minibuffer-window)) (selected-window)) buf) - ;; XEmacs change - (or norecord (run-hook-with-args 'switch-to-buffer-hooks buf)) buf)) (defun pop-to-buffer (bufname &optional not-this-window-p on-frame) Index: lisp/gutter-items.el =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/Attic/gutter-items.el,v retrieving revision 1.1.2.6 diff -u -r1.1.2.6 gutter-items.el --- lisp/gutter-items.el 1999/08/04 15:16:12 1.1.2.6 +++ lisp/gutter-items.el 1999/08/05 10:15:49 @@ -114,14 +114,14 @@ (buffer-name buffer)))) buffers))) -(defun buffers-tab-items () +(defun buffers-tab-items (&optional frame) "This is the tab filter for the top-level buffers \"Buffers\" tab. It dynamically creates a list of buffers to use as the contents of the tab. Only the most-recently-used few buffers will be listed on the tab, for efficiency reasons. You can control how many buffers will be shown by setting `buffers-tab-max-size'. You can control the text of the tab items by redefining the function `format-buffers-menu-line'." - (let ((buffers (delete-if buffers-tab-omit-function (buffer-list)))) + (let ((buffers (delete-if buffers-tab-omit-function (buffer-list frame)))) (and (integerp buffers-tab-max-size) (> buffers-tab-max-size 1) (> (length buffers) buffers-tab-max-size) @@ -153,7 +153,9 @@ gutter-buffers-tab (when (framep frame-or-buffer) (frame-selected-window frame-or-buffer))))) - (set-image-instance-property inst :items (buffers-tab-items)) + (set-image-instance-property inst :items + (buffers-tab-items + (and (framep frame-or-buffer) frame-or-buffer))) (resize-subwindow inst (gutter-pixel-width) nil)) )) @@ -174,9 +176,9 @@ ))) (add-tab-to-gutter) -(add-hook 'switch-to-buffer-hooks 'update-tab-in-gutter) (add-hook 'kill-buffer-hook 'remove-buffer-from-gutter-tab) (add-hook 'create-frame-hook 'update-tab-in-gutter) +(add-hook 'record-buffer-hook 'update-tab-in-gutter) (provide 'gutter-items) ;;; gutter-items.el ends here. Index: src/buffer.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/buffer.c,v retrieving revision 1.36.2.8 diff -u -r1.36.2.8 buffer.c --- src/buffer.c 1999/06/22 18:02:49 1.36.2.8 +++ src/buffer.c 1999/08/05 10:16:47 @@ -189,6 +189,7 @@ Lisp_Object Qdefault_directory; Lisp_Object Qkill_buffer_hook; +Lisp_Object Qrecord_buffer_hook; Lisp_Object Qbuffer_file_name, Qbuffer_undo_list; Lisp_Object Qrename_auto_save_file; @@ -1406,6 +1407,9 @@ XCDR (prev) = XCDR (XCDR (prev)); XCDR (lynk) = f->buffer_alist; f->buffer_alist = lynk; + + va_run_hook_with_args (Qrecord_buffer_hook, 1, buffer); + return Qnil; } @@ -1806,6 +1810,7 @@ defsymbol (&Qmode_class, "mode-class"); defsymbol (&Qrename_auto_save_file, "rename-auto-save-file"); defsymbol (&Qkill_buffer_hook, "kill-buffer-hook"); + defsymbol (&Qrecord_buffer_hook, "record-buffer-hook"); defsymbol (&Qpermanent_local, "permanent-local"); defsymbol (&Qfirst_change_hook, "first-change-hook"); Index: src/glyphs.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/glyphs.c,v retrieving revision 1.23.2.17 diff -u -r1.23.2.17 glyphs.c --- src/glyphs.c 1999/07/30 14:34:46 1.23.2.17 +++ src/glyphs.c 1999/08/05 10:16:56 @@ -3746,8 +3746,14 @@ the first element in the list */ for (ei = f->subwindow_exposures, prev = 0; ei; ei = ei->next) { - if (ei->x == x && ei->y == y && ei->width == width - && ei->height == height) + /* Checking for exact matches just isn't good enough as we + mighte get exposures for partially obscure subwindows, thus + we have to check for overlaps. Being conservative we will + check for exposures wholly contained by the subwindow, this + might give us what we want.*/ + if (ei->x <= x && ei->y <= y + && ei->x + ei->width >= x + width + && ei->y + ei->height >= y + height) { if (!prev) f->subwindow_exposures = ei->next; Index: src/gui.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/gui.c,v retrieving revision 1.10.2.10 diff -u -r1.10.2.10 gui.c --- src/gui.c 1999/07/30 09:14:05 1.10.2.10 +++ src/gui.c 1999/08/05 10:16:59 @@ -34,6 +34,8 @@ Lisp_Object Q_accelerator, Q_label, Q_callback; Lisp_Object Qtoggle, Qradio; +static Lisp_Object parse_gui_item_tree_list (Lisp_Object list); + #ifdef HAVE_POPUPS /* count of menus/dboxes currently up */ @@ -604,7 +606,7 @@ return Fnreverse (ret); } -Lisp_Object parse_gui_item_tree_list (Lisp_Object list) +static Lisp_Object parse_gui_item_tree_list (Lisp_Object list) { Lisp_Object ret; CHECK_CONS (list); Index: src/gui.h =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/gui.h,v retrieving revision 1.6.2.6 diff -u -r1.6.2.6 gui.h --- src/gui.h 1999/07/30 09:14:05 1.6.2.6 +++ src/gui.h 1999/08/05 10:16:59 @@ -85,7 +85,6 @@ Lisp_Object allocate_gui_item (); void gui_item_init (Lisp_Object gui_item); -Lisp_Object parse_gui_item_tree_list (Lisp_Object list); Lisp_Object parse_gui_item_tree_children (Lisp_Object list); /* this is mswindows biased but reasonably safe I think */ Index: src/s/mingw32.h =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/s/Attic/mingw32.h,v retrieving revision 1.1.2.1 diff -u -r1.1.2.1 mingw32.h --- src/s/mingw32.h 1999/05/01 05:13:30 1.1.2.1 +++ src/s/mingw32.h 1999/08/05 10:17:00 @@ -54,6 +54,19 @@ #define SHGFI_EXETYPE 0x2000 #define NSIG 23 +#ifndef SPI_GETWHEELSCROLLLINES +#define SPI_GETWHEELSCROLLLINES 104 +#endif +#ifndef WHEEL_PAGESCROLL +#define WHEEL_PAGESCROLL (UINT_MAX) +#endif +#ifndef WHEEL_DELTA +#define WHEEL_DELTA 120 +#endif +#ifndef WM_MOUSEWHEEL +#define WM_MOUSEWHEEL 0x20A +#endif + /* translate NT world unexec stuff to our a.out definitions */ #define strnicmp strncasecmp