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.
This commit is contained in:
Tor Lillqvist 2005-01-23 00:20:12 +00:00 committed by Tor Lillqvist
parent 017f6ed282
commit 26629f7a93
5 changed files with 47 additions and 15 deletions

View 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>

View 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>

View 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>

View 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" : "")));
}

View 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 */