From: Chris Hanson Date: Mon, 16 Aug 1993 08:09:30 +0000 (+0000) Subject: Change handling of "configure" events so that the microcode and Edwin X-Git-Tag: 20090517-FFI~8061 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=e35a24356e04cdf1a5401b2f22f384272e162628;p=mit-scheme.git Change handling of "configure" events so that the microcode and Edwin update their notions of the window's size at the same time. Previously, the microcode was updated first, then Edwin was updated later. It was possible for Edwin to write to the screen in the interval, with arguments based on its (obsolete) notion of the window's size. --- diff --git a/v7/src/edwin/xterm.scm b/v7/src/edwin/xterm.scm index bc7505f3d..9df8a46d7 100644 --- a/v7/src/edwin/xterm.scm +++ b/v7/src/edwin/xterm.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: xterm.scm,v 1.41 1993/08/02 03:06:38 cph Exp $ +;;; $Id: xterm.scm,v 1.42 1993/08/16 08:09:30 cph Exp $ ;;; ;;; Copyright (c) 1989-93 Massachusetts Institute of Technology ;;; @@ -535,19 +535,20 @@ (define-event-handler event-type:configure (lambda (screen event) - (let ((xterm (screen-xterm screen)) - (x-size (vector-ref event 2)) - (y-size (vector-ref event 3))) - (xterm-reconfigure xterm x-size y-size) - (let ((x-size (xterm-map-x-size xterm x-size)) - (y-size (xterm-map-y-size xterm y-size))) - (and (not (and (= x-size (screen-x-size screen)) - (= y-size (screen-y-size screen)))) - (make-input-event 'SET-SCREEN-SIZE - (lambda (screen x-size y-size) - (set-screen-size! screen x-size y-size) - (update-screen! screen #t)) - screen x-size y-size)))))) + (make-input-event 'SET-SCREEN-SIZE + (lambda (screen event) + (let ((xterm (screen-xterm screen)) + (x-size (vector-ref event 2)) + (y-size (vector-ref event 3))) + (xterm-reconfigure xterm x-size y-size) + (let ((x-size (xterm-map-x-size xterm x-size)) + (y-size (xterm-map-y-size xterm y-size))) + (if (not (and (= x-size (screen-x-size screen)) + (= y-size (screen-y-size screen)))) + (begin + (set-screen-size! screen x-size y-size) + (update-screen! screen #t)))))) + screen event))) (define-event-handler event-type:focus-in (lambda (screen event)