From: Tor Lillqvist Date: Sun, 23 Jan 2005 00:20:12 +0000 (+0000) Subject: Handle Greek tonos dead accent key. (#164859, reported and fix verified by X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=26629f7a935e81f63a03ff3ba71be1208b789f5e;p=~andy%2Fgtk Handle Greek tonos dead accent key. (#164859, reported and fix verified by 2005-01-23 Tor Lillqvist * gdk/win32/gdkkeys-win32.c (update_keymap): Handle Greek tonos dead accent key. (#164859, reported and fix verified by Daniel Atallah.) * gtk/gtkimcontextsimple.c (gtk_compose_seqs): Handle GDK_Greek_accentdieresis (tonos and dialytika) combining with iota and upsilon. --- diff --git a/ChangeLog b/ChangeLog index c5f5c8c71..feaed22ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,20 @@ 2005-01-23 Tor Lillqvist + * gdk/win32/gdkkeys-win32.c (update_keymap): Handle Greek tonos + dead accent key. (#164859, reported and fix verified by Daniel + Atallah.) + + * gtk/gtkimcontextsimple.c (gtk_compose_seqs): Handle + GDK_Greek_accentdieresis (tonos and dialytika) combining with iota + and upsilon. + * gtk/gtkfilesystemwin32.c (gtk_file_system_win32_volume_get_display_name): Don't call GetVolumeInformation() for network drives. They might be disconnected, and calling GetVolumeInformation() will then - cause long delays. (#164448) It seems to be very hard to reliably - find out whether a network drive is connected or not, so it's - easier to just not try getting the volume name for them. See the - bug report for discussion. + cause long delays. (#164448, reported by Dave Neary.) It seems to + be very hard to reliably find out whether a network drive is + connected or not, so it's easier to just not try getting the + volume name for them. See the bug report for discussion. 2005-01-21 Matthias Clasen diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c5f5c8c71..feaed22ac 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,12 +1,20 @@ 2005-01-23 Tor Lillqvist + * gdk/win32/gdkkeys-win32.c (update_keymap): Handle Greek tonos + dead accent key. (#164859, reported and fix verified by Daniel + Atallah.) + + * gtk/gtkimcontextsimple.c (gtk_compose_seqs): Handle + GDK_Greek_accentdieresis (tonos and dialytika) combining with iota + and upsilon. + * gtk/gtkfilesystemwin32.c (gtk_file_system_win32_volume_get_display_name): Don't call GetVolumeInformation() for network drives. They might be disconnected, and calling GetVolumeInformation() will then - cause long delays. (#164448) It seems to be very hard to reliably - find out whether a network drive is connected or not, so it's - easier to just not try getting the volume name for them. See the - bug report for discussion. + cause long delays. (#164448, reported by Dave Neary.) It seems to + be very hard to reliably find out whether a network drive is + connected or not, so it's easier to just not try getting the + volume name for them. See the bug report for discussion. 2005-01-21 Matthias Clasen diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c5f5c8c71..feaed22ac 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,12 +1,20 @@ 2005-01-23 Tor Lillqvist + * gdk/win32/gdkkeys-win32.c (update_keymap): Handle Greek tonos + dead accent key. (#164859, reported and fix verified by Daniel + Atallah.) + + * gtk/gtkimcontextsimple.c (gtk_compose_seqs): Handle + GDK_Greek_accentdieresis (tonos and dialytika) combining with iota + and upsilon. + * gtk/gtkfilesystemwin32.c (gtk_file_system_win32_volume_get_display_name): Don't call GetVolumeInformation() for network drives. They might be disconnected, and calling GetVolumeInformation() will then - cause long delays. (#164448) It seems to be very hard to reliably - find out whether a network drive is connected or not, so it's - easier to just not try getting the volume name for them. See the - bug report for discussion. + cause long delays. (#164448, reported by Dave Neary.) It seems to + be very hard to reliably find out whether a network drive is + connected or not, so it's easier to just not try getting the + volume name for them. See the bug report for discussion. 2005-01-21 Matthias Clasen diff --git a/gdk/win32/gdkkeys-win32.c b/gdk/win32/gdkkeys-win32.c index b61dd7cc8..8997b7a0f 100644 --- a/gdk/win32/gdkkeys-win32.c +++ b/gdk/win32/gdkkeys-win32.c @@ -274,7 +274,7 @@ update_keymap (void) gint k = ToAsciiEx (vk, scancode, key_state, (LPWORD) chars, 0, _gdk_input_locale); #if 0 - g_print ("ToAsciiEx(%02x: %d: %d: %d, %02x%02x\n", + g_print ("ToAsciiEx(%02x, %d: %d): %d, %02x%02x\n", vk, scancode, shift, k, chars[0], chars[1]); #endif if (k == 1) @@ -292,6 +292,8 @@ update_keymap (void) } else if (k == -1) { + guint keysym; + MultiByteToWideChar (_gdk_input_codepage, 0, chars, 1, wcs, 1); @@ -315,7 +317,8 @@ update_keymap (void) _gdk_input_locale); /* Use dead keysyms instead of "undead" ones */ - switch (gdk_unicode_to_keyval (wcs[0])) + keysym = gdk_unicode_to_keyval (wcs[0]); + switch (keysym) { case '"': /* 0x022 */ *ksymp = GDK_dead_diaeresis; break; @@ -347,13 +350,16 @@ update_keymap (void) *ksymp = GDK_dead_doubleacute; break; case GDK_abovedot: /* 0x1ff */ *ksymp = GDK_dead_abovedot; break; + case 0x1000384: /* Greek tonos */ + *ksymp = GDK_dead_acute; break; case GDK_Greek_accentdieresis: /* 0x7ae */ *ksymp = GDK_Greek_accentdieresis; break; default: GDK_NOTE (EVENTS, - g_print ("Unhandled dead key cp:%d vk:%02x, sc:%x, ch:%02x%s%s\n", + g_print ("Unhandled dead key cp:%d vk:%02x sc:%x ch:%02x wc:%04x keysym:%04x%s%s\n", _gdk_input_codepage, vk, scancode, chars[0], + wcs[0], keysym, (shift&0x1 ? " shift" : ""), (shift&0x2 ? " altgr" : ""))); } diff --git a/gtk/gtkimcontextsimple.c b/gtk/gtkimcontextsimple.c index 00809ec90..38a745756 100644 --- a/gtk/gtkimcontextsimple.c +++ b/gtk/gtkimcontextsimple.c @@ -58,6 +58,8 @@ struct _GtkComposeTable */ static const guint16 gtk_compose_seqs[] = { + GDK_Greek_accentdieresis, GDK_Greek_iota, 0, 0, 0, 0x0390, /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ + GDK_Greek_accentdieresis, GDK_Greek_upsilon, 0, 0, 0, 0x03B0, /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ GDK_dead_grave, GDK_space, 0, 0, 0, 0x0060, /* GRAVE_ACCENT */ GDK_dead_grave, GDK_A, 0, 0, 0, 0x00C0, /* LATIN_CAPITAL_LETTER_A_WITH_GRAVE */ GDK_dead_grave, GDK_E, 0, 0, 0, 0x00C8, /* LATIN_CAPITAL_LETTER_E_WITH_GRAVE */