Subject: bug#54905: Allow in tabulated lists to resize columns with the mouse

From: Robert Pluim <[email-masked]>
Date: Fri, 15 Apr 2022 12:42:57 +0200

>>>>> On Fri, 15 Apr 2022 12:06:38 +0200, Lars Ingebrigtsen <[email-masked]> said:

    Lars> Lars Ingebrigtsen <[email-masked]> writes:
    >> And the divider could definitely be
    >> draggable (and I'll do that now), but in most setups the divider will
    >> only be a couple of pixels wide, making dragging it very difficult.

    Lars> Here's the test vtable I'm twiddling now (you need an up-to-date trunk
    Lars> to make it work).  You can drag the divider, but it's so narrow that
    Lars> it's very annoying to attempt to do so...

Debugger entered--Lisp error: (wrong-type-argument stringp (:background "#303030" :foreground "#ffffff"))
  xw-color-values((:background "#303030" :foreground "#ffffff") nil)
  color-values((:background "#303030" :foreground "#ffffff") nil)
  color-name-to-rgb((:background "#303030" :foreground "#ffffff"))
  vtable--color-blend((:background "#303030" :foreground "#ffffff") (:background "#202020" :foreground "#00ffff"))
  vtable--compute-colors(((:background "#303030" :foreground "#ffffff") (:background "#505050" :foreground "#808080")) ((:background "#202020" :foreground "#00ffff") (:background "#808080" :foreground "#008080")))
  make-vtable(:columns ((:name "Name" :width 20) "Size" "File") :objects (#<buffer *vtable*> #<buffer *scratch*> #<buffer  *Minibuf-1*> #<buffer 1> #<buffer *info*> #<buffer *Help*> #<buffer  *Minibuf-0*> #<buffer *Messages*> #<buffer  *Echo Area 0*> #<buffer  *Echo Area 1*> #<buffer  *eldoc for test-vtable*> #<buffer  *string-pixel-width*>) :row-colors ((:background "#303030" :foreground "#ffffff") (:background "#505050" :foreground "#808080")) :column-colors ((:background "#202020" :foreground "#00ffff") (:background "#808080" :foreground "#008080")) :divider-width 0.1 :getter (closure (t) (object column vtable) (let* ((val (vtable-column vtable column))) (cond ((equal val '"Name") (let nil (buffer-name object))) ((equal val '"Size") (let nil (buffer-size object))) ((equal val '"File") (let nil (or (buffer-file-name object) "")))))))
  (let ((inhibit-read-only t)) (make-vtable :columns '((:name "Name" :width 20) "Size" "File") :objects (buffer-list) :row-colors '((:background "#303030" :foreground "#ffffff") (:background "#505050" :foreground "#808080")) :column-colors '((:background "#202020" :foreground "#00ffff") (:background "#808080" :foreground "#008080")) :divider-width 0.1 :getter #'(lambda (object column vtable) (let* ((val (vtable-column vtable column))) (cond ((equal val ...) (let nil ...)) ((equal val ...) (let nil ...)) ((equal val ...) (let nil ...)))))) nil)
  test-vtable()
  eval((test-vtable) t)

If I just ignrore the colours:

- I donʼt see a divider at all (this is a GTK build under
  X). Increasing divider-width had no effect. Actually, thatʼs not
  true: the divider is just the same colour as the header-line
- I can drag to resize the column, but I need to start the drag on the
  name of the column, not the space next to it
- The little triangle indicating the sort order is right next to the
  name of the column, Iʼd expect it be nearer the divider to the right
  of the name

Robert
--