Subject: bug#32990: 26.1.50; isearch-forward + t-m-m/mark-active doc

From: [email-masked] (Charles A. Roelli)
Date: Tue, 20 Nov 2018 20:49:39 +0100

> From: Juri Linkov <[email-masked]>
> Date: Mon, 19 Nov 2018 23:44:04 +0200
> 
> Thanks, I tried, and have one suggestion: due to the long menu it
> doesn't fit into the frame's height, so to click an item at the end of
> the menu requires scrolling that takes time to scroll.  I suggest to
> create more submenus, for example, a Yank submenu for all yank commands.

Thanks for testing.  I made a Yank submenu as you suggest, which
makes the menu height more reasonable.

> I tried clicking Isearch items in the mode-line indicator such as
> "Repeat search forward", but it cancels Isearch (and leaves Isearch
> highlighting).

Should be fixed in the next version of the change.
(`isearch-mouse-leave-buffer' needed to allow command
`mouse-minor-mode-menu'.)

> > tmm-menubar (M-`)/TTY menus (F10 from TTYs) should now work as
> > expected (no need to set `isearch-allow-scroll' to t).
> 
> >From tmm I tried "C==>Cancel last input item DEL", but it does nothing.
> Do you see the same?

Yes.  This may be `with-isearch-suspended's doing (as used in
`isearch-tmm-menubar'): it pushes a new state of Isearch after running
its arg BODY, so we will have to compensate for that somehow.

> >  (or (assq 'isearch-mode minor-mode-alist)
> >      (nconc minor-mode-alist
> > -	   (list '(isearch-mode isearch-mode))))
> > +	   (list '(isearch-mode " Isearch"))))
> 
> This duplicates the constant string " Isearch" in two places.
> Why this change was necessary?

It's no longer necessary and will be gone from the next version of the
change.  It was necessary because clicking the Isearch mode-line
indicator was actually quitting Isearch.  Fixed by the above change to
`isearch-mouse-leave-buffer'.
 
> > @@ -2564,7 +2788,8 @@ isearch-post-command-hook
> >          (when isearch-forward
> >            (goto-char isearch-pre-move-point))
> >          (isearch-search-and-update)))
> > -    (setq isearch-pre-move-point nil))))
> > +    (setq isearch-pre-move-point nil)))
> > +  (force-mode-line-update))
> 
> What problems caused adding force-mode-line-update?

The menu- and tool-bars are not always updated after typing a
character during Isearch, so some of the items in those keymaps may be
wrongly displayed if we do not always force their recalculation.