Popup Menu Items for an ENTRY override to remove Unicode and IME

What/where are the popup menu items determined when a user selects (highlights) a string in an Entry or Text field? I have done an IDE redirection search for the choice text within all files, but come up empty. My preference would be to NOT display the following choices when not appropriate:

  • Right to left reading order
  • Show Unicode control characters
  • Insert Unicode control character

Might be simplest to just ALRT MouseRight and present your own popup. I had a class that I used for C6.

The default popups are OS generated, I’m pretty sure.

1 Like

No problem for the long delay in getting a response. :slightly_smiling_face:

When the field is read only, seems like the choices should be limited. I can see a window manager extension forming - hopefully among quicker neurons than mine.

This is the usual workaround for a Password field since SV prevented paste.

You also want to Alert and catch the AppsKey which is right-click via the keyboard. On mine its next to the right Ctrl key.
image

AppsKey   EQUATE(005DH)   !Applications/Context Menu Key
1 Like

Never would have occurred to me. Does not exist on my life-saving, addiction keyboard.

I haven’t seen that keyboard before
and I can’t find ergoLogic with a quick search
do you have more info about it ?

I found this:
ergoLogic (kbd.news)

Are you talking the IME – Input Method Editor
if so, I wrote a class ctSuppressIME

ctSupressIME - clarion class suppress the right click IME menu appearing on Entry,Spin,Combo and Text controls (github.com)

Originally from KeyTronic and pricey (~$250), I found Ergologic as a generic substitute. At one time there was a cult of folks addicted to those keyboards because of tendinitis issues. After my original KeyTronic failed, I purchased the remaining stock (5) from a tiny shop in California for $15 each. I am down to my last one and hoping it makes it to retirement.

Will be taking a look at your suppress class. Very much appreciated.

BTW, I never looked, but I can’t help but wonder if would be better to suppress the IME popup window via a WndProc.

Possibly look for certain messages like WM_IME_NOTIFY

WM_IME_NOTIFY message (Winuser.h) - Win32 apps | Microsoft Learn

Very cool little Class Mark.

I had a need for it yesterday and it worked perfectly.

However, FYI, the file name for ctSupressIME.clw is misspelled based on the INC file.

Should be ctSuppressIME.clw.

Also in UsageExample.CLW the line SupressIME.INIT() needs 2 P’s as it is declared SuppressIME ctSuppressIME with 2 P’s.


I can’t make this work. The class comments could use more explanation…
What is this supposed to do?
How does it need to be coded?
How does it make it happen?

I declared your Class in the Procedure and called .Init() after Open(Window).
In my testing it seems that the ENTRY must have ALRT(AppsKey) for the Class to handle it? That is not mentioned anyplace I see.
It does not handle Mouse Right?
It does its trick by creating a CHECK control and giving it focus for the Popup ?

When I Right Click I see the normal Menu and the ENTRY remains enabled (because its not handled by the class as shown in the Debug):

I alerted the Apps Key and when I press that I see the ENTRY Disable, focus moves to “Result” the next field. Te Popup still has the normal menu with IME so maybe the CHECK did not get Focus.

The debug shows that the class is processing that control.

I attached my code where I added typical Debug i.e. not using the Assert() hook.

ctSuppressIME_withDebug.zip (28.1 KB)

My test was in the latest 11.1.13815 so it is possible it broke your code. I just tested in 11.0.13505 and it worked the same. I also took READONLY off the following field “Result”