If you entered a multi-byte character into a prompt and then changed your mind
and used backspace to fix the character, only the last byte of the character was
removed. Because pango is intelligent, it noticed the broken utf8 and
complained.
So far nothing new. But since 711d78b50c the textbox will throw a lua error
when it gets an invalid text (= pango complains). Throwing an unprotected lua
error in this context causes the keygrabber to be killed which stops the prompt.
Fix this by removing bytes as long as there are bytes left that can be removed.
This is FS#801.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Also changes prompt_text_with_cursor() to take a table instead of
list of arguments allowing to incorporate font setting and
'prettyprompt' settings into the function.
Signed-off-by: koniu <gkusnierz@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
selectall argument to run():
* renders cursor selection
* is reset when anything but typing occurs
* is now independent from cur_pos == 1
Signed-off-by: koniu <gkusnierz@gmail.com>
Adds a trailing space after text if cursor position < text length to
prevent width of the widget changing particularly useful when using
'text' and 'selectall' to do eg. in-place renaming.
Sample textbox content (# space, _ cursor).
Before:
textbox before prompt: #term#
selectall prompt textbox : #_erm <- shorter than other cases
after pressing end : #term_
After:
textbox before prompt: #term#
selectall prompt textbox : #_erm#
after pressing end : #term_
Signed-off-by: koniu <gkusnierz@gmail.com>
If set along with 'text' (prefilled content) it will position the cursor at
the beginning of the line and and on text input (and not control keys,
arrows, etc.) will overwrite the prefilled content with the new input.
Signed-off-by: koniu <gkusnierz@gmail.com>