#endif
+#ifdef GDK_WINDOWING_QUARTZ
+
+static gboolean
+check_quartz_special_cases (GtkIMContextSimple *context_simple,
+ gint n_compose)
+{
+ GtkIMContextSimplePrivate *priv = context_simple->priv;
+
+ if (n_compose == 2 &&
+ priv->compose_buffer[1] == GDK_KEY_space)
+ {
+ gunichar value = 0;
+
+ switch (priv->compose_buffer[0])
+ {
+ case GDK_KEY_dead_doubleacute:
+ value = '"'; break;
+ }
+
+ if (value > 0)
+ {
+ gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
+ priv->compose_buffer[0] = 0;
+
+ GTK_NOTE (MISC, g_print ("quartz: U+%04X\n", value));
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+#endif
+
static gboolean
check_compact_table (GtkIMContextSimple *context_simple,
const GtkComposeTableCompact *table,
return TRUE;
#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))
return TRUE;