Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(developer): use U+0001 for deadkey markers in the debugger #13336

Open
wants to merge 1 commit into
base: fix/developer/13292-handle-line-breaks-in-debugger
Choose a base branch
from

Conversation

mcdurdin
Copy link
Member

@mcdurdin mcdurdin commented Feb 24, 2025

Previously, we used U+FFFC as a marker in the debugger (for deadkeys and LDML keyboard markers), which displayed as the letters OBJ in a small dotted square. However, we switched the underlying component to RichEdit, in order to better support rendering of many scripts (EDIT has some problems). The RichEdit control silently converts U+FFFC to U+0020. I switched to U+0001 as this is handled better, but has an unfortunate missing-glyph marker.

In the future, it would be better to use a non-character marker (leveraging RichEdit), but this is a much more complex change, and this fix at least matches previous functionality.

Fixes: #13293

User Testing

TEST_DEADKEYS: In the keyboard debugger, select a keyboard that includes deadkeys (such as sil_bengali_phonetic). Try typing keys that generate deadkeys, and verify that they display as a square box and are highlighted in the character grid below. Make sure that the deadkey rules function correctly e.g. type qa in sil_bengali_phonetic. Also try backspacing a deadkey -- both the deadkey and the preceding character should be deleted with a single keystroke (as normally, deadkeys are not visible to the end user).

Previously, we used U+FFFC as a marker in the debugger (for deadkeys and
LDML keyboard markers), which displayed as the letters OBJ in a small
dotted square. However, we switched the underlying component to
RichEdit, in order to better support rendering of many scripts (EDIT has
some problems). The RichEdit control silently converts U+FFFC to U+0020.
I switched to U+0001 as this is handled better, but has an unfortunate
missing-glyph marker.

In the future, it would be better to use a non-character marker
(leveraging RichEdit), but this is a much more complex change, and this
fix at least matches previous functionality.

Fixes: #13293
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Feb 24, 2025

User Test Results

Test specification and instructions

Test Artifacts

@keymanapp-test-bot keymanapp-test-bot bot added the user-test-required User tests have not been completed label Feb 24, 2025
@keymanapp-test-bot keymanapp-test-bot bot added this to the B18S2 milestone Feb 24, 2025
@keymanapp keymanapp deleted a comment from keymanapp-test-bot bot Feb 24, 2025
@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-missing User tests have not yet been defined for the PR label Feb 24, 2025
@@ -31,6 +31,7 @@ inherited frmLdmlKeyboardDebug: TfrmLdmlKeyboardDebug
Font.Name = 'Arial'
Font.Style = []
ParentFont = False
PlainText = True
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this so RichEdit displays U+0001?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this doesn't have any direct impact. It was inserted automatically by the Delphi development environment; it's probably not important but it matches what we specified for the component at design time.

Copy link
Contributor

@darcywong00 darcywong00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@dinakaranr
Copy link

dinakaranr commented Feb 26, 2025

Test Results

I tested this issue with the attached KeymanDeveloper"18.0.198-beta-test-13336" build(25/02/2025) on Windows 10 and 11. Here I am sharing my observation.

  • TEST_DEADKEYS (Passed):
  1. Install the KeymanDeveloper"18.0.198-beta-test-13336" PR build on 24/02/2025.
  2. Open the "sil_bengali_phonetic" keyboard project loaded in the keyman developer.
  3. Click the "*.knm" link and then a new tab opens.
  4. Click on the "Build" tab.
  5. Compile the keyboard by clicking the "Compile Keyboard" button.
  6. Verified that the compile success message appeared.
  7. Open the debugger mode by clicking the "Start Debugging" button.
  8. A Debugger window appeared.
  9. Press the q letter on the keyboard.
  10. Verified that the square box appeared.
  11. Verified that the grid box is showing the "deadkey" (Red color)
  12. Press the "backspace" appeared.
  13. Verified that the "deadkey" was removed in the debugger window.
  14. Verified that the "deadkey" was removed from the grid box.
    It works well. Thank you.

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

bug(developer): dk(n) inserts a space into the debugger instead of a deadkey marker
4 participants