[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Patch] Re: Impossibility of modifiable invisible fields
From: |
Leon Winter |
Subject: |
[Patch] Re: Impossibility of modifiable invisible fields |
Date: |
Fri, 31 Aug 2018 09:25:51 +0200 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
Hi Thomas,
it is with humble regret I have to admit my failure regarding this issue as I
have in fact caused this problem when trying to fix it in the first place.
We discussed this topic in April:
http://lists.gnu.org/archive/html/bug-ncurses/2018-04/msg00006.html
I opted for (2) which caused this problem based on a mistaken assumption about
other terminal programs. Infact !O_PUBLIC should behave like (1) only not
displaying the change which was a lot easier than expected to achieve.
My initial fix (for behaviour 1) broke the input just for the benefit of a
cursor moving "too far".
I would pledge to revert my initial change and instead just holding back
rendering for !O_PUBLIC while still computing all the changes (like scrolling)
which would be in fact the suggested approach (1).
See attached patch. I would have liked best to give you a patch that looks
pretty and adheres to the code convention but I there seems to be mix of tabs
and spaces and I could not decide what is right or wrong :D
> Actually the manual page is vague. It says:
>
> O_ACTIVE
> The field is visited during processing. If this option is off,
> the field will not be reachable by navigation keys. Please notice
> that an invisible field appears to be inactive also.
> ...
> O_PUBLIC
> The field contents are displayed as data is entered.
> ...
> O_VISIBLE
> The field is displayed. If this option is off, display of the
> field is suppressed.
>
> I think the best approach is to first clarify in the documentation
> what the library actually does (and add test-cases which use both
> features):
>
> a) O_SELECTABLE is an example from the test-program demo_forms.c
> (not actually part of the library), but as noted, it combines
> O_ACTIVE and O_VISIBLE.
>
> b) O_PUBLIC isn't tested or demonstrated.
>
> With those documented, we can discuss changes starting from that.
I also looked into that:
!O_VISIBLE fields are also not selectable.
Before my "bad fix", !O_PUBLIC fields were able to receive input but displayed
the cursor incorrectly during input (because scrolling was not done).
After my "bad fix", !O_PUBLIC fields had a fixed cursor on the first position
and only allowed for input of one character regardless of the actual dimension
of field.
With the attached patch, !O_PUBLIC cursor movement will be correct like O_PUBLIC
but the content will be not be displayed. This is what the man page suggests
that *should* happen.
Regards,
Leon
ncurses-o_public-fix.patch
Description: Text Data