comparison src/dispnew.c @ 59580:f43d0816e9c3

* keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW) (READABLE_EVENTS_FILTER_EVENTS) (READABLE_EVENTS_IGNORE_SQUEEZABLES): New flags for readable_events. get_filtered_input_pending, readable_filtered_events): Removed. (tracking_off): Call readable_events and get_input_pending with flag READABLE_EVENTS_DO_TIMERS_NOW. (readable_events): Move code from old readable_filtered_events here, but check new READABLE_EVENTS_* in argument flags instead of previous two boolean arguments do_timers_now and filter_events. If we are doing mouse tracking and the mouse moved, return only if READABLE_EVENTS_IGNORE_SQUEEZABLES is not set in flags. (swallow_events): Call get_input_pending with flag READABLE_EVENTS_DO_TIMERS_NOW. (get_input_pending): Move code from old get_filtered_input_pending here. Replace boolean arguments do_timers_now, filter_events with flags, and pass flags to readable_events. Document new READABLE_EVENTS_* flags. (detect_input_pending_ignore_squeezables): New function. (detect_input_pending_run_timers): Call get_input_pending with flag READABLE_EVENTS_DO_TIMERS_NOW. (Finput_pending_p): Call get_input_pending with flags READABLE_EVENTS_DO_TIMERS_NOW and READABLE_EVENTS_FILTER_EVENTS. * dispnew.c (update_window, update_frame_1): Replace calls to detect_input_pending with detect_input_pending_ignore_squeezables so that redisplay is not paused if the event queue contains only mouse movements. * lisp.h: Declare detect_input_pending_ignore_squeezables.
author Jan Djärv <jan.h.d@swipnet.se>
date Sun, 16 Jan 2005 09:17:02 +0000
parents 59945307b86b
children c0533d2d03af
comparison
equal deleted inserted replaced
59579:a588c86a429c 59580:f43d0816e9c3
4073 4073
4074 /* Check pending input the first time so that we can quickly return. */ 4074 /* Check pending input the first time so that we can quickly return. */
4075 if (redisplay_dont_pause) 4075 if (redisplay_dont_pause)
4076 force_p = 1; 4076 force_p = 1;
4077 else 4077 else
4078 detect_input_pending (); 4078 detect_input_pending_ignore_squeezables ();
4079 4079
4080 /* If forced to complete the update, or if no input is pending, do 4080 /* If forced to complete the update, or if no input is pending, do
4081 the update. */ 4081 the update. */
4082 if (force_p || !input_pending || !NILP (do_mouse_tracking)) 4082 if (force_p || !input_pending || !NILP (do_mouse_tracking))
4083 { 4083 {
4147 /* We'll have to play a little bit with when to 4147 /* We'll have to play a little bit with when to
4148 detect_input_pending. If it's done too often, 4148 detect_input_pending. If it's done too often,
4149 scrolling large windows with repeated scroll-up 4149 scrolling large windows with repeated scroll-up
4150 commands will too quickly pause redisplay. */ 4150 commands will too quickly pause redisplay. */
4151 if (!force_p && ++n_updated % preempt_count == 0) 4151 if (!force_p && ++n_updated % preempt_count == 0)
4152 detect_input_pending (); 4152 detect_input_pending_ignore_squeezables ();
4153 4153
4154 changed_p |= update_window_line (w, vpos, 4154 changed_p |= update_window_line (w, vpos,
4155 &mouse_face_overwritten_p); 4155 &mouse_face_overwritten_p);
4156 4156
4157 /* Mark all rows below the last visible one in the current 4157 /* Mark all rows below the last visible one in the current
5091 if (preempt_count <= 0) 5091 if (preempt_count <= 0)
5092 preempt_count = 1; 5092 preempt_count = 1;
5093 5093
5094 if (redisplay_dont_pause) 5094 if (redisplay_dont_pause)
5095 force_p = 1; 5095 force_p = 1;
5096 else if (!force_p && detect_input_pending ()) 5096 else if (!force_p && detect_input_pending_ignore_squeezables ())
5097 { 5097 {
5098 pause = 1; 5098 pause = 1;
5099 goto do_pause; 5099 goto do_pause;
5100 } 5100 }
5101 5101
5147 } 5147 }
5148 } 5148 }
5149 } 5149 }
5150 5150
5151 if ((i - 1) % preempt_count == 0) 5151 if ((i - 1) % preempt_count == 0)
5152 detect_input_pending (); 5152 detect_input_pending_ignore_squeezables ();
5153 5153
5154 update_frame_line (f, i); 5154 update_frame_line (f, i);
5155 } 5155 }
5156 } 5156 }
5157 5157