# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1080072751 0 # Node ID 82a203664aa9dafbba665d002353e5cb1ab0edb3 # Parent d78f476c40f57f6589abf2a00c58d93cfa7be498 Fixed dw_window_set_pointer() for OS/2. diff -r d78f476c40f5 -r 82a203664aa9 os2/dw.c --- a/os2/dw.c Tue Mar 23 19:34:33 2004 +0000 +++ b/os2/dw.c Tue Mar 23 20:12:31 2004 +0000 @@ -33,6 +33,7 @@ #define QWP_USER 0 MRESULT EXPENTRY _run_event(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2); +MRESULT EXPENTRY _wndproc(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2); void _do_resize(Box *thisbox, int x, int y); void _handle_splitbar_resize(HWND hwnd, float percent, int type, int x, int y); int _load_bitmap_file(char *file, HWND handle, HBITMAP *hbm, HDC *hdc, HPS *hps, unsigned long *width, unsigned long *height); @@ -1437,6 +1438,9 @@ { PFNWP *blah = WinQueryWindowPtr(hWnd, QWP_USER); + if(msg == WM_MOUSEMOVE) + return _wndproc(hWnd, msg, mp1, mp2); + if(blah && *blah) { PFNWP myfunc = *blah; @@ -1675,6 +1679,8 @@ WinSendMsg(hWnd, SLM_SETSLIDERINFO, MPFROM2SHORT(SMA_SLIDERARMPOSITION, SMA_INCREMENTVALUE), (MPARAM)pos); } break; + case WM_MOUSEMOVE: + return _wndproc(hWnd, msg, mp1, mp2); } if(oldproc) @@ -1690,6 +1696,8 @@ switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hWnd, msg, mp1, mp2); case WM_CONTEXTMENU: case WM_COMMAND: return _entryproc(hWnd, msg, mp1, mp2); @@ -1739,6 +1747,8 @@ switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hWnd, msg, mp1, mp2); case WM_CONTEXTMENU: case WM_COMMAND: return _entryproc(hWnd, msg, mp1, mp2); @@ -1784,6 +1794,8 @@ switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hWnd, msg, mp1, mp2); case WM_SIZE: WinPostMsg(hWnd, WM_USER+7, 0, 0); break; @@ -1811,6 +1823,8 @@ switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hWnd, msg, mp1, mp2); case WM_CHAR: if(SHORT1FROMMP(mp2) == '\t') { @@ -2499,6 +2513,8 @@ switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hWnd, msg, mp1, mp2); case WM_VSCROLL: case WM_HSCROLL: if(_run_event(hWnd, msg, mp1, mp2)) @@ -2655,12 +2671,15 @@ break; case WM_MOUSEMOVE: { - HPOINTER ptr = (HPOINTER)dw_window_get_data(hWnd, "_dw_pointer"); - - if(ptr) - WinSetPointer(HWND_DESKTOP, ptr); - } - break; + HPOINTER pointer; + + if((pointer = (HPOINTER)dw_window_get_data(hWnd, "_dw_pointer")) || + (pointer = (HPOINTER)dw_window_get_data(_toplevel_window(hWnd), "_dw_pointer"))) + { + WinSetPointer(HWND_DESKTOP, pointer); + } + } + return MRFROMSHORT(FALSE); case WM_USER: windowfunc = (void (* API)(void *))mp1; @@ -3009,6 +3028,8 @@ switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hwnd, msg, mp1, mp2); case WM_PAINT: return _button_draw(hwnd, msg, mp1, mp2, oldproc, 0); case BM_SETHILITE: @@ -3219,6 +3240,8 @@ res = (int)_run_event(hwnd, msg, mp1, mp2); switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hwnd, msg, mp1, mp2); case WM_BUTTON1DOWN: case WM_BUTTON2DOWN: case WM_BUTTON3DOWN: @@ -3240,6 +3263,8 @@ switch(msg) { + case WM_MOUSEMOVE: + return _wndproc(hwnd, msg, mp1, mp2); case WM_PAINT: { HPS hps;