From e35a24356e04cdf1a5401b2f22f384272e162628 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Mon, 16 Aug 1993 08:09:30 +0000 Subject: [PATCH] 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. --- v7/src/edwin/xterm.scm | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) 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) -- 2.25.1