mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Windows: Remove mousewheel hook
From Windows 10 onwards, the window under the mouse will receive WM_MOUSEWHEEL messages regardless of focus state, so this hook appears to be unnecessary.
This commit is contained in:
parent
77bf765fcf
commit
d0e9eea164
1 changed files with 0 additions and 30 deletions
|
|
@ -44,9 +44,6 @@ public:
|
|||
|
||||
~Hooks()
|
||||
{
|
||||
if (mouseWheelHook != nullptr)
|
||||
UnhookWindowsHookEx (mouseWheelHook);
|
||||
|
||||
if (keyboardHook != nullptr)
|
||||
UnhookWindowsHookEx (keyboardHook);
|
||||
}
|
||||
|
|
@ -54,29 +51,6 @@ public:
|
|||
static inline std::weak_ptr<Hooks> weak;
|
||||
|
||||
private:
|
||||
static LRESULT CALLBACK mouseWheelHookCallback (int nCode, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (nCode >= 0 && wParam == WM_MOUSEWHEEL)
|
||||
{
|
||||
// using a local copy of this struct to support old mingw libraries
|
||||
struct MOUSEHOOKSTRUCTEX_ final : public MOUSEHOOKSTRUCT { DWORD mouseData; };
|
||||
|
||||
auto& hs = *(MOUSEHOOKSTRUCTEX_*) lParam;
|
||||
|
||||
if (auto* comp = Desktop::getInstance().findComponentAt ({ hs.pt.x, hs.pt.y }))
|
||||
{
|
||||
if (auto* target = static_cast<HWND> (comp->getWindowHandle()))
|
||||
{
|
||||
const ScopedThreadDPIAwarenessSetter scope { target };
|
||||
return PostMessage (target, WM_MOUSEWHEEL,
|
||||
hs.mouseData & 0xffff0000, MAKELPARAM (hs.pt.x, hs.pt.y));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return CallNextHookEx (getSingleton()->mouseWheelHook, nCode, wParam, lParam);
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK keyboardHookCallback (int nCode, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
auto& msg = *reinterpret_cast<MSG*> (lParam);
|
||||
|
|
@ -91,10 +65,6 @@ private:
|
|||
return CallNextHookEx (getSingleton()->keyboardHook, nCode, wParam, lParam);
|
||||
}
|
||||
|
||||
HHOOK mouseWheelHook = SetWindowsHookEx (WH_MOUSE,
|
||||
mouseWheelHookCallback,
|
||||
(HINSTANCE) juce::Process::getCurrentModuleInstanceHandle(),
|
||||
GetCurrentThreadId());
|
||||
HHOOK keyboardHook = SetWindowsHookEx (WH_GETMESSAGE,
|
||||
keyboardHookCallback,
|
||||
(HINSTANCE) juce::Process::getCurrentModuleInstanceHandle(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue