unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#53662: 29.0.50; Cannot use tab-new from side window
@ 2022-01-31 15:25 Aaron Jensen
  2022-01-31 18:15 ` Juri Linkov
  0 siblings, 1 reply; 8+ messages in thread
From: Aaron Jensen @ 2022-01-31 15:25 UTC (permalink / raw)
  To: 53662


If you attempt to tab-bar-new-tab while in a side window you get:

split-window: Cannot split side window or parent of side window

It also deletes other windows and leaves you in a very awkward
side-window-only state.

To repro:

emacs -Q
M-x tab-bar-mode
M-: (display-buffer-in-side-window (get-buffer "*Messages*") '((side . bottom)))
C-x o
M-x tab-new




In GNU Emacs 29.0.50 (build 1, aarch64-apple-darwin21.2.0, NS appkit-2113.20 Version 12.1 (Build 21C52))
 of 2022-01-04 built on aaron-m1.local
Windowing system distributor 'Apple', version 10.3.2113
System Description:  macOS 12.1

Configured using:
 'configure --disable-dependency-tracking --disable-silent-rules
 --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp
 --infodir=/opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/info/emacs
 --prefix=/opt/homebrew/Cellar/emacs-plus@29/29.0.50 --with-xml2
 --with-gnutls --with-native-compilation --without-dbus
 --without-imagemagick --with-modules --with-rsvg --with-ns
 --disable-ns-self-contained 'CFLAGS=-I/opt/homebrew/opt/gcc/include
 -I/opt/homebrew/opt/libgccjit/include -I/opt/homebrew/opt/gmp/include
 -I/opt/homebrew/opt/jpeg/include' 'LDFLAGS=-L/opt/homebrew/lib/gcc/11
 -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include
 -I/opt/homebrew/opt/gmp/include -I/opt/homebrew/opt/jpeg/include''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS XIM ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  bug-reference-prog-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  pdf-occur-global-minor-mode: t
  global-git-commit-mode: t
  transient-posframe-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  global-auto-revert-mode: t
  projectile-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  which-key-posframe-mode: t
  which-key-mode: t
  winner-mode: t
  org-roam-db-autosync-mode: t
  form-feed-mode: t
  company-posframe-mode: t
  company-prescient-mode: t
  company-tng-mode: t
  company-mode: t
  eval-sexp-fu-flash-mode: t
  eros-mode: t
  lispyville-mode: t
  lispy-mode: t
  elisp-def-mode: t
  sotlisp-mode: t
  speed-of-thought-mode: t
  evil-vimish-fold-mode: t
  vimish-fold-mode: t
  dtrt-indent-mode: t
  electric-pair-mode: t
  recentf-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  repeat-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  global-evil-mc-mode: t
  evil-mc-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  evil-snipe-override-local-mode: t
  evil-snipe-local-mode: t
  global-evil-matchit-mode: t
  evil-matchit-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  windmove-mode: t
  gcmh-mode: t
  mini-frame-mode: t
  vertico-mouse-mode: t
  vertico-mode: t
  prescient-persist-mode: t
  +popup-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  save-place-mode: t
  ns-auto-titlebar-mode: t
  nano-modeline-mode: t
  envrc-global-mode: t
  envrc-mode: t
  leader-key-leader-override-mode: t
  global-leader-key-leader-override-mode: t
  delete-selection-mode: t
  savehist-mode: t
  pixel-scroll-precision-mode: t
  xterm-mouse-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  auto-fill-function: yas--auto-fill
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
/Users/aaronjensen/.emacs.d/straight/build/ivy/elpa hides /Users/aaronjensen/.emacs.d/straight/build/lispy/elpa
/Users/aaronjensen/.emacs.d/straight/build/transient/transient hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/transient
/Users/aaronjensen/.emacs.d/straight/build/org/ob-exp hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-exp
/Users/aaronjensen/.emacs.d/straight/build/org/ob-emacs-lisp hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-emacs-lisp
/Users/aaronjensen/.emacs.d/straight/build/org/oc hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/oc
/Users/aaronjensen/.emacs.d/straight/build/org/ob-css hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-css
/Users/aaronjensen/.emacs.d/straight/build/org/ob-lob hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-lob
/Users/aaronjensen/.emacs.d/straight/build/org/ol-irc hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-irc
/Users/aaronjensen/.emacs.d/straight/build/org/ob-forth hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-forth
/Users/aaronjensen/.emacs.d/straight/build/org/org-macs hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-macs
/Users/aaronjensen/.emacs.d/straight/build/org/ob hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob
/Users/aaronjensen/.emacs.d/straight/build/org/org-version hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-version
/Users/aaronjensen/.emacs.d/straight/build/org/ob-scheme hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-scheme
/Users/aaronjensen/.emacs.d/straight/build/org/ox hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox
/Users/aaronjensen/.emacs.d/straight/build/org/ob-C hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-C
/Users/aaronjensen/.emacs.d/straight/build/org/org-capture hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-capture
/Users/aaronjensen/.emacs.d/straight/build/org/ob-ref hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-ref
/Users/aaronjensen/.emacs.d/straight/build/org/ob-clojure hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-clojure
/Users/aaronjensen/.emacs.d/straight/build/org/org-mouse hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-mouse
/Users/aaronjensen/.emacs.d/straight/build/org/org-ctags hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-ctags
/Users/aaronjensen/.emacs.d/straight/build/org/org-entities hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-entities
/Users/aaronjensen/.emacs.d/straight/build/org/org-archive hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-archive
/Users/aaronjensen/.emacs.d/straight/build/org/ob-screen hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-screen
/Users/aaronjensen/.emacs.d/straight/build/org/ol-bibtex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-bibtex
/Users/aaronjensen/.emacs.d/straight/build/org/ob-haskell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-haskell
/Users/aaronjensen/.emacs.d/straight/build/org/org-table hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-table
/Users/aaronjensen/.emacs.d/straight/build/org/ol-eww hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-eww
/Users/aaronjensen/.emacs.d/straight/build/org/ol-man hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-man
/Users/aaronjensen/.emacs.d/straight/build/org/ox-org hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-org
/Users/aaronjensen/.emacs.d/straight/build/org/org-num hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-num
/Users/aaronjensen/.emacs.d/straight/build/org/org-plot hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-plot
/Users/aaronjensen/.emacs.d/straight/build/org/ol-rmail hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-rmail
/Users/aaronjensen/.emacs.d/straight/build/org/ob-awk hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-awk
/Users/aaronjensen/.emacs.d/straight/build/org/ob-groovy hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-groovy
/Users/aaronjensen/.emacs.d/straight/build/org/ob-octave hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-octave
/Users/aaronjensen/.emacs.d/straight/build/org/org-faces hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-faces
/Users/aaronjensen/.emacs.d/straight/build/org/oc-biblatex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/oc-biblatex
/Users/aaronjensen/.emacs.d/straight/build/org/org-colview hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-colview
/Users/aaronjensen/.emacs.d/straight/build/org/ob-R hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-R
/Users/aaronjensen/.emacs.d/straight/build/org/org-refile hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-refile
/Users/aaronjensen/.emacs.d/straight/build/org/org-timer hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-timer
/Users/aaronjensen/.emacs.d/straight/build/org/org-mobile hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-mobile
/Users/aaronjensen/.emacs.d/straight/build/org/ob-fortran hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-fortran
/Users/aaronjensen/.emacs.d/straight/build/org/ob-shell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-shell
/Users/aaronjensen/.emacs.d/straight/build/org/ob-perl hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-perl
/Users/aaronjensen/.emacs.d/straight/build/org/ob-sqlite hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-sqlite
/Users/aaronjensen/.emacs.d/straight/build/org/oc-basic hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/oc-basic
/Users/aaronjensen/.emacs.d/straight/build/org/ob-sed hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-sed
/Users/aaronjensen/.emacs.d/straight/build/org/org-list hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-list
/Users/aaronjensen/.emacs.d/straight/build/org/ob-ruby hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-ruby
/Users/aaronjensen/.emacs.d/straight/build/org/ob-eval hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-eval
/Users/aaronjensen/.emacs.d/straight/build/org/org-habit hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-habit
/Users/aaronjensen/.emacs.d/straight/build/org/org-clock hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-clock
/Users/aaronjensen/.emacs.d/straight/build/org/org-goto hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-goto
/Users/aaronjensen/.emacs.d/straight/build/org/ox-html hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-html
/Users/aaronjensen/.emacs.d/straight/build/org/org-src hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-src
/Users/aaronjensen/.emacs.d/straight/build/org/ob-lisp hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-lisp
/Users/aaronjensen/.emacs.d/straight/build/org/ol-eshell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-eshell
/Users/aaronjensen/.emacs.d/straight/build/org/ob-ditaa hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-ditaa
/Users/aaronjensen/.emacs.d/straight/build/org/org-pcomplete hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-pcomplete
/Users/aaronjensen/.emacs.d/straight/build/org/org-lint hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-lint
/Users/aaronjensen/.emacs.d/straight/build/org/ox-latex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-latex
/Users/aaronjensen/.emacs.d/straight/build/org/ob-sass hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-sass
/Users/aaronjensen/.emacs.d/straight/build/org/ob-tangle hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-tangle
/Users/aaronjensen/.emacs.d/straight/build/org/ob-calc hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-calc
/Users/aaronjensen/.emacs.d/straight/build/org/ob-java hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-java
/Users/aaronjensen/.emacs.d/straight/build/org/ox-icalendar hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-icalendar
/Users/aaronjensen/.emacs.d/straight/build/org/ol-mhe hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-mhe
/Users/aaronjensen/.emacs.d/straight/build/org/org-attach-git hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-attach-git
/Users/aaronjensen/.emacs.d/straight/build/org/ox-md hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-md
/Users/aaronjensen/.emacs.d/straight/build/org/ox-beamer hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-beamer
/Users/aaronjensen/.emacs.d/straight/build/org/org-element hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-element
/Users/aaronjensen/.emacs.d/straight/build/org/oc-natbib hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/oc-natbib
/Users/aaronjensen/.emacs.d/straight/build/org/org-protocol hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-protocol
/Users/aaronjensen/.emacs.d/straight/build/org/ob-gnuplot hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-gnuplot
/Users/aaronjensen/.emacs.d/straight/build/org/org-tempo hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-tempo
/Users/aaronjensen/.emacs.d/straight/build/org/ob-latex hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-latex
/Users/aaronjensen/.emacs.d/straight/build/org/ol-w3m hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-w3m
/Users/aaronjensen/.emacs.d/straight/build/org/org-id hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-id
/Users/aaronjensen/.emacs.d/straight/build/org/ox-man hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-man
/Users/aaronjensen/.emacs.d/straight/build/org/ol-doi hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-doi
/Users/aaronjensen/.emacs.d/straight/build/org/org-feed hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-feed
/Users/aaronjensen/.emacs.d/straight/build/org/ob-julia hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-julia
/Users/aaronjensen/.emacs.d/straight/build/org/ob-lua hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-lua
/Users/aaronjensen/.emacs.d/straight/build/org/ob-table hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-table
/Users/aaronjensen/.emacs.d/straight/build/org/ob-ocaml hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-ocaml
/Users/aaronjensen/.emacs.d/straight/build/org/oc-csl hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/oc-csl
/Users/aaronjensen/.emacs.d/straight/build/org/ol-gnus hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-gnus
/Users/aaronjensen/.emacs.d/straight/build/org/org-indent hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-indent
/Users/aaronjensen/.emacs.d/straight/build/org/ob-lilypond hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-lilypond
/Users/aaronjensen/.emacs.d/straight/build/org/ob-matlab hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-matlab
/Users/aaronjensen/.emacs.d/straight/build/org/org-datetree hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-datetree
/Users/aaronjensen/.emacs.d/straight/build/org/ol-docview hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-docview
/Users/aaronjensen/.emacs.d/straight/build/org/ob-python hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-python
/Users/aaronjensen/.emacs.d/straight/build/org/ob-makefile hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-makefile
/Users/aaronjensen/.emacs.d/straight/build/org/org-duration hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-duration
/Users/aaronjensen/.emacs.d/straight/build/org/org-agenda hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-agenda
/Users/aaronjensen/.emacs.d/straight/build/org/ob-dot hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-dot
/Users/aaronjensen/.emacs.d/straight/build/org/ob-js hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-js
/Users/aaronjensen/.emacs.d/straight/build/org/ox-publish hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-publish
/Users/aaronjensen/.emacs.d/straight/build/org/org-inlinetask hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-inlinetask
/Users/aaronjensen/.emacs.d/straight/build/org/ob-org hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-org
/Users/aaronjensen/.emacs.d/straight/build/org/org-keys hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-keys
/Users/aaronjensen/.emacs.d/straight/build/org/ob-core hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-core
/Users/aaronjensen/.emacs.d/straight/build/org/org-compat hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-compat
/Users/aaronjensen/.emacs.d/straight/build/org/ol hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol
/Users/aaronjensen/.emacs.d/straight/build/org/ox-odt hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-odt
/Users/aaronjensen/.emacs.d/straight/build/org/ol-info hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-info
/Users/aaronjensen/.emacs.d/straight/build/org/ob-plantuml hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-plantuml
/Users/aaronjensen/.emacs.d/straight/build/org/ob-eshell hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-eshell
/Users/aaronjensen/.emacs.d/straight/build/org/ox-ascii hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-ascii
/Users/aaronjensen/.emacs.d/straight/build/org/org-loaddefs hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-loaddefs
/Users/aaronjensen/.emacs.d/straight/build/org/ox-koma-letter hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-koma-letter
/Users/aaronjensen/.emacs.d/straight/build/org/ob-maxima hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-maxima
/Users/aaronjensen/.emacs.d/straight/build/org/org hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org
/Users/aaronjensen/.emacs.d/straight/build/org/ol-bbdb hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ol-bbdb
/Users/aaronjensen/.emacs.d/straight/build/org/org-macro hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-macro
/Users/aaronjensen/.emacs.d/straight/build/org/ob-sql hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-sql
/Users/aaronjensen/.emacs.d/straight/build/org/org-attach hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-attach
/Users/aaronjensen/.emacs.d/straight/build/org/ob-processing hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-processing
/Users/aaronjensen/.emacs.d/straight/build/org/ox-texinfo hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ox-texinfo
/Users/aaronjensen/.emacs.d/straight/build/org/org-crypt hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-crypt
/Users/aaronjensen/.emacs.d/straight/build/org/org-footnote hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-footnote
/Users/aaronjensen/.emacs.d/straight/build/org/org-install hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/org-install
/Users/aaronjensen/.emacs.d/straight/build/org/ob-comint hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/org/ob-comint
/Users/aaronjensen/.emacs.d/straight/build/let-alist/let-alist hides /opt/homebrew/Cellar/emacs-plus@29/29.0.50/share/emacs/29.0.50/lisp/emacs-lisp/let-alist

Features:
(shadow mail-extr emacsbug sendmail treemacs-tab-bar treemacs-hydras
hippie-exp view org-journal org-crypt cal-iso cl-print whitespace
shortdoc tramp-cmds tramp-cache prettier tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat ls-lisp nvm iter2 markdown-mode
goto-addr dumb-jump popup semantic/ia semantic/analyze/refs
semantic/db-find semantic/db-ref semantic/senator semantic/decorate
semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn
semantic/db eieio-base semantic/ctxt semantic/format semantic/tag-ls
semantic/find vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc
bug-reference restart-emacs desktop frameset magit-delta deft executable
evil-terminal-cursor-changer flycheck ace-window buffer-move rotate
embark-consult embark ffap consult-xref consult-vertico consult
vertico-repeat evil-collection-pdf pdf-occur tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag cedet
pdf-isearch let-alist pdf-misc pdf-loader pdf-tools pdf-view
magit-bookmark treemacs-bookmarks bookmark pdf-cache pdf-info tq
pdf-util pdf-macs titlecase titlecase-data wgrep sort drag-stuff
speeddating evil-nerd-commenter evil-nerd-commenter-operator
evil-nerd-commenter-sdk sgml-mode facemenu evil-visualstar
evil-collection-magit treemacs-magit magit-submodule magit-obsolete
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit package
url-handlers magit-repos magit-apply magit-wip magit-log which-func
magit-diff smerge-mode git-commit log-edit pcvs-util add-log magit-core
magit-autorevert magit-margin magit-transient magit-process with-editor
magit-mode transient-posframe transient magit-git magit-utils crm
org-eldoc org-appear orgonomic org-indent org-superstar oc-basic ol-eww
eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu mml2015
mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku svg dom
browse-url gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud
nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int
gnus-range message yank-media rfc822 mml mml-sec epa epg rfc6068
epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader
gnus-win gnus nnheader gnus-util mail-utils ol-docview doc-view
jka-compr image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi
org-link-doi treemacs-projectile treemacs-evil treemacs-all-the-icons
all-the-icons all-the-icons-faces data-material data-weathericons
data-octicons data-fileicons data-faicons data-alltheicons treemacs
treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-interface treemacs-extensions treemacs-mouse-interface
treemacs-tags treemacs-persistence treemacs-filewatch-mode
treemacs-follow-mode treemacs-rendering treemacs-async
treemacs-workspaces treemacs-dom treemacs-visuals hide-mode-line
popup-mode-core treemacs-fringe-indicator treemacs-scope pulse
treemacs-faces treemacs-icons treemacs-themes treemacs-core-utils
pfuture inline hl-line ht treemacs-logging treemacs-customization
treemacs-macros autorevert filenotify projectile grep compile
text-property-search ibuf-ext evil-collection-ibuffer ibuffer
ibuffer-loaddefs dired-aux rainbow-mode color xterm-color vc-git
diff-mode vc-dispatcher ox-odt rng-loc rng-uri rng-parse rng-match
rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util
ox-latex ox-icalendar org-agenda ox-ascii ox-gfm ox-md ox-html table
ox-publish ox org-download org-attach async vulpea vulpea-meta
vulpea-select vulpea-buffer vulpea-db vulpea-utils vulpea-note yasnippet
popup-mode-hacks evil-collection-which-key which-key-posframe which-key
winner org-roam-migrate org-roam-mode org-roam-capture org-roam-node
org-roam-db org-roam-utils org-roam-compat org-roam org-mac-link
org-capture org-tempo tempo evil-org-agenda evil-org org-element
org-persist xdg org-id org-refile avl-tree ob-shell org ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint
org-pcomplete org-list org-faces org-entities time-date org-version
ob-emacs-lisp ob-core ob-eval org-table ol org-keys oc org-compat
org-macs org-loaddefs format-spec cal-menu calendar cal-loaddefs
emacsql-sqlite emacsql emacsql-compiler magit-section form-feed
company-files company-capf company-posframe posframe company-prescient
company-tng company eval-sexp-fu eros lispyville lispy hydra lv pcase
lispy-inline avy noutline outline etags fileloop generator lispy-tags
elisp-def ert ewoc evil-collection-debug debug evil-collection-xref xref
project sotlisp skeleton evil-vimish-fold vimish-fold dtrt-indent
elec-pair vertico-directory evil-collection-helpful helpful imenu trace
evil-collection-edebug edebug backtrace info-look f help-fns elisp-refs
s dired-subtree dired-hacks-utils evil-collection-dired dired
dired-loaddefs dash evil-collection-profiler profiler url-http url
url-proxy url-privacy url-expand url-methods url-history mailcap
url-auth url-cookie url-domsuf url-util cursor-sensor url-gw url-parse
auth-source password-cache url-vars nsm rmc puny recentf tree-widget
better-jumper repeat undo-tree diff queue evil-collection-unimpaired
evil-collection-help evil-collection-custom evil-collection-process-menu
evil-collection annalist evil-mc evil-mc-command-execute
evil-mc-command-record evil-mc-cursor-make evil-mc-region
evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands
evil-mc-common evil-numbers evil-snipe evil-matchit evil-matchit-sdk
semantic/lex semantic/fw eieio eieio-core eieio-loaddefs mode-local
find-func evil-surround cus-edit pp cus-start cus-load wid-edit evil
evil-integration evil-maps evil-commands reveal flyspell ispell
evil-jumps evil-command-window evil-search evil-ex shell pcomplete
comint evil-types evil-macros evil-repeat evil-states evil-core advice
evil-common windmove calc calc-loaddefs calc-macs thingatpt rect
evil-digraphs evil-vars gcmh server gcmh-autoloads
explain-pause-mode-autoloads pdf-tools-autoloads tablist-autoloads
restclient-autoloads vterm-toggle-autoloads vterm-autoloads
dumb-jump-autoloads popup-autoloads emmet-mode-autoloads
terraform-mode-autoloads hcl-mode-autoloads dockerfile-mode-autoloads
yaml-mode-autoloads json-snatcher-autoloads lua-mode-autoloads
ruby-electric-autoloads bundler-autoloads inf-ruby-autoloads
ruby-refactor-autoloads rspec-mode-autoloads
evil-ruby-text-objects-autoloads enh-ruby-mode-autoloads
sotlisp-autoloads elisp-def-autoloads lispyville-autoloads
lispy-autoloads zoutline-autoloads swiper-autoloads ivy-autoloads
iedit-autoloads eros-autoloads eval-sexp-fu-autoloads
eslintd-fix-autoloads web-mode-autoloads typescript-mode-autoloads
company-rg-autoloads company-posframe-autoloads
company-prescient-autoloads company-autoloads git-link-autoloads
git-timemachine-autoloads magit-delta-autoloads xterm-color-autoloads
prettier-autoloads nvm-autoloads iter2-autoloads flycheck-autoloads
let-alist-autoloads pkg-info-autoloads epl-autoloads
tree-sitter-langs-autoloads tree-sitter-autoloads tsc-autoloads
lsp-ui-autoloads lsp-mode-autoloads markdown-mode-autoloads
spinner-autoloads org-superstar-autoloads ox-gfm-autoloads
org-pandoc-import-autoloads gnuplot-autoloads org-download-autoloads
async-autoloads org-journal-autoloads deft-autoloads vulpea-autoloads
org-roam-autoloads emacsql-sqlite-autoloads emacsql-autoloads
orgonomic-autoloads org-drill-autoloads persist-autoloads
org-appear-autoloads org-contrib-autoloads evil-org-autoloads
evil-terminal-cursor-changer-autoloads transient-posframe-autoloads
restart-emacs-autoloads better-jumper-autoloads buffer-move-autoloads
rotate-autoloads mini-frame mini-frame-autoloads
embark-consult-autoloads embark-autoloads consult-autoloads orderless
orderless-autoloads vertico-mouse vertico vertico-autoloads prescient
prescient-autoloads which-key-posframe-autoloads which-key-autoloads
popup-mode popup-mode-settings popup-mode-autoloads
hide-mode-line-autoloads titlecase-autoloads wgrep-autoloads
yasnippet-autoloads form-feed-autoloads drag-stuff-autoloads
dtrt-indent-autoloads ws-butler ws-butler-autoloads
evil-vimish-fold-autoloads vimish-fold-autoloads
evil-collection-autoloads annalist-autoloads evil-mc-autoloads
evil-numbers-autoloads speeddating-autoloads evil-snipe-autoloads
evil-matchit-autoloads evil-nerd-commenter-autoloads
evil-visualstar-autoloads evil-surround-autoloads undo-tree-autoloads
queue-autoloads treemacs-magit-autoloads magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
transient-autoloads treemacs-all-the-icons-autoloads
all-the-icons-autoloads treemacs-projectile-autoloads
treemacs-evil-autoloads evil-autoloads goto-chg-autoloads
treemacs-autoloads comp comp-cstr warnings rx autoload radix-tree
lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr cfrs-autoloads ht-autoloads pfuture-autoloads
ace-window-autoloads avy-autoloads projectile-autoloads saveplace
rainbow-mode-autoloads posframe-autoloads ns-auto-titlebar
ns-auto-titlebar-autoloads nano-modeline memoize nano-modeline-autoloads
memoize-autoloads nano-light-theme face-remap nano-theme disp-table
nano-theme-autoloads envrc inheritenv ansi-color json map
envrc-autoloads inheritenv-autoloads compdef derived compdef-autoloads
edmacro kmacro helpful-autoloads elisp-refs-autoloads f-autoloads
s-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads
dash-autoloads hydra-autoloads lv-autoloads leader-key bind-map
leader-key-autoloads bind-map-autoloads delsel savehist pixel-scroll
ring xt-mouse no-littering no-littering-autoloads finder-inf bind-key
easy-mmode compat-autoloads compat compat-28.1 compat-27.1 compat-26.1
compat-25.1 compat-24.4 use-package-autoloads bind-key-autoloads
straight-autoloads info cl-seq cl-extra help-mode seq byte-opt straight
subr-x cl-macs gv cl-loaddefs cl-lib bytecomp byte-compile cconv
display-line-numbers iso-transl tooltip eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1064583 719137)
 (symbols 48 63691 119)
 (strings 32 258037 142979)
 (string-bytes 1 9598074)
 (vectors 16 125307)
 (vector-slots 8 3021024 1342733)
 (floats 8 2078 6432)
 (intervals 56 28233 2804)
 (buffers 992 40))





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53662: 29.0.50; Cannot use tab-new from side window
  2022-01-31 15:25 bug#53662: 29.0.50; Cannot use tab-new from side window Aaron Jensen
@ 2022-01-31 18:15 ` Juri Linkov
  2022-02-01  8:09   ` martin rudalics
  0 siblings, 1 reply; 8+ messages in thread
From: Juri Linkov @ 2022-01-31 18:15 UTC (permalink / raw)
  To: martin rudalics; +Cc: 53662, Aaron Jensen

> If you attempt to tab-bar-new-tab while in a side window you get:
>
> split-window: Cannot split side window or parent of side window
>
> It also deletes other windows and leaves you in a very awkward
> side-window-only state.
>
> To repro:
>
> emacs -Q
> M-x tab-bar-mode
> M-: (display-buffer-in-side-window (get-buffer "*Messages*") '((side . bottom)))
> C-x o
> M-x tab-new

Thanks for the bug report.

Martin, could you suggest how to ignore window-sideness
while splitting the side window?  'tab-bar-new-tab-to'
currently uses such trick to create a new window:

      (let ((ignore-window-parameters t))
        (delete-other-windows))
      (unless (eq tab-bar-new-tab-choice 'window)
        ;; Create a new window to get rid of old window parameters
        ;; (e.g. prev/next buffers) of old window.
        (split-window) (delete-window))

but this fails in side windows.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53662: 29.0.50; Cannot use tab-new from side window
  2022-01-31 18:15 ` Juri Linkov
@ 2022-02-01  8:09   ` martin rudalics
  2022-02-01 19:31     ` Juri Linkov
  0 siblings, 1 reply; 8+ messages in thread
From: martin rudalics @ 2022-02-01  8:09 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 53662, Aaron Jensen

 > Martin, could you suggest how to ignore window-sideness
 > while splitting the side window?  'tab-bar-new-tab-to'
 > currently uses such trick to create a new window:
 >
 >        (let ((ignore-window-parameters t))
 >          (delete-other-windows))

Usually, you can't make a side window the only window on its frame - the
main window has to stay.  If you ignore window parameters, you have to
clean the state of windows yourself afterwards - for example, by giving
the sole remaining window a 'window-side' parameter of nil.  If you do
not do that, the windows state of the frame is broken already before you
try splitting the window below.

 >        (unless (eq tab-bar-new-tab-choice 'window)
 >          ;; Create a new window to get rid of old window parameters
 >          ;; (e.g. prev/next buffers) of old window.
 >          (split-window) (delete-window))
 >
 > but this fails in side windows.

This is a hack and would fail in the case at hand since 'split-window'
would set the 'window-side' parameter for the new window.  I'd rather
set all parameters of the selected window to nil instead.

martin





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53662: 29.0.50; Cannot use tab-new from side window
  2022-02-01  8:09   ` martin rudalics
@ 2022-02-01 19:31     ` Juri Linkov
  2022-02-02  7:47       ` martin rudalics
  0 siblings, 1 reply; 8+ messages in thread
From: Juri Linkov @ 2022-02-01 19:31 UTC (permalink / raw)
  To: martin rudalics; +Cc: 53662, Aaron Jensen

[-- Attachment #1: Type: text/plain, Size: 1310 bytes --]

>> Martin, could you suggest how to ignore window-sideness
>> while splitting the side window?  'tab-bar-new-tab-to'
>> currently uses such trick to create a new window:
>>
>>        (let ((ignore-window-parameters t))
>>          (delete-other-windows))
>
> Usually, you can't make a side window the only window on its frame - the
> main window has to stay.  If you ignore window parameters, you have to
> clean the state of windows yourself afterwards - for example, by giving
> the sole remaining window a 'window-side' parameter of nil.  If you do
> not do that, the windows state of the frame is broken already before you
> try splitting the window below.
>
>>        (unless (eq tab-bar-new-tab-choice 'window)
>>          ;; Create a new window to get rid of old window parameters
>>          ;; (e.g. prev/next buffers) of old window.
>>          (split-window) (delete-window))
>>
>> but this fails in side windows.
>
> This is a hack and would fail in the case at hand since 'split-window'
> would set the 'window-side' parameter for the new window.  I'd rather
> set all parameters of the selected window to nil instead.

Thanks, I confirm this fixes the problem with this patch.
Also ‘split-window’ and ‘delete-window’ were moved
inside ‘(ignore-window-parameters t)’ for more safety:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: tab-new-window-parameters.patch --]
[-- Type: text/x-diff, Size: 1218 bytes --]

diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index 06ad8f60af..43a56c806b 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -1361,12 +1361,17 @@ tab-bar-new-tab-to
       ;; Handle the case when it's called in the active minibuffer.
       (when (minibuffer-selected-window)
         (select-window (minibuffer-selected-window)))
+      ;; Remove all window parameters to prevent the case
+      ;; when e.g. `window-side' gets in the way.
+      (dolist (parameter (window-parameters))
+        (set-window-parameter nil (car parameter) nil))
       (let ((ignore-window-parameters t))
-        (delete-other-windows))
-      (unless (eq tab-bar-new-tab-choice 'window)
-        ;; Create a new window to get rid of old window parameters
-        ;; (e.g. prev/next buffers) of old window.
-        (split-window) (delete-window))
+        (delete-other-windows)
+        (unless (eq tab-bar-new-tab-choice 'window)
+          ;; Create a new window to get rid of old window parameters
+          ;; (e.g. prev/next buffers) of old window.
+          (split-window) (delete-window)))
+
       (let ((buffer
              (if (functionp tab-bar-new-tab-choice)
                  (funcall tab-bar-new-tab-choice)

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* bug#53662: 29.0.50; Cannot use tab-new from side window
  2022-02-01 19:31     ` Juri Linkov
@ 2022-02-02  7:47       ` martin rudalics
  2022-02-02 19:37         ` Juri Linkov
  0 siblings, 1 reply; 8+ messages in thread
From: martin rudalics @ 2022-02-02  7:47 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 53662, Aaron Jensen

Two caveats:

+      (dolist (parameter (window-parameters))
+        (set-window-parameter nil (car parameter) nil))

Maybe you should remove the 'window-side' and the 'window-atom'
parameters only - users can assign arbitrary parameters to windows.

+        (unless (eq tab-bar-new-tab-choice 'window)
+          ;; Create a new window to get rid of old window parameters
+          ;; (e.g. prev/next buffers) of old window.
+          (split-window) (delete-window)))

Note that this will lose other settings as well like the window's
dedicated status.  If this is the intended behavior, you should at least
tell so in the doc-string.

martin





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53662: 29.0.50; Cannot use tab-new from side window
  2022-02-02  7:47       ` martin rudalics
@ 2022-02-02 19:37         ` Juri Linkov
  2022-02-06 17:55           ` Juri Linkov
  0 siblings, 1 reply; 8+ messages in thread
From: Juri Linkov @ 2022-02-02 19:37 UTC (permalink / raw)
  To: martin rudalics; +Cc: 53662, Aaron Jensen

[-- Attachment #1: Type: text/plain, Size: 1252 bytes --]

> Two caveats:
>
> +      (dolist (parameter (window-parameters))
> +        (set-window-parameter nil (car parameter) nil))
>
> Maybe you should remove the 'window-side' and the 'window-atom'
> parameters only - users can assign arbitrary parameters to windows.

If other window parameters are harmless, then only these two could be
removed.

> +        (unless (eq tab-bar-new-tab-choice 'window)
> +          ;; Create a new window to get rid of old window parameters
> +          ;; (e.g. prev/next buffers) of old window.
> +          (split-window) (delete-window)))
>
> Note that this will lose other settings as well like the window's
> dedicated status.  If this is the intended behavior, you should at least
> tell so in the doc-string.

If you mean the case when tab-bar-new-tab-choice is 'window',
then it will lose only 'window-atom' and 'window-side', because
the value 'window' is intended to keep a single window on the tab.

In other cases at this point, all windows were already saved to
window-configuration, so this window is disposable and can be modified
before immediately deleting it.  After saving windows to
window-configuration, the task here is just to create a new window.

So now a new patch with the updated doc-string:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: tab-new-window-side.patch --]
[-- Type: text/x-diff, Size: 2268 bytes --]

diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index 06ad8f60af..e611711092 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -474,6 +474,9 @@ tab-bar-new-tab-choice
 If t, start a new tab with the current buffer, i.e. the buffer
 that was current before calling the command that adds a new tab
 (this is the same what `make-frame' does by default).
+If the value is the symbol `window', then keep the selected
+window as a single window on the new tab, and keep all its
+window parameters except 'window-atom' and 'window-side'.
 If the value is a string, use it as a buffer name to switch to
 if such buffer exists, or switch to a buffer visiting the file or
 directory that the string specifies.  If the value is a function,
@@ -481,6 +484,7 @@ tab-bar-new-tab-choice
 If nil, duplicate the contents of the tab that was active
 before calling the command that adds a new tab."
   :type '(choice (const     :tag "Current buffer" t)
+                 (const     :tag "Current window" window)
                  (string    :tag "Buffer" "*scratch*")
                  (directory :tag "Directory" :value "~/")
                  (file      :tag "File" :value "~/.emacs")
@@ -1361,12 +1365,17 @@ tab-bar-new-tab-to
       ;; Handle the case when it's called in the active minibuffer.
       (when (minibuffer-selected-window)
         (select-window (minibuffer-selected-window)))
+      ;; Remove window parameters that can cause problems
+      ;; with `delete-other-windows' and `split-window'.
+      (set-window-parameter nil 'window-atom nil)
+      (set-window-parameter nil 'window-side nil)
       (let ((ignore-window-parameters t))
-        (delete-other-windows))
-      (unless (eq tab-bar-new-tab-choice 'window)
-        ;; Create a new window to get rid of old window parameters
-        ;; (e.g. prev/next buffers) of old window.
-        (split-window) (delete-window))
+        (delete-other-windows)
+        (unless (eq tab-bar-new-tab-choice 'window)
+          ;; Create a new window to get rid of old window parameters
+          ;; (e.g. prev/next buffers) of old window.
+          (split-window) (delete-window)))
+
       (let ((buffer
              (if (functionp tab-bar-new-tab-choice)
                  (funcall tab-bar-new-tab-choice)

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* bug#53662: 29.0.50; Cannot use tab-new from side window
  2022-02-02 19:37         ` Juri Linkov
@ 2022-02-06 17:55           ` Juri Linkov
  2022-02-06 19:03             ` Aaron Jensen
  0 siblings, 1 reply; 8+ messages in thread
From: Juri Linkov @ 2022-02-06 17:55 UTC (permalink / raw)
  To: martin rudalics; +Cc: 53662, Aaron Jensen

close 53662 29.0.50
thanks

>> Maybe you should remove the 'window-side' and the 'window-atom'
>> parameters only - users can assign arbitrary parameters to windows.
>
> If other window parameters are harmless, then only these two could be
> removed.

> So now a new patch with the updated doc-string:

Now this is pushed to master and closed.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53662: 29.0.50; Cannot use tab-new from side window
  2022-02-06 17:55           ` Juri Linkov
@ 2022-02-06 19:03             ` Aaron Jensen
  0 siblings, 0 replies; 8+ messages in thread
From: Aaron Jensen @ 2022-02-06 19:03 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 53662

On Sun, Feb 6, 2022 at 1:00 PM Juri Linkov <juri@linkov.net> wrote:
>
> close 53662 29.0.50
> thanks
>
> >> Maybe you should remove the 'window-side' and the 'window-atom'
> >> parameters only - users can assign arbitrary parameters to windows.
> >
> > If other window parameters are harmless, then only these two could be
> > removed.
>
> > So now a new patch with the updated doc-string:
>
> Now this is pushed to master and closed.

Thank you for the quick fix. I have confirmed that this no longer
errors for my original use-case.

Best,

Aaron





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-02-06 19:03 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-31 15:25 bug#53662: 29.0.50; Cannot use tab-new from side window Aaron Jensen
2022-01-31 18:15 ` Juri Linkov
2022-02-01  8:09   ` martin rudalics
2022-02-01 19:31     ` Juri Linkov
2022-02-02  7:47       ` martin rudalics
2022-02-02 19:37         ` Juri Linkov
2022-02-06 17:55           ` Juri Linkov
2022-02-06 19:03             ` Aaron Jensen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).