GNU bug report logs - #70594
30.0.50; Error when tabbing with only one active widget

Previous Next

Package: emacs;

Reported by: Stephen Berman <stephen.berman <at> gmx.net>

Date: Fri, 26 Apr 2024 12:45:09 UTC

Severity: normal

Found in version 30.0.50

Done: Stephen Berman <stephen.berman <at> gmx.net>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 70594 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Berman <stephen.berman <at> gmx.net>,
 Mauro Aranda <maurooaranda <at> gmail.com>
Cc: 70594 <at> debbugs.gnu.org
Subject: Re: bug#70594: 30.0.50; Error when tabbing with only one active widget
Date: Fri, 26 Apr 2024 18:02:13 +0300
> Date: Fri, 26 Apr 2024 14:43:42 +0200
> From:  Stephen Berman via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> Commit 91333dacfa1, which adds the feature of optionally skipping over
> inactive widgets when tabbing (bug#70413), fails to handle buffers that
> contain only one active widget; in that case, pressing TAB or S-TAB
> raises the error "No buttons or fields found".  To reproduce:
> 
> 0. emacs -Q
> 1. Load the attached file widget-test.el and then type `M-x
>    my-widget-test'.
> 2. In the buffer "*My Widget Test*" repeatedly press TAB and S-TAB and
>    observe that point moves successively between the active radio
>    buttons labelled "One" and "Two" and the active push button "Submit",
>    but skips the inactive push button "Reset", since the user option
>    widget-skip-inactive is enabled.
> 3. Now press (via RET or mouse-click) the "Submit" button, which makes
>    the radio buttons and the "Submit" button inactive and the "Reset"
>    button active.
> 4. Pressing TAB once moves point to the "Reset" button, then pressing
>    TAB again moves point to BOB and raises the error "No buttons or
>    fields found".  Likewise, pressing S-TAB once moves point to "Reset",
>    then pressing S-TAB again moves to EOB and raises the same error.
> 
> The attached patched fixes this bug.  In addition, when only one widget
> is active and point is on it, since pressing TAB or S-TAB does not move
> point, the informational message "Only one tabable widget" is displayed.
> 
> The original code in widget-move contained separate loops to handle
> forward and backward movement and this involved some code duplication.
> The changes to this code to fix the bug would have required further
> duplication, so I took the opportunity to parameterize the
> directionality, allowing handling both directions in a single loop.
> This shortens the code and IMO makes the similarities and differences in
> the handling easier to see.

Adding Mauro to the discussion.




This bug report was last modified 327 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.