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. (cherry picked from commit 71164e57b9b999f07a613806058ee87b9cbf882d)
This commit is contained in:
		
				
					committed by
					
						
						Michael Natterer
					
				
			
			
				
	
			
			
			
						parent
						
							cc057d5c4e
						
					
				
				
					commit
					c1cfcd03a5
				
			@ -364,6 +364,40 @@ 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)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  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
 | 
					static gboolean
 | 
				
			||||||
check_compact_table (GtkIMContextSimple           *context_simple,
 | 
					check_compact_table (GtkIMContextSimple           *context_simple,
 | 
				
			||||||
                     const GtkComposeTableCompact *table,
 | 
					                     const GtkComposeTableCompact *table,
 | 
				
			||||||
@ -1068,6 +1102,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;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user