Text input improvements
- [x] Click to edit at particular character
- [x] Drag to select range
- [x] Double click to select a word
- [x] Ctrl + Arrow key to move by word
- [x] Shift + Arrow keys to select
- [x] Ctrl + backspace to delete word before the cursor
- [ ] Numpad del to delete the character after the cursor (Ctrl deletes the word)
- [x] Ctrl + A to select all
- [x] Cut, copy and paste shortcuts (need to access system clipboard)
- [ ] IME support
- [x] Proper mouse cursor icon on hover and a blinking caret in the text box
- [ ] Optional multi line support (adding another component would be reasonable)
- [ ] Alignment and justification
- [ ]
request_focusshould put cursor at the end of the field - [ ] Programmatically set selection / cursor location
I will look into the word-based actions and clicking at a glyph
I Love Floem Project , It's a great idea for Rust GUI
Updated list based on my testing. I have started work on the remaining ones https://github.com/thewizzy/floem/tree/select_delete_range (also https://discord.com/channels/946858761413328946/1176271038653415444)
- [x] Click to edit at particular character
- [x] Drag to select range
- [ ] Double click to select a word
- [x] Ctrl + Arrow key to move by word
- [x] Shift + Arrow keys to select
- [x] Ctrl + backspace to delete word before the cursor
- [x] Numpad del to delete the character after the cursor (Ctrl deletes the word)
- [x] Ctrl + A to select all
- [x] Cut, copy and paste shortcuts (need to access system clipboard)
- [x] Del deletes the current selection, putting the cursor at the start of the range
- [ ] IME support
- [x] Proper mouse and blinking cursor
- [ ] ~~Optional multi line support~~
Some notes here about mac compatibility
Numpad del to delete the character after the cursor (Ctrl deletes the word) Two things:
- On mac a user would expect Opt + Delete to delete words left from the cursor instead of Ctrl
- This seems to be already working now with Ctrl + Delete
Ctrl + Arrow key to move by word Opt + arrow keys would move the cursor by word (right now Ctrl + arrow keys is tied by default to "spaces" on mac which moves the screen). On mac you also get Shift + Opt + Arrow key to select word for word (which right now is implemented but with Ctrl instead of Opt
On mac you also usually get:
- Cmd + Delete to delete everything left from cursor
- Cmd + z to go back in history (not sure how large the buffer is here)
This open task is working for me on Windows and Wayland on GNOME:
Double click to select a word
Can you break down what needs to happen for IME support? ~Is this about enabling user input of special characters like łéçô? Is right-to-left support in scope? One thing I noticed during my testing is that a test application crashed when inputting é twice in a row. The issue does not trigger when I paste the é character twice from clipboard, only with direct input.~ (Edit: I opened https://github.com/lapce/floem/issues/235 for the é bug and I hope to submit a fix this weekend.)
Another issue is being able to align/justify text. Text inside of TextInput doesn't respect alignment and justification
I'd also like to add that request_focus() on an input field should put the cursor at the end of the input field text. right now it's at position 0 no matter how much is already inside the field.
Just want to know how to interact with linux IM_MODULE using rust?? I only see tutorials about C.
I'd also like to add that
request_focus()on an input field should put the cursor at the end of the input field text. right now it's at position 0 no matter how much is already inside the field.
I'd rather have the current text selected in this case. This is generally more useful (e.g. makes the common case easy, which is to replace the entire text) and is in line with established UI frameworks/patterns (e.g. GTK, QT, Windows).
Let's make sure what happens in input fields is what each OS is expecting to happen. It sounds like windows has a different behavior than macos etc. Nothing is worse than editing something and your cursor is jumping around in unexpected ways.