unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#58728: 29.0.50; Minibuffer does not follow tabs
@ 2022-10-23  3:36 Visuwesh
  2022-10-24 18:54 ` Sean Whitton
  2022-10-25 19:14 ` Juri Linkov
  0 siblings, 2 replies; 12+ messages in thread
From: Visuwesh @ 2022-10-23  3:36 UTC (permalink / raw)
  To: 58728

I'm not sure if this qualifies as a bug or as a feature request but:
minibuffers should follow tabs like they follow frames.  To reproduce,

    1. emacs -Q
    2. C-x t 2
    3. M-x
    4. C-x t o

Observe how the minibuffer is not active in this tab so you can't
complete your query.  You need to switch back to the tab where the M-x
command was run to get back the minibuffer.
[ The current behaviour makes for really confusing behaviour when
  recursive minibuffers are involved.  ]


In GNU Emacs 29.0.50 (build 9, x86_64-pc-linux-gnu, Motif Version 2.3.8,
 cairo version 1.16.0) of 2022-10-14 built on astatine
Repository revision: 6ea69fc7340e48cf73df351a544c1d8946395b3d
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Debian GNU/Linux bookworm/sid

Configured using:
 'configure --with-x-toolkit=motif'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER
PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11
XDBE XIM XINPUT2 XPM MOTIF ZLIB
Important settings:
  value of $LC_MONETARY: ta_IN.UTF-8
  value of $LC_NUMERIC: ta_IN.UTF-8
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Grep

Minor modes in effect:
  recentf-mode: t
  TeX-PDF-mode: t
  shell-dirtrack-mode: t
  eros-mode: t
  pdf-occur-global-minor-mode: t
  minibuffer-depth-indicate-mode: t
  repeat-mode: t
  display-time-mode: t
  display-battery-mode: t
  winner-mode: t
  vz/acme-tag-minor-mode: t
  delete-selection-mode: t
  xterm-mouse-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  use-hard-newlines: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  undelete-frame-mode: t
  buffer-read-only: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow emacsbug dash xscheme scheme find-dired ffap grep minibuf-eldef
info-look ement-taxy svg-lib ecomplete bug-reference cl-print url-http
url-gw url-cache url-auth wdired epa-file epa-dired dired-aux gnus-dired
dcl-mode tramp-cmds shortdoc help-fns radix-tree log-edit add-log vc-hg
vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs smerge-mode reveal recentf
tree-widget rfc2104 tramp-cache time-stamp tramp-sh tramp tramp-loaddefs
trampver tramp-integration cus-start tramp-compat ls-lisp qp flow-fill
sort gnus-cite mm-archive mail-extr textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml
network-stream nsm nndraft nnmh nnmaildir nnagent nnml vc-git diff-mode
nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp
gnus-cache ement-room-list ement ement-notify ement-room ement-lib
ement-api ement-structs plz ement-macros taxy-magit-section
magit-section taxy ewoc dns writegood-mode cal-islam holidays
holiday-loaddefs cal-move calc-alg calc-frac calc-misc calc-menu
calc-ext calc calc-loaddefs rect calc-macs misc msb etags fileloop
imenu-xref xref dabbrev preview tex-buf font-latex latex latex-flymake
tex-ispell tex-style tex crm tex-mode latexenc 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-html table
ox-ascii ox-publish ox flyspell ispell org-pdftools org-noter
org-element avl-tree generator misearch multi-isearch notifications
pulse color avy sh-script smie executable files-x shell-command+ view
mule-util display-line-numbers vc-backup log-view pcvs-util vc
vc-dispatcher diff pdf-sync pdf-annot facemenu pdf-outline pdf-links
ob-gnuplot ob-fortran ob-julia ob-C cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-shell shell
ob-racket async ob-async cdlatex texmathp org-attach org-id org-refile
ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
gnus-sum shr pixel-fill kinsoku url-file svg gnus-group gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo
parse-time gnus-spec gnus-int gnus-range message sendmail yank-media
puny rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range
mm-util mail-prsvr ol-docview doc-view ol-bibtex ol-bbdb ol-w3m ol-doi
org-link-doi org-tempo tempo ol-man org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete
pcomplete org-list org-faces org-entities noutline outline org-version
ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex iso8601 ol
org-keys oc org-compat org-macs org-loaddefs pdf-history cursor-sensor
icomplete face-remap server paredit edmacro kmacro eros time-date
checkdoc lisp-mnt flymake-proc flymake project warnings thingatpt
wordel-autoloads sokoban-autoloads ement-autoloads svg-lib-autoloads
taxy-magit-section-autoloads magit-section-autoloads dash-autoloads
taxy-autoloads plz-autoloads nov-autoloads esxml-autoloads kv-autoloads
transmission-autoloads lua-mode-autoloads nix-mode-autoloads
gnuplot-autoloads devdocs-autoloads julia-mode-autoloads
racket-mode-autoloads eros-autoloads writegood-mode-autoloads
siege-mode-autoloads paredit-autoloads puni-autoloads
expand-region-autoloads filladapt-autoloads compose scroll-other-window
org-pdftools-autoloads org-noter-autoloads change-env-autoloads
math-delimiters-autoloads doct-autoloads ob-async-autoloads
async-autoloads emacs-ob-racket-autoloads valign-autoloads
cdlatex-autoloads auctex-autoloads tex-site pdf-occur ibuf-ext ibuffer
ibuffer-loaddefs tablist advice tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local find-func
cedet pdf-isearch let-alist pdf-misc imenu pdf-tools package browse-url
url url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source eieio eieio-core json map byte-opt url-vars compile comint
ansi-osc ansi-color cus-edit icons wid-edit pdf-view password-cache
jka-compr pdf-cache pdf-info tq pdf-util pdf-macs image-mode dired-x
dired dired-loaddefs exif pdf-tools-autoloads tablist-autoloads mb-depth
repeat visual-fill-autoloads olivetti-autoloads time format-spec battery
dbus filenotify xml dom tamil99 quail disp-table lacarte-autoloads
shell-command-plus-autoloads winner ring delsel easy-mmode xt-mouse
cus-load avy-autoloads finder-inf vc-backup-autoloads compat-autoloads
icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
filecache imenu-xref-autoloads derived chemtable-autoloads
molar-mass-autoloads saveplace-pdf-view saveplace bookmark
text-property-search pp saveplace-pdf-view-autoloads rx pcase
inspector-autoloads xr-autoloads straight-autoloads cl-seq info cl-extra
help-mode straight subr-x cl-macs gv cl-loaddefs cl-lib bytecomp
byte-compile cconv vz-nh-theme vz-options-theme rmc iso-transl tooltip
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd 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 nadvice seq simple cl-generic
indonesian philippine 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 abbrev obarray oclosure cl-preloaded 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 dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo motif
x-toolkit xinput2 x multi-tty make-network-process emacs)

Memory information:
((conses 16 1404569 552410)
 (symbols 48 67316 374)
 (strings 32 295221 68347)
 (string-bytes 1 81644058)
 (vectors 16 126811)
 (vector-slots 8 2219860 459811)
 (floats 8 38616 14698)
 (intervals 56 55064 10169)
 (buffers 1000 153))





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-23  3:36 bug#58728: 29.0.50; Minibuffer does not follow tabs Visuwesh
@ 2022-10-24 18:54 ` Sean Whitton
  2022-10-25 19:17   ` Juri Linkov
  2022-10-25 19:14 ` Juri Linkov
  1 sibling, 1 reply; 12+ messages in thread
From: Sean Whitton @ 2022-10-24 18:54 UTC (permalink / raw)
  To: Visuwesh; +Cc: 58728

Hello,

On Sun 23 Oct 2022 at 09:06AM +0530, Visuwesh wrote:

> I'm not sure if this qualifies as a bug or as a feature request but:
> minibuffers should follow tabs like they follow frames.

... when minibuffer-follows-selected-frame is t.

Perhaps this new feature could use that same defcustom, even though the
name isn't ideal.

-- 
Sean Whitton





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-23  3:36 bug#58728: 29.0.50; Minibuffer does not follow tabs Visuwesh
  2022-10-24 18:54 ` Sean Whitton
@ 2022-10-25 19:14 ` Juri Linkov
  2022-10-26  1:38   ` Visuwesh
  1 sibling, 1 reply; 12+ messages in thread
From: Juri Linkov @ 2022-10-25 19:14 UTC (permalink / raw)
  To: Visuwesh; +Cc: 58728

> I'm not sure if this qualifies as a bug or as a feature request but:
> minibuffers should follow tabs like they follow frames.  To reproduce,
>
>     1. emacs -Q
>     2. C-x t 2
>     3. M-x
>     4. C-x t o
>
> Observe how the minibuffer is not active in this tab so you can't
> complete your query.  You need to switch back to the tab where the M-x
> command was run to get back the minibuffer.
> [ The current behaviour makes for really confusing behaviour when
>   recursive minibuffers are involved.  ]

Currently the only code that handles the active minibuffer
is in 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)))

that ensures that the minibuffer is not selected before creating a new tab.

So should the new feature handle all cases: when a new tab is created and
when switching existing tabs?  In both cases the minibuffer should follow
the selected tab?

Currently selecting a tab just restores its window-configuration.
Should it activate the same minibuffer that was active in a previous tab?
What if two tabs have separate minibuffers?  Which minibuffer wins?
In a test case:

    1. emacs -Q
    2. C-x t 2
    3. M-x
    4. C-x t o
    5. M-:
    6. C-x t o

what minibuffer should be displayed?  Probably the last.





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-24 18:54 ` Sean Whitton
@ 2022-10-25 19:17   ` Juri Linkov
  0 siblings, 0 replies; 12+ messages in thread
From: Juri Linkov @ 2022-10-25 19:17 UTC (permalink / raw)
  To: Sean Whitton; +Cc: 58728, Visuwesh

>> I'm not sure if this qualifies as a bug or as a feature request but:
>> minibuffers should follow tabs like they follow frames.
>
> ... when minibuffer-follows-selected-frame is t.
>
> Perhaps this new feature could use that same defcustom, even though the
> name isn't ideal.

Or it could set the default value of a new option from the value of
minibuffer-follows-selected-frame.

I don't know how much of the existing frame-handling code can be reused.
Is there a function that could activate the minibuffer from a previously
used window-configuration?





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-25 19:14 ` Juri Linkov
@ 2022-10-26  1:38   ` Visuwesh
  2022-10-27  7:52     ` Juri Linkov
  0 siblings, 1 reply; 12+ messages in thread
From: Visuwesh @ 2022-10-26  1:38 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 58728

[செவ்வாய் அக்டோபர் 25, 2022] Juri Linkov wrote:

> Currently the only code that handles the active minibuffer
> is in 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)))
>
> that ensures that the minibuffer is not selected before creating a new tab.
>
> So should the new feature handle all cases: when a new tab is created and
> when switching existing tabs?  In both cases the minibuffer should follow
> the selected tab?

I'd expect it to.  The active minibuffer should travel across newly
created tabs and old tabs.

> Currently selecting a tab just restores its window-configuration.
> Should it activate the same minibuffer that was active in a previous tab?
> What if two tabs have separate minibuffers?  Which minibuffer wins?
> In a test case:
>
>     1. emacs -Q
>     2. C-x t 2
>     3. M-x
>     4. C-x t o
>     5. M-:
>     6. C-x t o
>
> what minibuffer should be displayed?  Probably the last.

I think showing the most "recent" minibuffer should be shown.  If we go
by minibuffer-depth-indicate-mode, then the most "recent" minibuffer
would be the labelled 2.





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-26  1:38   ` Visuwesh
@ 2022-10-27  7:52     ` Juri Linkov
  2022-10-27 14:22       ` Visuwesh
  0 siblings, 1 reply; 12+ messages in thread
From: Juri Linkov @ 2022-10-27  7:52 UTC (permalink / raw)
  To: Visuwesh; +Cc: 58728

>>     1. emacs -Q
>>     2. C-x t 2
>>     3. M-x
>>     4. C-x t o
>>     5. M-:
>>     6. C-x t o
>>
>> what minibuffer should be displayed?  Probably the last.
>
> I think showing the most "recent" minibuffer should be shown.  If we go
> by minibuffer-depth-indicate-mode, then the most "recent" minibuffer
> would be the labelled 2.

As soon as someone will point out to a function that does this,
it could be immediately added to tab-bar.el.  What is needed is
something to work in such situation:

    1. emacs -Q
    2. M-: (setq wc (current-window-configuration))
    3. M-x
    4. M-: (set-window-configuration wc)
    5. ???
    6. The minibuffer with its window is restored and reactivated.

Maybe something like what frameset-to-register/jump-to-register does,
that restores the minibuffer, but doesn't reactivate it.





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-27  7:52     ` Juri Linkov
@ 2022-10-27 14:22       ` Visuwesh
  2022-10-28  6:40         ` Juri Linkov
  0 siblings, 1 reply; 12+ messages in thread
From: Visuwesh @ 2022-10-27 14:22 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 58728

[வியாழன் அக்டோபர் 27, 2022] Juri Linkov wrote:

>>>     1. emacs -Q
>>>     2. C-x t 2
>>>     3. M-x
>>>     4. C-x t o
>>>     5. M-:
>>>     6. C-x t o
>>>
>>> what minibuffer should be displayed?  Probably the last.
>>
>> I think showing the most "recent" minibuffer should be shown.  If we go
>> by minibuffer-depth-indicate-mode, then the most "recent" minibuffer
>> would be the labelled 2.
>
> As soon as someone will point out to a function that does this,
> it could be immediately added to tab-bar.el.  What is needed is
> something to work in such situation:
>
>     1. emacs -Q
>     2. M-: (setq wc (current-window-configuration))
>     3. M-x
>     4. M-: (set-window-configuration wc)
>     5. ???
>     6. The minibuffer with its window is restored and reactivated.
>
> Maybe something like what frameset-to-register/jump-to-register does,
> that restores the minibuffer, but doesn't reactivate it.

Without putting much effort, I ended up with the following expression
after a quick C-h d for "minibuffer"

    (set-window-buffer (minibuffer-window) (get-buffer (format " *Minibuf-%d*" (minibuffer-depth))))

I am not sure how well this will work with minibuffer-only-frames and
such though.  We need to select the minibuffer when switching the tab if
the minibuffer was selected prior to the switch too, but that's a matter
of (select-window (minibuffer-window)) I think.





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-27 14:22       ` Visuwesh
@ 2022-10-28  6:40         ` Juri Linkov
  2022-10-28  7:20           ` Juri Linkov
  0 siblings, 1 reply; 12+ messages in thread
From: Juri Linkov @ 2022-10-28  6:40 UTC (permalink / raw)
  To: Visuwesh; +Cc: 58728

>>     1. emacs -Q
>>     2. M-: (setq wc (current-window-configuration))
>>     3. M-x
>>     4. M-: (set-window-configuration wc)
>>     5. ???
>>     6. The minibuffer with its window is restored and reactivated.
>>
>> Maybe something like what frameset-to-register/jump-to-register does,
>> that restores the minibuffer, but doesn't reactivate it.
>
> Without putting much effort, I ended up with the following expression
> after a quick C-h d for "minibuffer"
>
>     (set-window-buffer (minibuffer-window) (get-buffer (format " *Minibuf-%d*" (minibuffer-depth))))

This works only for the recent minibuffer, but not for recursive minibuffers
with arbitrary depths, such as

    1. emacs -Q
    2. M-: (setq wc (current-window-configuration))
    3. C-x C-f
    4. M-x
    5. M-: (set-window-configuration wc)
    6. M-: (set-window-buffer (minibuffer-window) (get-buffer (format " *Minibuf-%d*" (minibuffer-depth))))
    7. C-g

The first minibuffer is not displayed.  But OTOH, window-state
handles it correctly, because it just doesn't mess with minibuffers:

    1. emacs -Q
    2. M-: (setq ws (window-state-get (frame-root-window) t))
    3. C-x C-f
    4. M-x
    5. M-: (window-state-put ws (frame-root-window) 'safe)
    6. C-g

> I am not sure how well this will work with minibuffer-only-frames and
> such though.  We need to select the minibuffer when switching the tab if
> the minibuffer was selected prior to the switch too, but that's a matter
> of (select-window (minibuffer-window)) I think.

For making it more like minibuffer-only-frames, there are more questions.
After switching to another frame and exiting the minibuffer, it switches
back to the original frame to execute the command, e.g.:

    1. emacs -Q
    2. C-x 5 5 C-h i
    3. M-x
    4. C-x 5 o
    5. C-x o   (need to switch to the minibuffer because switching frames
                doesn't select the minibuffer, maybe a bug?)
    6. count-words RET

The command 'count-words' is executed in the original frame.
What should tab-bar.el do?  Select the original tab before
executing the minibuffer command?





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-28  6:40         ` Juri Linkov
@ 2022-10-28  7:20           ` Juri Linkov
  2022-10-29 16:17             ` Visuwesh
  0 siblings, 1 reply; 12+ messages in thread
From: Juri Linkov @ 2022-10-28  7:20 UTC (permalink / raw)
  To: Visuwesh; +Cc: 58728

> OTOH, window-state handles it correctly, because it just doesn't mess
> with minibuffers:

Actually, it's possible not to mess with minibiffers
with window-configurations as well:

    1. emacs -Q
    2. M-: (setq wc (current-window-configuration))
    3. C-x C-f
    4. M-x
    5. M-: (set-window-configuration wc nil 'DONT-SET-MINIWINDOW)
    6. C-g

Please try such a patch:

diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index da1edf3084e..31009e8a7ec 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -1136,7 +1144,7 @@ tab-bar-select-tab
                 (wc-history-back (alist-get 'wc-history-back to-tab))
                 (wc-history-forward (alist-get 'wc-history-forward to-tab)))
 
-            (set-window-configuration wc)
+            (set-window-configuration wc nil 'DONT-SET-MINIWINDOW)
 
             ;; set-window-configuration does not restore the value of
             ;; point in the current buffer, so restore it separately.
@@ -1900,7 +1908,7 @@ tab-bar-history-back
                    (cons tab-bar-history-old
                          (gethash (selected-frame) tab-bar-history-forward))
                    tab-bar-history-forward)
-          (set-window-configuration wc)
+          (set-window-configuration wc nil 'DONT-SET-MINIWINDOW)
           (when (and (markerp wc-point) (marker-buffer wc-point))
             (goto-char wc-point)))
       (message "No more tab back history"))))
@@ -1919,7 +1927,7 @@ tab-bar-history-forward
                    (cons tab-bar-history-old
                          (gethash (selected-frame) tab-bar-history-back))
                    tab-bar-history-back)
-          (set-window-configuration wc)
+          (set-window-configuration wc nil 'DONT-SET-MINIWINDOW)
           (when (and (markerp wc-point) (marker-buffer wc-point))
             (goto-char wc-point)))
       (message "No more tab forward history"))))





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-28  7:20           ` Juri Linkov
@ 2022-10-29 16:17             ` Visuwesh
  2022-10-30  7:34               ` Juri Linkov
  0 siblings, 1 reply; 12+ messages in thread
From: Visuwesh @ 2022-10-29 16:17 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 58728

[வெள்ளி அக்டோபர் 28, 2022] Juri Linkov wrote:

>> OTOH, window-state handles it correctly, because it just doesn't mess
>> with minibuffers:
>
> Actually, it's possible not to mess with minibiffers
> with window-configurations as well:
>
>     1. emacs -Q
>     2. M-: (setq wc (current-window-configuration))
>     3. C-x C-f
>     4. M-x
>     5. M-: (set-window-configuration wc nil 'DONT-SET-MINIWINDOW)
>     6. C-g
>
> Please try such a patch:
> [patch...]

This works exactly like I want to!  One minor nit: it does not preserve
the minibuffer focus so you can end up with the minibuffer selected in
some tabs but not in others when switching however, this is the same
behaviour when switching frames too so I can put up with it just fine.





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-29 16:17             ` Visuwesh
@ 2022-10-30  7:34               ` Juri Linkov
  2022-10-30 13:50                 ` Visuwesh
  0 siblings, 1 reply; 12+ messages in thread
From: Juri Linkov @ 2022-10-30  7:34 UTC (permalink / raw)
  To: Visuwesh; +Cc: 58728

close 58728 29.0.50
thanks

>> Actually, it's possible not to mess with minibiffers
>> with window-configurations as well:
>>
>>     1. emacs -Q
>>     2. M-: (setq wc (current-window-configuration))
>>     3. C-x C-f
>>     4. M-x
>>     5. M-: (set-window-configuration wc nil 'DONT-SET-MINIWINDOW)
>>     6. C-g
>>
>> Please try such a patch:
>> [patch...]
>
> This works exactly like I want to!  One minor nit: it does not preserve
> the minibuffer focus so you can end up with the minibuffer selected in
> some tabs but not in others when switching however, this is the same
> behaviour when switching frames too so I can put up with it just fine.

I don't know how to preserve the minibuffer focus in case of switching frames,
but it was easy to implement for tabs.  So now this is pushed.  Thanks for
helping to fix this issue.

PS: A variable corresponding to minibuffer-follows-selected-frame
could be added too when someone will ask for it.  But currently
I see no need for such a variable because tabs are quite different
from frames: the active minibuffer can be visible in another frame
as a visual reminder that there are active minibuffers, but not so
in case of tabs when the active minibuffer is hidden in another tab.





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

* bug#58728: 29.0.50; Minibuffer does not follow tabs
  2022-10-30  7:34               ` Juri Linkov
@ 2022-10-30 13:50                 ` Visuwesh
  0 siblings, 0 replies; 12+ messages in thread
From: Visuwesh @ 2022-10-30 13:50 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 58728

[ஞாயிறு அக்டோபர் 30, 2022] Juri Linkov wrote:

>> This works exactly like I want to!  One minor nit: it does not preserve
>> the minibuffer focus so you can end up with the minibuffer selected in
>> some tabs but not in others when switching however, this is the same
>> behaviour when switching frames too so I can put up with it just fine.
>
> I don't know how to preserve the minibuffer focus in case of switching frames,
> but it was easy to implement for tabs.  So now this is pushed.  Thanks for
> helping to fix this issue.

Great thanks!

> PS: A variable corresponding to minibuffer-follows-selected-frame
> could be added too when someone will ask for it.  But currently
> I see no need for such a variable because tabs are quite different
> from frames: the active minibuffer can be visible in another frame
> as a visual reminder that there are active minibuffers, but not so
> in case of tabs when the active minibuffer is hidden in another tab.

Indeed, I agree.





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

end of thread, other threads:[~2022-10-30 13:50 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-23  3:36 bug#58728: 29.0.50; Minibuffer does not follow tabs Visuwesh
2022-10-24 18:54 ` Sean Whitton
2022-10-25 19:17   ` Juri Linkov
2022-10-25 19:14 ` Juri Linkov
2022-10-26  1:38   ` Visuwesh
2022-10-27  7:52     ` Juri Linkov
2022-10-27 14:22       ` Visuwesh
2022-10-28  6:40         ` Juri Linkov
2022-10-28  7:20           ` Juri Linkov
2022-10-29 16:17             ` Visuwesh
2022-10-30  7:34               ` Juri Linkov
2022-10-30 13:50                 ` Visuwesh

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).