Bugs in multi rename tool with inputting korean chars

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

sheppaul
Member
Member
Posts: 134
Joined: 2003-12-05, 07:59 UTC

Bugs in multi rename tool with inputting korean chars

Post by *sheppaul »

Hello,

The order of chars filled in "replace with" is changed if I click any spot on multi rename tool.

http://imgbox.com/1cLG9JM1
http://imgbox.com/gBsvOWD7
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Post by *gdpr deleted 6 »

What input method editor (IME) are you using, and is it one that comes with Windows or is it a 3rd-party IME?

I tested with TC 8.51a 64-bit, english Windows 7 Pro x64, Korean 2-벌식 (2-beolsik) IME with a respective keyboard and i could not reproduce the problem.
sheppaul
Member
Member
Posts: 134
Joined: 2003-12-05, 07:59 UTC

Post by *sheppaul »

I don't use any third party IME.

BTW, I'm using win 8.1 x64.

I'll try win7 if I have some time anyway.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Hmm, no idea - I'm using normal Windows edit controls.
Author of Total Commander
https://www.ghisler.com
sheppaul
Member
Member
Posts: 134
Joined: 2003-12-05, 07:59 UTC

Post by *sheppaul »

Ahh, this is only occurring with the x64 version of TCMD.

There is no problem with 32bit version.
Only using TCMD x64. :)
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

It looks like the last character is still selected when you click outside, is it true?
Author of Total Commander
https://www.ghisler.com
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Post by *gdpr deleted 6 »

ghisler(Author) wrote:It looks like the last character is still selected when you click outside, is it true?
What you see there as some kind of a black selection is the IME, it is not the text box selection (which would have the standard blue color). That means, the IME is still active on the last syllable when he clicks outside.

It would indeed be worth a try to have the last syllable finalized by pressing CRSR RIGHT after finishing Korean input before clicking outside. This should deactivate the IME on the last syllable. See whether this changes anything with regard to the issue...
sheppaul
Member
Member
Posts: 134
Joined: 2003-12-05, 07:59 UTC

Post by *sheppaul »

Oops :oops:

There was mistake. The problem occurs in 32 bit version too.

BTW, there was no problem with windows 7 x64 system.

I have no idea why this is only happening with windows 8.1 x64.

I've double checked with other win 8.1 system. :(
sheppaul
Member
Member
Posts: 134
Joined: 2003-12-05, 07:59 UTC

Post by *sheppaul »

It looks like the last character is still selected when you click outside, is it true?
Well, I'm not sure. If there is other input like 'arrow key' or 'click' inside of the input box before clicking outside, the problem does not occur.
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Post by *gdpr deleted 6 »

sheppaul wrote:Well, I'm not sure. If there is other input like 'arrow key' or 'click' inside of the input box before clicking outside, the problem does not occur.
This sounds like you have a problem with the IME which seems to screw up when the syllable has not been finalized yet. Could you please explain in detail the settings of your IME (screenshot of its properties dialog would be sufficient)? On the weekend, I'll try setting up a Win8.1 VM here with your IME settings and see whether i can reproduce your problem...
sheppaul
Member
Member
Posts: 134
Joined: 2003-12-05, 07:59 UTC

Post by *sheppaul »

I have no special IME setting though I'm actually using 3 beolsik 390. I've already tried it with 2 beolsik. Prolly you can confirm it with a default setup.
Only using TCMD x64. :)
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Post by *gdpr deleted 6 »

I can confirm and reproduce the issue on Windows 8.1 Enterprise x32 (eval version).

The problem seems to occur with most if not all textboxes (i.e. edit controls) in TC which also have combobox behaviour (they might just be simple comboboxes with CBS_DROPDOWN style, i don't know).

Simple textboxes are not affected by this issue.

As it seems, there is something particular about the implementation of these comboboxes (or textboxes with combobox/history functionality, if you want to say so) which interferes with the IME in Windows 8...
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Hmm, no idea - TC 32-bit and 64-bit use completely different implementations (TC 32-bit is written in Delphi 2, TC 64-bit is written in Lazarus/Free Pascal).

Any idea of what could be causing this?
Author of Total Commander
https://www.ghisler.com
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Post by *gdpr deleted 6 »

ghisler(Author) wrote:Any idea of what could be causing this?
...not really.

I made a quick test with Delphi XE6 (trial version) to check whether its TComboBox control is the cause of this problem.

Well, TComboBox of Delphi XE6 does not exhibit the problem.

UPDATE: I was able to get Delphi 2 and test it as well as Lazarus. See my follow-up post below.

Unfortunately, i do not know where i can get a free/trial copy of Delphi 2 for testing. I am aware that the TComboBox implementation of Delphi 2 is possibly not identical to the TComboBox implementation of Delphi XE6. Well, i also do not know whether TC's code is actually using TComboBox or another control...

FYI, the quick test i did encompassed just doing the following:
  1. 1. Installing Delphi XE6 on a VM with english Windows 7. No Korean IME installed (not sure whether this is relevant, but it is perhaps better to avoid possible weird side-effects of a non-English build environment -- call me paranoid).

    2. Creating a new "VCL Forms Application" project.

    3. Adding a TComboBox and a TCheckBox (the checkbox has no other purpose than being something that can take the input focus away from the combobox when clicking on it. One could also use a text edit field or button instead).

    4. Adding an event handler for the OnExit event of the TComboBox. When the input focus is lost by the combobox, the OnExit event handler is called. The event handler adds the text from the combobox text edit field into the combobox item collection, like this:

    Code: Select all

    procedure TForm1.ComboBox1Exit(Sender: TObject);
    begin
        ComboBox1.Items.Add(ComboBox1.Text);
    end;
    
    5. Running the built test executable on the Win8 VM (using Korean IME).
When time permits, I will also do the very same quick test with the current version of Lazarus...
Last edited by gdpr deleted 6 on 2014-08-12, 18:09 UTC, edited 1 time in total.
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Post by *gdpr deleted 6 »

ghisler(Author) wrote:Any idea of what could be causing this?
Okay, i installed Lazarus-1.2.4-fpc-2.6.4 and also managed to get hold of Delphi 2 and tried the same test as outlined in my previous post with both.

In Lazarus, the TComboBox of the small 32-bit test application i built was indeed affected by the issue.

It is noteworthy that the TComboBox of Delphi XE6 works properly with Windows 8 IME while the TComboBox of Lazarus/Free Pascal doesn't. (I am not sure why Lazarus has those problems. A quick search in their bug tracker and through Google did not yield any result or workaround regarding this issue, unfortunately.)

Another story entirely are Delphi 2's controls -- neither TComboBox nor TEdit seem to be Unicode-aware out of the box. I could not manage to make those controls render Korean characters, and i do not really have knowledge about Delphi 2 to judge if and how Unicode support could be enabled for these controls. I do not know how you do it in your Delphi-2-builds...
Post Reply