pq27192 TextField does not scroll in v4.5 on Korean
----------------------------------------------------------------------------------------------------

Affected Platforms:

All


Affected Features:

Base Smalltalk

Prerequisites:


v4.5a


Symptom:

TextField does not scroll in v4.5 on Korean


Workaround: 

1. We issued a patch which explicitly disabled horizontal scrolling on
some DBCS platforms. This was to work around a Windows defect. When
ES_AUTOHSCROLL is used in conjunction with EM_LIMITTEXT, the IME draws
garbage and occasionally segment faults.

2. The customer can test to see if his version of Windows still has this
problem. Start a clean image (without the 1EW4OF4 patch installed), set
the maxLength to 2, type a single byte character, then type a double byte
character. If you end up with garbage in the IME or a segment fault, you
know that Microsoft hasn't fixed the problem yet. If so, it is dangerous
to have scrolling turned on.

3. If you do not get garbage or a segment fault, try commenting out the
lines that clear the hScrollBits in 1EW4OF4 to see if the 1EW4OF4 either
causes the problem, or calls code that enabled the problem. That is,
comment out the following line:

    OS getACP == 949 ifTrue: [hScrollBits := 0].

from these methods:
  OSTextEdit>>#setBasicStyle:
  OSTextEdit>>#setWordWrapStyle:

4. If this still works, then it could be that there is a patch for
Windows which you have but we do not. In this case, you will need to
receive a new patch from us. Please let us know as soon as possible. If
this does not work, I'm afraid the defect still exists in Windows, and
you would run into the same problem with C or C++ code.

5. Although disabling scrolling is a general solution to the problem, I
recognize that your maxLength is something larger than most people would
realistically type. The developers have not recommended it, but since you
specify such a large maxLimit you might be able to get away with
commenting out the lines above. Be aware that this is not officially
supported, though - and if you use maxLength with a smaller limit in
other places, you can run into segment faults and garbage in the IME.