changeset 76038:82a0ad25cc0d

(WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros. [USE_MAC_TSM] (mac_handle_text_input_event): Remove unused variable `mapped_modifiers'. (XTread_socket) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1020]: Use Keyboard Layout Services routines to get current Unicode keyboard layout.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Wed, 21 Feb 2007 08:27:50 +0000
parents 8d8a07855d24
children 7765d3cb6a48
files src/macterm.c
diffstat 1 files changed, 16 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/macterm.c	Wed Feb 21 04:38:39 2007 +0000
+++ b/src/macterm.c	Wed Feb 21 08:27:50 2007 +0000
@@ -8791,9 +8791,6 @@
 #define M_APPLE 234
 #define I_ABOUT 1
 
-#define WINDOW_RESOURCE 128
-#define TERM_WINDOW_RESOURCE 129
-
 #define DEFAULT_NUM_COLS 80
 
 #define MIN_DOC_SIZE 64
@@ -10120,7 +10117,7 @@
     case kEventTextInputUnicodeForKeyEvent:
       {
 	EventRef kbd_event;
-	UInt32 actual_size, modifiers, mapped_modifiers;
+	UInt32 actual_size, modifiers;
 
 	err = GetEventParameter (event, kEventParamTextInputSendKeyboardEvent,
 				 typeEventRef, NULL, sizeof (EventRef), NULL,
@@ -11165,6 +11162,16 @@
 		/* translate the keycode back to determine the
 		   original key */
 #ifdef MAC_OSX
+		UCKeyboardLayout *uchr_ptr = NULL;
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
+		OSStatus err;
+		KeyboardLayoutRef layout;
+
+		err = KLGetCurrentKeyboardLayout (&layout);
+		if (err == noErr)
+		  KLGetKeyboardLayoutProperty (layout, kKLuchrData,
+					       (const void **) &uchr_ptr);
+#else
 		static SInt16 last_key_layout_id = 0;
 		static Handle uchr_handle = (Handle)-1;
 		SInt16 current_key_layout_id =
@@ -11176,8 +11183,11 @@
 		    uchr_handle = GetResource ('uchr', current_key_layout_id);
 		    last_key_layout_id = current_key_layout_id;
 		  }
-
 		if (uchr_handle)
+		  uchr_ptr = (UCKeyboardLayout *)*uchr_handle;
+#endif
+
+		if (uchr_ptr)
 		  {
 		    OSStatus status;
 		    UInt16 key_action = er.what - keyDown;
@@ -11188,7 +11198,7 @@
 		    UniChar code;
 		    UniCharCount actual_length;
 
-		    status = UCKeyTranslate ((UCKeyboardLayout *)*uchr_handle,
+		    status = UCKeyTranslate (uchr_ptr,
 					     keycode, key_action,
 					     modifier_key_state,
 					     keyboard_type,