Commit 26629f7a authored by Tor Lillqvist's avatar Tor Lillqvist Committed by Tor Lillqvist

Handle Greek tonos dead accent key. (#164859, reported and fix verified by

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.
parent 017f6ed2
2005-01-23 Tor Lillqvist <tml@novell.com> 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): * gtk/gtkfilesystemwin32.c (gtk_file_system_win32_volume_get_display_name):
Don't call GetVolumeInformation() for network drives. They might Don't call GetVolumeInformation() for network drives. They might
be disconnected, and calling GetVolumeInformation() will then be disconnected, and calling GetVolumeInformation() will then
cause long delays. (#164448) It seems to be very hard to reliably cause long delays. (#164448, reported by Dave Neary.) It seems to
find out whether a network drive is connected or not, so it's be very hard to reliably find out whether a network drive is
easier to just not try getting the volume name for them. See the connected or not, so it's easier to just not try getting the
bug report for discussion. volume name for them. See the bug report for discussion.
2005-01-21 Matthias Clasen <mclasen@redhat.com> 2005-01-21 Matthias Clasen <mclasen@redhat.com>
......
2005-01-23 Tor Lillqvist <tml@novell.com> 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): * gtk/gtkfilesystemwin32.c (gtk_file_system_win32_volume_get_display_name):
Don't call GetVolumeInformation() for network drives. They might Don't call GetVolumeInformation() for network drives. They might
be disconnected, and calling GetVolumeInformation() will then be disconnected, and calling GetVolumeInformation() will then
cause long delays. (#164448) It seems to be very hard to reliably cause long delays. (#164448, reported by Dave Neary.) It seems to
find out whether a network drive is connected or not, so it's be very hard to reliably find out whether a network drive is
easier to just not try getting the volume name for them. See the connected or not, so it's easier to just not try getting the
bug report for discussion. volume name for them. See the bug report for discussion.
2005-01-21 Matthias Clasen <mclasen@redhat.com> 2005-01-21 Matthias Clasen <mclasen@redhat.com>
......
2005-01-23 Tor Lillqvist <tml@novell.com> 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): * gtk/gtkfilesystemwin32.c (gtk_file_system_win32_volume_get_display_name):
Don't call GetVolumeInformation() for network drives. They might Don't call GetVolumeInformation() for network drives. They might
be disconnected, and calling GetVolumeInformation() will then be disconnected, and calling GetVolumeInformation() will then
cause long delays. (#164448) It seems to be very hard to reliably cause long delays. (#164448, reported by Dave Neary.) It seems to
find out whether a network drive is connected or not, so it's be very hard to reliably find out whether a network drive is
easier to just not try getting the volume name for them. See the connected or not, so it's easier to just not try getting the
bug report for discussion. volume name for them. See the bug report for discussion.
2005-01-21 Matthias Clasen <mclasen@redhat.com> 2005-01-21 Matthias Clasen <mclasen@redhat.com>
......
...@@ -274,7 +274,7 @@ update_keymap (void) ...@@ -274,7 +274,7 @@ update_keymap (void)
gint k = ToAsciiEx (vk, scancode, key_state, gint k = ToAsciiEx (vk, scancode, key_state,
(LPWORD) chars, 0, _gdk_input_locale); (LPWORD) chars, 0, _gdk_input_locale);
#if 0 #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]); vk, scancode, shift, k, chars[0], chars[1]);
#endif #endif
if (k == 1) if (k == 1)
...@@ -292,6 +292,8 @@ update_keymap (void) ...@@ -292,6 +292,8 @@ update_keymap (void)
} }
else if (k == -1) else if (k == -1)
{ {
guint keysym;
MultiByteToWideChar (_gdk_input_codepage, 0, MultiByteToWideChar (_gdk_input_codepage, 0,
chars, 1, wcs, 1); chars, 1, wcs, 1);
...@@ -315,7 +317,8 @@ update_keymap (void) ...@@ -315,7 +317,8 @@ update_keymap (void)
_gdk_input_locale); _gdk_input_locale);
/* Use dead keysyms instead of "undead" ones */ /* 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 */ case '"': /* 0x022 */
*ksymp = GDK_dead_diaeresis; break; *ksymp = GDK_dead_diaeresis; break;
...@@ -347,13 +350,16 @@ update_keymap (void) ...@@ -347,13 +350,16 @@ update_keymap (void)
*ksymp = GDK_dead_doubleacute; break; *ksymp = GDK_dead_doubleacute; break;
case GDK_abovedot: /* 0x1ff */ case GDK_abovedot: /* 0x1ff */
*ksymp = GDK_dead_abovedot; break; *ksymp = GDK_dead_abovedot; break;
case 0x1000384: /* Greek tonos */
*ksymp = GDK_dead_acute; break;
case GDK_Greek_accentdieresis: /* 0x7ae */ case GDK_Greek_accentdieresis: /* 0x7ae */
*ksymp = GDK_Greek_accentdieresis; break; *ksymp = GDK_Greek_accentdieresis; break;
default: default:
GDK_NOTE (EVENTS, 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, _gdk_input_codepage, vk,
scancode, chars[0], scancode, chars[0],
wcs[0], keysym,
(shift&0x1 ? " shift" : ""), (shift&0x1 ? " shift" : ""),
(shift&0x2 ? " altgr" : ""))); (shift&0x2 ? " altgr" : "")));
} }
......
...@@ -58,6 +58,8 @@ struct _GtkComposeTable ...@@ -58,6 +58,8 @@ struct _GtkComposeTable
*/ */
static const guint16 gtk_compose_seqs[] = { 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_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_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 */ GDK_dead_grave, GDK_E, 0, 0, 0, 0x00C8, /* LATIN_CAPITAL_LETTER_E_WITH_GRAVE */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment