- (let ((gutter-string ""))
- (unless gutter-buffers-tab-extent
- (setq gutter-buffers-tab-extent (make-extent 0 0 gutter-string)))
- (set-extent-begin-glyph
- gutter-buffers-tab-extent
- (setq gutter-buffers-tab
- (make-glyph
- (vector 'tab-control :descriptor "Buffers" :face buffers-tab-face
- :orientation gutter-buffers-tab-orientation
- :properties (list :items (buffers-tab-items))))))
- ;; This looks better than a 3d border
- (mapcar '(lambda (x)
- (when (valid-image-instantiator-format-p 'tab-control x)
- (set-specifier default-gutter-border-width 0 'global x)
- (set-specifier top-gutter nil 'global x)
- (set-specifier bottom-gutter nil 'global x)
- (set-specifier left-gutter nil 'global x)
- (set-specifier right-gutter nil 'global x)
- (set-specifier left-gutter-width 0 'global x)
- (set-specifier right-gutter-width 0 'global x)
- (cond ((eq gutter-buffers-tab-orientation 'top)
- (set-specifier top-gutter gutter-string 'global x))
- ((eq gutter-buffers-tab-orientation 'bottom)
- (set-specifier bottom-gutter gutter-string 'global x))
- ((eq gutter-buffers-tab-orientation 'left)
- (set-specifier left-gutter gutter-string 'global x)
- (set-specifier left-gutter-width
- (glyph-width gutter-buffers-tab)
- 'global x))
- ((eq gutter-buffers-tab-orientation 'right)
- (set-specifier right-gutter gutter-string 'global x)
- (set-specifier right-gutter-width
- (glyph-width gutter-buffers-tab)
- 'global x))
- )))
- (console-type-list))))
-
-(defun update-tab-in-gutter (&optional frame-or-buffer)
+ (let* ((gutter-string (copy-sequence "\n"))
+ (gutter-buffers-tab-extent (make-extent 0 1 gutter-string)))
+ (set-extent-begin-glyph gutter-buffers-tab-extent
+ (setq gutter-buffers-tab
+ (make-glyph)))
+ ;; Nuke all existing tabs
+ (remove-gutter-element top-gutter 'buffers-tab)
+ (remove-gutter-element bottom-gutter 'buffers-tab)
+ (remove-gutter-element left-gutter 'buffers-tab)
+ (remove-gutter-element right-gutter 'buffers-tab)
+ ;; Put tabs into all devices that will be able to display them
+ (mapcar
+ #'(lambda (x)
+ (when (valid-image-instantiator-format-p 'tab-control x)
+ (cond ((eq gutter-buffers-tab-orientation 'top)
+ ;; This looks better than a 3d border
+ (set-specifier top-gutter-border-width 0 'global x)
+ (set-gutter-element top-gutter 'buffers-tab
+ gutter-string 'global x))
+ ((eq gutter-buffers-tab-orientation 'bottom)
+ (set-specifier bottom-gutter-border-width 0 'global x)
+ (set-gutter-element bottom-gutter 'buffers-tab
+ gutter-string 'global x))
+ ((eq gutter-buffers-tab-orientation 'left)
+ (set-specifier left-gutter-border-width 0 'global x)
+ (set-gutter-element left-gutter 'buffers-tab
+ gutter-string 'global x))
+ ((eq gutter-buffers-tab-orientation 'right)
+ (set-specifier right-gutter-border-width 0 'global x)
+ (set-gutter-element right-gutter 'buffers-tab
+ gutter-string 'global x))
+ )))
+ (console-type-list))))
+
+(defun update-tab-in-gutter (frame &optional force-selection)