From 1526bc23737f6bbbd3068da258e6c036bed4ab20 Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Tue, 4 Sep 2007 21:38:40 +0000 Subject: [PATCH] Support for horizontal scroll wheels on some mice: (construct_mouse_wheel): Make HORIZ_WHEEL_EVENT from WM_MOUSEHWHEEL. (w32_read_socket) : Treat as WM_MOUSEWHEEL. MULTI_KBOARD support: (w32_create_terminal) [MULTI_KBOARD]: Create a new keyboard for the terminal. --- src/w32term.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/w32term.c b/src/w32term.c index 100af4ebc2..2e3860b663 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -3150,7 +3150,8 @@ construct_mouse_wheel (result, msg, f) POINT p; int delta; - result->kind = WHEEL_EVENT; + result->kind = msg->msg.message == WM_MOUSEHWHEEL ? HORIZ_WHEEL_EVENT + : WHEEL_EVENT; result->code = 0; result->timestamp = msg->msg.time; @@ -4486,6 +4487,7 @@ w32_read_socket (sd, expected, hold_quit) } case WM_MOUSEWHEEL: + case WM_MOUSEHWHEEL: { if (dpyinfo->grabbed && last_mouse_frame && FRAME_LIVE_P (last_mouse_frame)) @@ -6302,6 +6304,22 @@ w32_create_terminal (struct w32_display_info *dpyinfo) terminal->memory_below_frame = 0; /* We don't remember what scrolls off the bottom. */ +#ifdef MULTI_KBOARD + /* We don't yet support separate terminals on W32, so don't try to share + keyboards between virtual terminals that are on the same physical + terminal like X does. */ + terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); + init_kboard (terminal->kboard); + terminal->kboard->next_kboard = all_kboards; + all_kboards = terminal->kboard; + /* Don't let the initial kboard remain current longer than necessary. + That would cause problems if a file loaded on startup tries to + prompt in the mini-buffer. */ + if (current_kboard == initial_kboard) + current_kboard = terminal->kboard; + terminal->kboard->reference_count++; +#endif + return terminal; } -- 2.20.1