1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_BASE_WIN_MOUSE_WHEEL_UTIL_H_ 6 #define UI_BASE_WIN_MOUSE_WHEEL_UTIL_H_ 7 8 #include <windows.h> 9 10 #include "ui/base/ui_export.h" 11 12 namespace ui { 13 14 class ViewProp; 15 16 // Marks the passed |hwnd| as supporting mouse-wheel message rerouting. 17 // We reroute the mouse wheel messages to such HWND when they are under the 18 // mouse pointer (but are not the active window). Callers own the returned 19 // object. 20 UI_EXPORT ViewProp* SetWindowSupportsRerouteMouseWheel(HWND hwnd); 21 22 // Forwards mouse wheel messages to the window under it. 23 // Windows sends mouse wheel messages to the currently active window. 24 // This causes a window to scroll even if it is not currently under the mouse 25 // wheel. The following code gives mouse wheel messages to the window under the 26 // mouse wheel in order to scroll that window. This is arguably a better user 27 // experience. The returns value says whether the mouse wheel message was 28 // successfully redirected. 29 UI_EXPORT bool RerouteMouseWheel(HWND window, WPARAM w_param, 30 LPARAM l_param); 31 32 } // namespace ui 33 34 #endif // UI_BASE_WIN_MOUSE_WHEEL_UTIL_H_ 35