From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:44:49 +0000 (+0000) Subject: (readable_events) [USE_TOOLKIT_SCROLL_BARS]: Regard X-Git-Tag: ttn-vms-21-2-B4~350 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=354344a20a06e2052bc23a4b92ac44af1075cdbe;p=emacs.git (readable_events) [USE_TOOLKIT_SCROLL_BARS]: Regard toolkit scroll bar thumb drag events as squeezable and prevent redisplay from being paused by them. --- diff --git a/src/keyboard.c b/src/keyboard.c index 3e7510205af..09472e5a5e6 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -3531,9 +3531,11 @@ readable_events (flags) READABLE_EVENTS_FILTER_EVENTS is set, report it as empty. */ if (kbd_fetch_ptr != kbd_store_ptr) { - int have_live_event = 1; - - if (flags & READABLE_EVENTS_FILTER_EVENTS) + if (flags & (READABLE_EVENTS_FILTER_EVENTS +#ifdef USE_TOOLKIT_SCROLL_BARS + | READABLE_EVENTS_IGNORE_SQUEEZABLES +#endif + )) { struct input_event *event; @@ -3541,16 +3543,29 @@ readable_events (flags) ? kbd_fetch_ptr : kbd_buffer); - while (have_live_event && event->kind == FOCUS_IN_EVENT) - { - event++; + do + { + if (!( +#ifdef USE_TOOLKIT_SCROLL_BARS + (flags & READABLE_EVENTS_FILTER_EVENTS) && +#endif + event->kind == FOCUS_IN_EVENT) +#ifdef USE_TOOLKIT_SCROLL_BARS + && !((flags & READABLE_EVENTS_IGNORE_SQUEEZABLES) + && event->kind == SCROLL_BAR_CLICK_EVENT + && event->part == scroll_bar_handle + && event->modifiers == 0) +#endif + ) + return 1; + event++; if (event == kbd_buffer + KBD_BUFFER_SIZE) event = kbd_buffer; - if (event == kbd_store_ptr) - have_live_event = 0; - } + } + while (event != kbd_store_ptr); } - if (have_live_event) return 1; + else + return 1; } #ifdef HAVE_MOUSE @@ -6545,7 +6560,7 @@ lucid_event_type_list_p (object) If READABLE_EVENTS_FILTER_EVENTS is set in FLAGS, ignore internal events (FOCUS_IN_EVENT). If READABLE_EVENTS_IGNORE_SQUEEZABLES is set in FLAGS, ignore mouse - movements. */ + movements and toolkit scroll bar thumb drags. */ static void get_input_pending (addr, flags)