Bug 309197 - Control + backspace does not delete-word-to-left-of-cursor in learning mode.
Summary: Control + backspace does not delete-word-to-left-of-cursor in learning mode.
Alias: None
Product: ktouch
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: Sebastian Gottfried
Depends on:
Reported: 2012-10-29 13:57 UTC by AndyT
Modified: 2012-11-11 11:28 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 2.0


Note You need to log in before you can comment on or make changes to this bug.
Description AndyT 2012-10-29 13:57:43 UTC
Ability to quickly delete a mistyped word is a very important mainstream touch-typing skill. 
(For me at least it is also a great substitute for any number of clever algorithms designed to detect a student's problematic key sequences - just delete one or more whole words involved in any typo and try, try, try again. Hammers your reported speed and accuracy levels, but seems to do wonders for actual learning progression...)

Reproducible: Always

Steps to Reproduce:
1. select UK keyboard.
2. create new lesson from any pasted text.
3. start the lesson
4. type a few characters, then use Ctrl+Backspace
Actual Results:  
Only a single char is deleted per Ctrl+BS keypress

Expected Results:  
Expect entire word to left of cursor deleted per Ctrl+BS keypress, as per most Gnome, KDE (and windows) applications.

Awesome application, thanks a million.
Comment 1 Sebastian Gottfried 2012-11-11 11:28:16 UTC
Git commit 1a910f17d59eb85bf88a01f2e9d694fddde8e7fa by Sebastian Gottfried.
Committed on 11/11/2012 at 11:39.
Pushed by gottfried into branch 'master'.

training screen: fix key event handling wrt dead keys

Turns the event handling in QML is too limited to properly support dead
keys. At least on X11 dead key handling is part of some input method
and one has support for them in QML. Therefore the event handling part
of the training line has been moved to C++.

While I'm at it I also made sure that the training widget acts more line
standard input widget, so Ctrl+Backspace now deletes the last word.

M  +1    -0    src/CMakeLists.txt
M  +3    -0    src/application.cpp
A  +330  -0    src/declarativeitems/traininglinecore.cpp     [License: GPL (v2+)]
A  +73   -0    src/declarativeitems/traininglinecore.h     [License: GPL (v2+)]
M  +34   -125  src/qml/TrainingLine.qml
M  +1    -0    src/qml/TrainingScreen.qml
M  +25   -6    src/qml/TrainingWidget.qml