mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-16 15:14:17 +00:00
quartz: add a special case to GtkIMContextSimply for entering '"'
Turn dead_doubleacute plus space into '"' and not into a double acute because that's the way to enter double quotes on the US-International keyboard layout.
This commit is contained in:
parent
b738cf85d9
commit
71164e57b9
@ -337,6 +337,38 @@ check_win32_special_case_after_compact_match (GtkIMContextSimple *context_sim
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GDK_WINDOWING_QUARTZ
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
check_quartz_special_cases (GtkIMContextSimple *context_simple,
|
||||||
|
gint n_compose)
|
||||||
|
{
|
||||||
|
if (n_compose == 2 &&
|
||||||
|
context_simple->compose_buffer[1] == GDK_space)
|
||||||
|
{
|
||||||
|
gunichar value = 0;
|
||||||
|
|
||||||
|
switch (context_simple->compose_buffer[0])
|
||||||
|
{
|
||||||
|
case GDK_dead_doubleacute:
|
||||||
|
value = '"'; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value > 0)
|
||||||
|
{
|
||||||
|
gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
|
||||||
|
context_simple->compose_buffer[0] = 0;
|
||||||
|
|
||||||
|
GTK_NOTE (MISC, g_print ("quartz: U+%04X\n", value));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
check_compact_table (GtkIMContextSimple *context_simple,
|
check_compact_table (GtkIMContextSimple *context_simple,
|
||||||
const GtkComposeTableCompact *table,
|
const GtkComposeTableCompact *table,
|
||||||
@ -1026,6 +1058,11 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GDK_WINDOWING_QUARTZ
|
||||||
|
if (check_quartz_special_cases (context_simple, n_compose))
|
||||||
|
return TRUE;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (check_compact_table (context_simple, >k_compose_table_compact, n_compose))
|
if (check_compact_table (context_simple, >k_compose_table_compact, n_compose))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user