[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#62709: 29.0.60; quail-minibuffer-message prevents set-mark-command f
From: |
Visuwesh |
Subject: |
bug#62709: 29.0.60; quail-minibuffer-message prevents set-mark-command from activating region in minibuffer |
Date: |
Fri, 07 Apr 2023 17:21:26 +0530 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
[வெள்ளி ஏப்ரல் 07, 2023] Eli Zaretskii wrote:
>> - To observe the problem, first define a dummy Quail input method
>>
>> (quail-define-package "none" "asdf" "none")
>>
>> - Then activate recursive minibuffers
>>
>> M-: (setq enable-recursive-minibuffers t) RET
>>
>> - Now open a minibuffer (C-x C-f is a good one) then activate the "none"
>> input method.
>>
>> - Now type M-x set-mark-command RET and note how the region is not
>> active.
>>
>> This problem goes away if you redefine `quail-minibuffer-message' to
>> simply echo the string by saying
>>
>> (defalias 'quail-minibuffer-message #'message)
>>
>> Furthermore, the comment above `quail-minibuffer-message' says
>>
>> ;; Quail specific version of minibuffer-message. It displays STRING
>> ;; with timeout 1000000 seconds instead of two seconds.
>>
>> but even with that redefinition, the guidance string is printed just
>> fine (minus the extra square brackets that message adds).
>
> I'd prefer to solve the problem that prevents the region from becoming
> active, without changing how Quail shows its messages. Can you try
> finding such a solution,
One solution would be to use an overlay to show the guidance string,
like what `minibuffer-depth-mode' does.
> or at least explaining why quail-minibuffer-message prevents the
> region from becoming active in this case?
Unfortunately, that is well beyond my abilities. If I simply comment
out the part where Quail `insert's the guidance string, I see no issue
but if I leave it and check the return value of `use-region-p' and value
of `mark-active' before and after the `insert' call, I see nil before
and after the insert call...
I investigated insert and delete-region because they deactivate an
active region in a "normal buffer" when called.
> Thanks.