blob: b9f5872b0c49ed54d2282962e4238edfc874e87a [file] [log] [blame]
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_BASE_WIN_MOUSE_WHEEL_UTIL_H_
#define UI_BASE_WIN_MOUSE_WHEEL_UTIL_H_
#include <windows.h>
#include "ui/base/ui_base_export.h"
namespace ui {
class ViewProp;
// Marks the passed |hwnd| as supporting mouse-wheel message rerouting.
// We reroute the mouse wheel messages to such HWND when they are under the
// mouse pointer (but are not the active window). Callers own the returned
// object.
UI_BASE_EXPORT ViewProp* SetWindowSupportsRerouteMouseWheel(HWND hwnd);
// Forwards mouse wheel messages to the window under it.
// Windows sends mouse wheel messages to the currently active window.
// This causes a window to scroll even if it is not currently under the mouse
// wheel. The following code gives mouse wheel messages to the window under the
// mouse wheel in order to scroll that window. This is arguably a better user
// experience. The returns value says whether the mouse wheel message was
// successfully redirected.
UI_BASE_EXPORT bool RerouteMouseWheel(HWND window,
WPARAM w_param,
LPARAM l_param);
} // namespace ui
#endif // UI_BASE_WIN_MOUSE_WHEEL_UTIL_H_