diff options
Diffstat (limited to 'platform/windows/os_windows.cpp')
-rw-r--r-- | platform/windows/os_windows.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 886c43d116..95a6a6ac58 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -47,7 +47,6 @@ #include "tcp_server_winsock.h" #include "packet_peer_udp_winsock.h" #include "stream_peer_winsock.h" -#include "os/pc_joystick_map.h" #include "lang_table.h" #include "os/memory_pool_dynamic_prealloc.h" #include "globals.h" @@ -67,6 +66,10 @@ extern "C" { #endif } +#ifndef WM_MOUSEHWHEEL +#define WM_MOUSEHWHEEL 0x020e +#endif + //#define STDOUT_FILE extern HINSTANCE godot_hinstance; @@ -433,6 +436,7 @@ LRESULT OS_Windows::WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam) { case WM_RBUTTONDOWN: case WM_RBUTTONUP: case WM_MOUSEWHEEL: + case WM_MOUSEHWHEEL: case WM_LBUTTONDBLCLK: case WM_RBUTTONDBLCLK: /*case WM_XBUTTONDOWN: @@ -503,12 +507,24 @@ LRESULT OS_Windows::WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam) { if (motion>0) - mb.button_index=4; + mb.button_index= BUTTON_WHEEL_UP; else - mb.button_index=5; + mb.button_index= BUTTON_WHEEL_DOWN; } break; + case WM_MOUSEHWHEEL: { + + mb.pressed = true; + int motion = (short)HIWORD(wParam); + if (!motion) + return 0; + + if (motion<0) + mb.button_index = BUTTON_WHEEL_LEFT; + else + mb.button_index = BUTTON_WHEEL_RIGHT; + } break; /* case WM_XBUTTONDOWN: { mb.pressed=true; @@ -2059,7 +2075,7 @@ String OS_Windows::get_system_dir(SystemDir p_dir) const { id=CSIDL_MYPICTURES; } break; case SYSTEM_DIR_DOCUMENTS: { - id=0x000C; + id=CSIDL_PERSONAL; } break; case SYSTEM_DIR_DOWNLOADS: { id=0x000C ; |