Allowing characters between 0x80 and 0x9f to be enetered into Fl_Input_ derived widgets. Although these were not defined in the western ISO code page, they seem to be implemented in most X11 drivers now as MSWindows Latin-1. For example, the Euro symbol is at 0x80. It should now be possible to enter the Euro sign and other chars in this range correctly. Please verify.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4971 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
1184d7eee6
commit
e682ec6339
@ -90,12 +90,13 @@ const char* Fl_Input_::expand(const char* p, char* buf) const {
|
||||
*o++ = ' ';
|
||||
#else
|
||||
// in ISO 8859-1, undefined characters are rendered as octal
|
||||
} else if (c >= 128 && c < 0xA0) {
|
||||
// this is commented out since most X11 seems to use MSWindows Latin-1
|
||||
//} else if (c >= 128 && c < 0xA0) {
|
||||
// these codes are not defined in ISO code, so we output the octal code instead
|
||||
*o++ = '\\';
|
||||
*o++ = ((c>>6)&0x03) + '0';
|
||||
*o++ = ((c>>3)&0x07) + '0';
|
||||
*o++ = (c&0x07) + '0';
|
||||
// *o++ = '\\';
|
||||
// *o++ = ((c>>6)&0x03) + '0';
|
||||
// *o++ = ((c>>3)&0x07) + '0';
|
||||
// *o++ = (c&0x07) + '0';
|
||||
} else if (c == 0xA0) { // nbsp
|
||||
*o++ = ' ';
|
||||
#endif
|
||||
@ -124,9 +125,10 @@ double Fl_Input_::expandpos(
|
||||
#ifdef __APPLE__
|
||||
// in MacRoman, all characters are defined
|
||||
#else
|
||||
} else if (c >= 128 && c < 0xA0) {
|
||||
// in Windows Latin-1 all characters are defined
|
||||
//} else if (c >= 128 && c < 0xA0) {
|
||||
// these codes are not defined in ISO code, so we output the octal code instead
|
||||
n += 4;
|
||||
// n += 4;
|
||||
#endif
|
||||
} else {
|
||||
n++;
|
||||
|
||||
@ -58,7 +58,8 @@ int Fl::test_shortcut(int shortcut) {
|
||||
#ifdef __APPLE__
|
||||
if (v > 32 && v < 0x7f || v >= 0x80 && v <= 0xff) {
|
||||
#else
|
||||
if (v > 32 && v < 0x7f || v >= 0xa0 && v <= 0xff) {
|
||||
// most X11 use MSWindows Latin-1 if set to Western encoding, so 0x80 to 0xa0 are defined
|
||||
if (v > 32 && v < 0x7f || v >= 0x80 && v <= 0xff) {
|
||||
#endif
|
||||
if (isupper(v)) {
|
||||
shortcut |= FL_SHIFT;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user