comparison src/keyboard.c @ 90787:91bf6e05918b

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 662-669) - Update from CVS - Fix read-only prompt problem in isearch - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 207-208) - Merge from emacs--devo--0 - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-184
author Miles Bader <miles@gnu.org>
date Sun, 18 Mar 2007 14:11:08 +0000
parents f83d17e1ace6 f602ddf5430e
children c0409ee15cee
comparison
equal deleted inserted replaced
90786:ca12f314faac 90787:91bf6e05918b
2448 2448
2449 Lisp_Object print_help (); 2449 Lisp_Object print_help ();
2450 static Lisp_Object kbd_buffer_get_event (); 2450 static Lisp_Object kbd_buffer_get_event ();
2451 static void record_char (); 2451 static void record_char ();
2452 2452
2453 static Lisp_Object help_form_saved_window_configs;
2454 static Lisp_Object
2455 read_char_help_form_unwind (arg)
2456 {
2457 Lisp_Object window_config = XCAR (help_form_saved_window_configs);
2458 help_form_saved_window_configs = XCDR (help_form_saved_window_configs);
2459 if (!NILP (window_config))
2460 Fset_window_configuration (window_config);
2461 return Qnil;
2462 }
2463
2453 #ifdef MULTI_KBOARD 2464 #ifdef MULTI_KBOARD
2454 static jmp_buf wrong_kboard_jmpbuf; 2465 static jmp_buf wrong_kboard_jmpbuf;
2455 #endif 2466 #endif
2456 2467
2457 #define STOP_POLLING \ 2468 #define STOP_POLLING \
3317 if (!NILP (Vhelp_form) && help_char_p (c)) 3328 if (!NILP (Vhelp_form) && help_char_p (c))
3318 { 3329 {
3319 Lisp_Object tem0; 3330 Lisp_Object tem0;
3320 count = SPECPDL_INDEX (); 3331 count = SPECPDL_INDEX ();
3321 3332
3322 record_unwind_protect (Fset_window_configuration, 3333 help_form_saved_window_configs
3323 Fcurrent_window_configuration (Qnil)); 3334 = Fcons (Fcurrent_window_configuration (Qnil),
3335 help_form_saved_window_configs);
3336 record_unwind_protect (read_char_help_form_unwind, Qnil);
3324 3337
3325 tem0 = Feval (Vhelp_form); 3338 tem0 = Feval (Vhelp_form);
3326 if (STRINGP (tem0)) 3339 if (STRINGP (tem0))
3327 internal_with_output_to_temp_buffer ("*Help*", print_help, tem0); 3340 internal_with_output_to_temp_buffer ("*Help*", print_help, tem0);
3328 3341
3329 cancel_echoing (); 3342 cancel_echoing ();
3330 do 3343 do
3331 c = read_char (0, 0, 0, Qnil, 0, NULL); 3344 {
3345 c = read_char (0, 0, 0, Qnil, 0, NULL);
3346 if (EVENT_HAS_PARAMETERS (c)
3347 && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_click))
3348 XSETCAR (help_form_saved_window_configs, Qnil);
3349 }
3332 while (BUFFERP (c)); 3350 while (BUFFERP (c));
3333 /* Remove the help from the frame */ 3351 /* Remove the help from the frame */
3334 unbind_to (count, Qnil); 3352 unbind_to (count, Qnil);
3335 3353
3336 redisplay (); 3354 redisplay ();
11332 staticpro (&menu_bar_one_keymap_changed_items); 11350 staticpro (&menu_bar_one_keymap_changed_items);
11333 11351
11334 menu_bar_items_vector = Qnil; 11352 menu_bar_items_vector = Qnil;
11335 staticpro (&menu_bar_items_vector); 11353 staticpro (&menu_bar_items_vector);
11336 11354
11355 help_form_saved_window_configs = Qnil;
11356 staticpro (&help_form_saved_window_configs);
11357
11337 defsubr (&Scurrent_idle_time); 11358 defsubr (&Scurrent_idle_time);
11338 defsubr (&Sevent_convert_list); 11359 defsubr (&Sevent_convert_list);
11339 defsubr (&Sread_key_sequence); 11360 defsubr (&Sread_key_sequence);
11340 defsubr (&Sread_key_sequence_vector); 11361 defsubr (&Sread_key_sequence_vector);
11341 defsubr (&Srecursive_edit); 11362 defsubr (&Srecursive_edit);
11394 doc: /* If not -1, an object to be read as next command input event. */); 11415 doc: /* If not -1, an object to be read as next command input event. */);
11395 11416
11396 DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events, 11417 DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events,
11397 doc: /* List of events to be processed as input by input methods. 11418 doc: /* List of events to be processed as input by input methods.
11398 These events are processed before `unread-command-events' 11419 These events are processed before `unread-command-events'
11399 and actual keyboard input without given to `input-method-function'. */); 11420 and actual keyboard input, but are not given to `input-method-function'. */);
11400 Vunread_post_input_method_events = Qnil; 11421 Vunread_post_input_method_events = Qnil;
11401 11422
11402 DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events, 11423 DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events,
11403 doc: /* List of events to be processed as input by input methods. 11424 doc: /* List of events to be processed as input by input methods.
11404 These events are processed after `unread-command-events', but 11425 These events are processed after `unread-command-events', but