From 03c2c4c62b8e4524d80b9d78acb91236cbe8730c Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Fri, 20 Nov 1992 19:10:11 +0000 Subject: [PATCH] Don't update window and icon names unless they have changed. --- v7/src/edwin/edwin.pkg | 6 ++++-- v7/src/edwin/xcom.scm | 44 +++++++++++++++++++++++++++++++++++++++- v7/src/edwin/xterm.scm | 46 ++---------------------------------------- 3 files changed, 49 insertions(+), 47 deletions(-) diff --git a/v7/src/edwin/edwin.pkg b/v7/src/edwin/edwin.pkg index 3053de72b..067f0a21c 100644 --- a/v7/src/edwin/edwin.pkg +++ b/v7/src/edwin/edwin.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: edwin.pkg,v 1.104 1992/11/20 18:24:38 cph Exp $ +$Id: edwin.pkg,v 1.105 1992/11/20 19:09:51 cph Exp $ Copyright (c) 1989-1992 Massachusetts Institute of Technology @@ -954,7 +954,9 @@ MIT in each case. |# x-button4-down x-button4-up x-button5-down - x-button5-up)) + x-button5-up) + (export (edwin screen x-screen) + update-xterm-screen-names!)) (define-package (edwin keys) (files "key") diff --git a/v7/src/edwin/xcom.scm b/v7/src/edwin/xcom.scm index 3e2da22d8..3b5a226c4 100644 --- a/v7/src/edwin/xcom.scm +++ b/v7/src/edwin/xcom.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: xcom.scm,v 1.9 1992/11/20 18:24:46 cph Exp $ +;;; $Id: xcom.scm,v 1.10 1992/11/20 19:10:04 cph Exp $ ;;; ;;; Copyright (c) 1989-92 Massachusetts Institute of Technology ;;; @@ -148,6 +148,48 @@ Useful only if `x-screen-icon-name-format' is false." (lambda (name) (xterm-screen/set-icon-name (selected-screen) name))) +(define (update-xterm-screen-names! screen) + (let ((window + (if (and (selected-screen? screen) (within-typein-edit?)) + (typein-edit-other-window) + (screen-selected-window screen)))) + (let ((buffer (window-buffer window)) + (update-name + (lambda (set-name format length) + (if format + (set-name + screen + (string-trim-right + (format-modeline-string window format length))))))) + (update-name xterm-screen/set-name + (ref-variable x-screen-name-format buffer) + (ref-variable x-screen-name-length buffer)) + (update-name xterm-screen/set-icon-name + (ref-variable x-screen-icon-name-format buffer) + (ref-variable x-screen-icon-name-length buffer))))) + +(define-variable x-screen-name-format + "If not false, template for displaying X window name. +Has same format as `mode-line-format'." + 'mode-line-buffer-identification) + +(define-variable x-screen-name-length + "Maximum length of X window name. +Used only if `x-screen-name-format' is non-false." + 64 + exact-nonnegative-integer?) + +(define-variable x-screen-icon-name-format + "If not false, template for displaying X window icon name. +Has same format as `mode-line-format'." + "edwin") + +(define-variable x-screen-icon-name-length + "Maximum length of X window icon name. +Used only if `x-screen-icon-name-format' is non-false." + 32 + exact-nonnegative-integer?) + (define-command x-raise-screen "Raise the editor screen so that it is not obscured by other X windows." () diff --git a/v7/src/edwin/xterm.scm b/v7/src/edwin/xterm.scm index e044a1d32..e37860f88 100644 --- a/v7/src/edwin/xterm.scm +++ b/v7/src/edwin/xterm.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: xterm.scm,v 1.36 1992/11/20 18:24:55 cph Exp $ +;;; $Id: xterm.scm,v 1.37 1992/11/20 19:10:11 cph Exp $ ;;; ;;; Copyright (c) 1989-92 Massachusetts Institute of Technology ;;; @@ -205,7 +205,7 @@ (begin (set-screen-icon-name! screen name) (x-window-set-icon-name (screen-xterm screen) name))))) - + (define (xterm-screen/wrap-update! screen thunk) (let ((finished? false)) (dynamic-wind @@ -225,48 +225,6 @@ (update-xterm-screen-names! screen) (set-screen-redisplay-flag! screen false))) (xterm-screen/flush! screen))))) - -(define (update-xterm-screen-names! screen) - (let ((window - (if (and (selected-screen? screen) (within-typein-edit?)) - (typein-edit-other-window) - (screen-selected-window screen)))) - (let ((buffer (window-buffer window)) - (update-name - (lambda (set-name format length) - (if format - (set-name - screen - (string-trim-right - (format-modeline-string window format length))))))) - (update-name xterm-screen/set-name - (ref-variable x-screen-name-format buffer) - (ref-variable x-screen-name-length buffer)) - (update-name xterm-screen/set-icon-name - (ref-variable x-screen-icon-name-format buffer) - (ref-variable x-screen-icon-name-length buffer))))) - -(define-variable x-screen-name-format - "If not false, template for displaying X window name. -Has same format as `mode-line-format'." - 'mode-line-buffer-identification) - -(define-variable x-screen-name-length - "Maximum length of X window name. -Used only if `x-screen-name-format' is non-false." - 64 - exact-nonnegative-integer?) - -(define-variable x-screen-icon-name-format - "If not false, template for displaying X window icon name. -Has same format as `mode-line-format'." - "edwin") - -(define-variable x-screen-icon-name-length - "Maximum length of X window icon name. -Used only if `x-screen-icon-name-format' is non-false." - 32 - exact-nonnegative-integer?) (define (xterm-screen/discard! screen) (set! screen-list (delq! screen screen-list)) -- 2.25.1