Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: webkit/glue/webinputevent_win.cc

Issue 43049: Fix horizontal scrolling to not be reversed on tilt wheel mice and old Thinkp... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 6
7 #include "webkit/glue/webinputevent.h" 7 #include "webkit/glue/webinputevent.h"
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 break; 156 break;
157 case SB_PAGEDOWN: 157 case SB_PAGEDOWN:
158 wheel_delta = -1; 158 wheel_delta = -1;
159 scroll_by_page = true; 159 scroll_by_page = true;
160 break; 160 break;
161 default: // We don't supoprt SB_THUMBPOSITION or SB_THUMBTRACK here. 161 default: // We don't supoprt SB_THUMBPOSITION or SB_THUMBTRACK here.
162 wheel_delta = 0; 162 wheel_delta = 0;
163 break; 163 break;
164 } 164 }
165 165
166 if (message == WM_HSCROLL) { 166 if (message == WM_HSCROLL)
167 horizontal_scroll = true; 167 horizontal_scroll = true;
168 wheel_delta = -wheel_delta;
169 }
170 } else { 168 } else {
171 // Non-synthesized event; we can just read data off the event. 169 // Non-synthesized event; we can just read data off the event.
172 get_key_state = GetKeyState; 170 get_key_state = GetKeyState;
173 key_state = GET_KEYSTATE_WPARAM(wparam); 171 key_state = GET_KEYSTATE_WPARAM(wparam);
174 172
175 global_x = static_cast<short>(LOWORD(lparam)); 173 global_x = static_cast<short>(LOWORD(lparam));
176 global_y = static_cast<short>(HIWORD(lparam)); 174 global_y = static_cast<short>(HIWORD(lparam));
177 175
178 wheel_delta = static_cast<float>(GET_WHEEL_DELTA_WPARAM(wparam)); 176 wheel_delta = static_cast<float>(GET_WHEEL_DELTA_WPARAM(wparam));
179 if (((message == WM_MOUSEHWHEEL) || (key_state & MK_SHIFT)) && 177 if (message == WM_MOUSEHWHEEL) {
180 (wheel_delta != 0))
181 horizontal_scroll = true; 178 horizontal_scroll = true;
179 wheel_delta = -wheel_delta; // Windows is <- -/+ ->, WebKit <- +/- ->.
180 }
182 } 181 }
182 if (key_state & MK_SHIFT)
183 horizontal_scroll = true;
183 184
184 // Set modifiers based on key state. 185 // Set modifiers based on key state.
185 if (key_state & MK_SHIFT) 186 if (key_state & MK_SHIFT)
186 modifiers |= SHIFT_KEY; 187 modifiers |= SHIFT_KEY;
187 if (key_state & MK_CONTROL) 188 if (key_state & MK_CONTROL)
188 modifiers |= CTRL_KEY; 189 modifiers |= CTRL_KEY;
189 if (get_key_state(VK_MENU) & 0x8000) 190 if (get_key_state(VK_MENU) & 0x8000)
190 modifiers |= (ALT_KEY | META_KEY); 191 modifiers |= (ALT_KEY | META_KEY);
191 192
192 // Set coordinates by translating event coordinates from screen to client. 193 // Set coordinates by translating event coordinates from screen to client.
(...skipping 23 matching lines...) Expand all
216 unsigned long scroll_lines = kDefaultScrollLinesPerWheelDelta; 217 unsigned long scroll_lines = kDefaultScrollLinesPerWheelDelta;
217 SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &scroll_lines, 0); 218 SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &scroll_lines, 0);
218 if (scroll_lines == WHEEL_PAGESCROLL) 219 if (scroll_lines == WHEEL_PAGESCROLL)
219 scroll_by_page = true; 220 scroll_by_page = true;
220 if (!scroll_by_page) { 221 if (!scroll_by_page) {
221 scroll_delta *= 222 scroll_delta *=
222 static_cast<float>(scroll_lines) * kScrollbarPixelsPerLine; 223 static_cast<float>(scroll_lines) * kScrollbarPixelsPerLine;
223 } 224 }
224 } 225 }
225 226
226 // Set scroll amount based on above calculations. 227 // Set scroll amount based on above calculations. WebKit expects positive
228 // delta_y to mean "scroll up" and positive delta_x to mean "scroll left".
227 if (horizontal_scroll) { 229 if (horizontal_scroll) {
228 delta_x = scroll_delta; 230 delta_x = scroll_delta;
229 delta_y = 0; 231 delta_y = 0;
230 } else { 232 } else {
231 delta_x = 0; 233 delta_x = 0;
232 delta_y = scroll_delta; 234 delta_y = scroll_delta;
233 } 235 }
234 } 236 }
235 237
236 // WebKeyboardEvent ----------------------------------------------------------- 238 // WebKeyboardEvent -----------------------------------------------------------
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 modifiers |= CTRL_KEY; 332 modifiers |= CTRL_KEY;
331 if (GetKeyState(VK_MENU) & 0x8000) 333 if (GetKeyState(VK_MENU) & 0x8000)
332 modifiers |= (ALT_KEY | META_KEY); 334 modifiers |= (ALT_KEY | META_KEY);
333 335
334 if (LOWORD(lparam) > 1) 336 if (LOWORD(lparam) > 1)
335 modifiers |= IS_AUTO_REPEAT; 337 modifiers |= IS_AUTO_REPEAT;
336 if (IsKeyPad(wparam, lparam)) 338 if (IsKeyPad(wparam, lparam))
337 modifiers |= IS_KEYPAD; 339 modifiers |= IS_KEYPAD;
338 } 340 }
339 341
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698