aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu2007-06-28 10:09:00 +0000
committerYAMAMOTO Mitsuharu2007-06-28 10:09:00 +0000
commita56dd283e47fddebd754f94137e379ae85622cbe (patch)
tree76ec1e3135055534a53f4a223f0e8af52330b28c /src
parentdd8d430f9ca7c54e21ee2e529fd237fbb0ec0739 (diff)
downloademacs-a56dd283e47fddebd754f94137e379ae85622cbe.tar.gz
emacs-a56dd283e47fddebd754f94137e379ae85622cbe.zip
[USE_MAC_TSM] (mac_handle_text_input_event):
Check WINDOWP before using XWINDOW. Consolidate return statements.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/macterm.c44
2 files changed, 30 insertions, 19 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0659b8499b0..c66a1ea6dd9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12007-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
4 Check WINDOWP before using XWINDOW. Consolidate return statements.
5
12007-06-27 Richard Stallman <rms@gnu.org> 62007-06-27 Richard Stallman <rms@gnu.org>
2 7
3 * fileio.c (syms_of_fileio) <after-insert-file-functions>: Doc fix. 8 * fileio.c (syms_of_fileio) <after-insert-file-functions>: Doc fix.
diff --git a/src/macterm.c b/src/macterm.c
index 52709c757f2..906f946388c 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -11164,7 +11164,7 @@ mac_handle_text_input_event (next_handler, event, data)
11164 EventRef event; 11164 EventRef event;
11165 void *data; 11165 void *data;
11166{ 11166{
11167 OSStatus result, err = noErr; 11167 OSStatus err, result;
11168 Lisp_Object id_key = Qnil; 11168 Lisp_Object id_key = Qnil;
11169 int num_params; 11169 int num_params;
11170 const EventParamName *names; 11170 const EventParamName *names;
@@ -11225,6 +11225,7 @@ mac_handle_text_input_event (next_handler, event, data)
11225 SetEventParameter (event, EVENT_PARAM_TEXT_INPUT_SEQUENCE_NUMBER, 11225 SetEventParameter (event, EVENT_PARAM_TEXT_INPUT_SEQUENCE_NUMBER,
11226 typeUInt32, sizeof (UInt32), &seqno_uaia); 11226 typeUInt32, sizeof (UInt32), &seqno_uaia);
11227 seqno_uaia++; 11227 seqno_uaia++;
11228 result = noErr;
11228 break; 11229 break;
11229 11230
11230 case kEventTextInputUnicodeForKeyEvent: 11231 case kEventTextInputUnicodeForKeyEvent:
@@ -11242,7 +11243,7 @@ mac_handle_text_input_event (next_handler, event, data)
11242 if (err == noErr && mac_mapped_modifiers (modifiers)) 11243 if (err == noErr && mac_mapped_modifiers (modifiers))
11243 /* There're mapped modifier keys. Process it in 11244 /* There're mapped modifier keys. Process it in
11244 do_keystroke. */ 11245 do_keystroke. */
11245 return eventNotHandledErr; 11246 break;
11246 if (err == noErr) 11247 if (err == noErr)
11247 err = GetEventParameter (kbd_event, kEventParamKeyUnicodes, 11248 err = GetEventParameter (kbd_event, kEventParamKeyUnicodes,
11248 typeUnicodeText, NULL, 0, &actual_size, 11249 typeUnicodeText, NULL, 0, &actual_size,
@@ -11281,16 +11282,20 @@ mac_handle_text_input_event (next_handler, event, data)
11281 XSETFRAME (read_socket_inev->frame_or_window, f); 11282 XSETFRAME (read_socket_inev->frame_or_window, f);
11282 } 11283 }
11283 } 11284 }
11284 return eventNotHandledErr; 11285 break;
11285 } 11286 }
11286 } 11287 }
11288 if (err == noErr)
11289 {
11290 /* Non-ASCII keystrokes without mapped modifiers are
11291 processed at the Lisp level. */
11292 id_key = Qunicode_for_key_event;
11293 num_params = sizeof (names_ufke) / sizeof (names_ufke[0]);
11294 names = names_ufke;
11295 types = types_ufke;
11296 result = noErr;
11297 }
11287 } 11298 }
11288 /* Non-ASCII keystrokes without mapped modifiers are processed
11289 at the Lisp level. */
11290 id_key = Qunicode_for_key_event;
11291 num_params = sizeof (names_ufke) / sizeof (names_ufke[0]);
11292 names = names_ufke;
11293 types = types_ufke;
11294 break; 11299 break;
11295 11300
11296 case kEventTextInputOffsetToPos: 11301 case kEventTextInputOffsetToPos:
@@ -11300,22 +11305,24 @@ mac_handle_text_input_event (next_handler, event, data)
11300 Point p; 11305 Point p;
11301 11306
11302 if (!OVERLAYP (Vmac_ts_active_input_overlay)) 11307 if (!OVERLAYP (Vmac_ts_active_input_overlay))
11303 return eventNotHandledErr; 11308 break;
11304 11309
11305 /* Strictly speaking, this is not always correct because 11310 /* Strictly speaking, this is not always correct because
11306 previous events may change some states about display. */ 11311 previous events may change some states about display. */
11307 if (NILP (Foverlay_get (Vmac_ts_active_input_overlay, Qbefore_string))) 11312 if (!NILP (Foverlay_get (Vmac_ts_active_input_overlay, Qbefore_string)))
11313 {
11314 /* Active input area is displayed around the current point. */
11315 f = SELECTED_FRAME ();
11316 w = XWINDOW (f->selected_window);
11317 }
11318 else if (WINDOWP (echo_area_window))
11308 { 11319 {
11309 /* Active input area is displayed in the echo area. */ 11320 /* Active input area is displayed in the echo area. */
11310 w = XWINDOW (echo_area_window); 11321 w = XWINDOW (echo_area_window);
11311 f = WINDOW_XFRAME (w); 11322 f = WINDOW_XFRAME (w);
11312 } 11323 }
11313 else 11324 else
11314 { 11325 break;
11315 /* Active input area is displayed around the current point. */
11316 f = SELECTED_FRAME ();
11317 w = XWINDOW (f->selected_window);
11318 }
11319 11326
11320 p.h = (WINDOW_TO_FRAME_PIXEL_X (w, w->cursor.x) 11327 p.h = (WINDOW_TO_FRAME_PIXEL_X (w, w->cursor.x)
11321 + WINDOW_LEFT_FRINGE_WIDTH (w) 11328 + WINDOW_LEFT_FRINGE_WIDTH (w)
@@ -11325,6 +11332,8 @@ mac_handle_text_input_event (next_handler, event, data)
11325 + f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f)); 11332 + f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f));
11326 err = SetEventParameter (event, kEventParamTextInputReplyPoint, 11333 err = SetEventParameter (event, kEventParamTextInputReplyPoint,
11327 typeQDPoint, sizeof (typeQDPoint), &p); 11334 typeQDPoint, sizeof (typeQDPoint), &p);
11335 if (err == noErr)
11336 result = noErr;
11328 } 11337 }
11329 break; 11338 break;
11330 11339
@@ -11336,9 +11345,6 @@ mac_handle_text_input_event (next_handler, event, data)
11336 err = mac_store_event_ref_as_apple_event (0, 0, Qtext_input, id_key, 11345 err = mac_store_event_ref_as_apple_event (0, 0, Qtext_input, id_key,
11337 event, num_params, 11346 event, num_params,
11338 names, types); 11347 names, types);
11339 if (err == noErr)
11340 result = noErr;
11341
11342 return result; 11348 return result;
11343} 11349}
11344#endif 11350#endif