]> Pileus Git - ~andy/gtk/commitdiff
Handle Greek tonos dead accent key. (#164859, reported and fix verified by
authorTor Lillqvist <tml@novell.com>
Sun, 23 Jan 2005 00:20:12 +0000 (00:20 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Sun, 23 Jan 2005 00:20:12 +0000 (00:20 +0000)
2005-01-23  Tor Lillqvist  <tml@novell.com>

* 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.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gdk/win32/gdkkeys-win32.c
gtk/gtkimcontextsimple.c

index c5f5c8c71e0a28a564c91cb3cc7d75739bf2a970..feaed22ace5e1f77ed515dc5d79be2cfaf0d0fb4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,20 @@
 2005-01-23  Tor Lillqvist  <tml@novell.com>
 
+       * 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  <mclasen@redhat.com>
 
index c5f5c8c71e0a28a564c91cb3cc7d75739bf2a970..feaed22ace5e1f77ed515dc5d79be2cfaf0d0fb4 100644 (file)
@@ -1,12 +1,20 @@
 2005-01-23  Tor Lillqvist  <tml@novell.com>
 
+       * 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  <mclasen@redhat.com>
 
index c5f5c8c71e0a28a564c91cb3cc7d75739bf2a970..feaed22ace5e1f77ed515dc5d79be2cfaf0d0fb4 100644 (file)
@@ -1,12 +1,20 @@
 2005-01-23  Tor Lillqvist  <tml@novell.com>
 
+       * 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  <mclasen@redhat.com>
 
index b61dd7cc8fb391ce0e28679ebe2a216a697b43e7..8997b7a0f33e772e051187f925674ab56a8c4092 100644 (file)
@@ -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" : "")));
                        }
index 00809ec90a0f5570905037f18fd67397a25aadc4..38a745756b8f291bd379eb68173561586b8ffc20 100644 (file)
@@ -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 */