* 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 external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.