Don't update window and icon names unless they have changed.
authorChris Hanson <org/chris-hanson/cph>
Fri, 20 Nov 1992 19:10:11 +0000 (19:10 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 20 Nov 1992 19:10:11 +0000 (19:10 +0000)
v7/src/edwin/edwin.pkg
v7/src/edwin/xcom.scm
v7/src/edwin/xterm.scm

index 3053de72b744f7d52c85313c5b115fe96fd63296..067f0a21ccf8725b6f32978fbfb5bc86d29930f2 100644 (file)
@@ -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")
index 3e2da22d818fa2a333515050f5362fe5cbcd12d4..3b5a226c47d6430aca9e5ac3bc7090bafa6cca65 100644 (file)
@@ -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."
   ()
index e044a1d32640bddf0d3422e776f3cf4b9a6f5c29..e37860f88b0d61e79ad303bbfbe419b34df849ae 100644 (file)
@@ -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
 ;;;
        (begin
          (set-screen-icon-name! screen name)
          (x-window-set-icon-name (screen-xterm screen) name)))))
-\f
+
 (define (xterm-screen/wrap-update! screen thunk)
   (let ((finished? false))
     (dynamic-wind
             (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?)
 \f
 (define (xterm-screen/discard! screen)
   (set! screen-list (delq! screen screen-list))