user32-Mouse_Message_Hwnd: Rebase (mostly) and reënable.

The tests are left alone since they aren't particularly important and will need to be rewritten anyway.
They should probably be somewhere other than input.c, since they don't actually relate to input.
This commit is contained in:
Zebediah Figura 2024-01-26 17:41:51 -06:00
parent 065d60e3d7
commit 72730e4340
4 changed files with 21 additions and 57 deletions

View File

@ -1,33 +1,17 @@
From cb9f379e0eef9b7f1a150633e200864cc1ded33f Mon Sep 17 00:00:00 2001
From 7afa96cafc4f0c15360439b161df866eb2bec29b Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@codeweavers.com>
Date: Tue, 25 Nov 2014 20:31:58 +0100
Subject: [PATCH] user32: Try harder to find a target for mouse messages
---
dlls/user32/tests/input.c | 4 ++--
dlls/win32u/message.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
dlls/win32u/message.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 14641591bff..2bef3437109 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -3466,8 +3466,8 @@ static void test_Input_mouse(void)
}
}
ok(hittest_no && hittest_no<50, "expected WM_NCHITTEST message\n");
- todo_wine ok(got_button_down, "expected WM_LBUTTONDOWN message\n");
- todo_wine ok(got_button_up, "expected WM_LBUTTONUP message\n");
+ ok(got_button_down, "expected WM_LBUTTONDOWN message\n");
+ ok(got_button_up, "expected WM_LBUTTONUP message\n");
DestroyWindow(static_win);
/* click on HTTRANSPARENT top-level window that belongs to other thread */
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
index 644e91aed4f..4cb65eec36a 100644
index 0cd20684b4e..08e2d047045 100644
--- a/dlls/win32u/message.c
+++ b/dlls/win32u/message.c
@@ -1402,7 +1402,7 @@ static BOOL process_mouse_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info, H
@@ -2463,7 +2463,7 @@ static BOOL process_mouse_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info, H
{
HWND orig = msg->hwnd;
@ -37,5 +21,5 @@ index 644e91aed4f..4cb65eec36a 100644
{
HWND next = get_window_relative( orig, GW_HWNDNEXT );
--
2.34.1
2.43.0

View File

@ -1,35 +1,16 @@
From 0c3e20339d2b531e62819b670b30635af6e75ea0 Mon Sep 17 00:00:00 2001
From 2b442e1f3c5c13871b30fd8d2269c957c013142f Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Wed, 17 May 2017 23:55:55 +0800
Subject: [PATCH] server: Add support for a layered window region. (v3)
---
dlls/user32/tests/input.c | 2 --
dlls/winex11.drv/bitblt.c | 45 +++++++++++++++++++++++++++++++++++++++
server/protocol.def | 7 ++++++
server/window.c | 32 ++++++++++++++++++++++++++++
4 files changed, 84 insertions(+), 2 deletions(-)
3 files changed, 84 insertions(+)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c
index 62ff4ad7777..a458e002ca0 100644
--- a/dlls/user32/tests/input.c
+++ b/dlls/user32/tests/input.c
@@ -3683,13 +3683,11 @@ static void test_Input_mouse(void)
if (msg.message == WM_LBUTTONDOWN)
{
- todo_wine
ok(msg.hwnd == button_win, "msg.hwnd = %p\n", msg.hwnd);
got_button_down = TRUE;
}
else if (msg.message == WM_LBUTTONUP)
{
- todo_wine
ok(msg.hwnd == button_win, "msg.hwnd = %p\n", msg.hwnd);
got_button_up = TRUE;
break;
diff --git a/dlls/winex11.drv/bitblt.c b/dlls/winex11.drv/bitblt.c
index 10388a1cc8f..5ff6e23fa8d 100644
index 94aa06773a7..feb1a0a46c2 100644
--- a/dlls/winex11.drv/bitblt.c
+++ b/dlls/winex11.drv/bitblt.c
@@ -48,6 +48,7 @@
@ -40,7 +21,7 @@ index 10388a1cc8f..5ff6e23fa8d 100644
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(bitblt);
@@ -1625,6 +1626,48 @@ static inline void add_row( HRGN rgn, RGNDATA *data, int x, int y, int len )
@@ -1627,6 +1628,48 @@ static inline void add_row( HRGN rgn, RGNDATA *data, int x, int y, int len )
}
#endif
@ -89,7 +70,7 @@ index 10388a1cc8f..5ff6e23fa8d 100644
/***********************************************************************
* update_surface_region
*/
@@ -1643,6 +1686,7 @@ static void update_surface_region( struct x11drv_window_surface *surface )
@@ -1645,6 +1688,7 @@ static void update_surface_region( struct x11drv_window_surface *surface )
if (!surface->is_argb && surface->color_key == CLR_INVALID)
{
XShapeCombineMask( gdi_display, surface->window, ShapeBounding, 0, 0, None, ShapeSet );
@ -97,7 +78,7 @@ index 10388a1cc8f..5ff6e23fa8d 100644
return;
}
@@ -1753,6 +1797,7 @@ static void update_surface_region( struct x11drv_window_surface *surface )
@@ -1755,6 +1799,7 @@ static void update_surface_region( struct x11drv_window_surface *surface )
free( data );
}
@ -106,10 +87,10 @@ index 10388a1cc8f..5ff6e23fa8d 100644
#endif
}
diff --git a/server/protocol.def b/server/protocol.def
index 438bbce902b..a4f22aa85de 100644
index 5d60e7fcda3..bf3f8295c64 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2503,6 +2503,13 @@ enum coords_relative
@@ -2625,6 +2625,13 @@ enum coords_relative
@END
@ -124,7 +105,7 @@ index 438bbce902b..a4f22aa85de 100644
@REQ(get_update_region)
user_handle_t window; /* handle to the window */
diff --git a/server/window.c b/server/window.c
index ce1574260b6..34d1e7af979 100644
index 242e93f303a..970cbab7b8a 100644
--- a/server/window.c
+++ b/server/window.c
@@ -71,6 +71,7 @@ struct window
@ -135,7 +116,7 @@ index ce1574260b6..34d1e7af979 100644
struct region *update_region; /* update region (relative to window rect) */
unsigned int style; /* window style */
unsigned int ex_style; /* window extended style */
@@ -561,6 +562,7 @@ static struct window *create_window( struct window *parent, struct window *owner
@@ -564,6 +565,7 @@ static struct window *create_window( struct window *parent, struct window *owner
win->atom = atom;
win->last_active = win->handle;
win->win_region = NULL;
@ -143,7 +124,7 @@ index ce1574260b6..34d1e7af979 100644
win->update_region = NULL;
win->style = 0;
win->ex_style = 0;
@@ -804,6 +806,9 @@ static int is_point_in_window( struct window *win, int *x, int *y, unsigned int
@@ -822,6 +824,9 @@ static int is_point_in_window( struct window *win, int *x, int *y, unsigned int
if (win->win_region &&
!point_in_region( win->win_region, *x - win->window_rect.left, *y - win->window_rect.top ))
return 0; /* not in window region */
@ -153,7 +134,7 @@ index ce1574260b6..34d1e7af979 100644
return 1;
}
@@ -1949,6 +1954,14 @@ static void set_window_region( struct window *win, struct region *region, int re
@@ -1979,6 +1984,14 @@ static void set_window_region( struct window *win, struct region *region, int re
}
@ -168,7 +149,7 @@ index ce1574260b6..34d1e7af979 100644
/* destroy a window */
void free_window_handle( struct window *win )
{
@@ -2012,6 +2025,7 @@ void free_window_handle( struct window *win )
@@ -2042,6 +2055,7 @@ void free_window_handle( struct window *win )
detach_window_thread( win );
if (win->parent) set_parent_window( win, NULL );
@ -176,7 +157,7 @@ index ce1574260b6..34d1e7af979 100644
free_user_handle( win->handle );
win->handle = 0;
release_object( win );
@@ -2673,6 +2687,24 @@ DECL_HANDLER(set_window_region)
@@ -2699,6 +2713,24 @@ DECL_HANDLER(set_window_region)
}
@ -202,5 +183,5 @@ index ce1574260b6..34d1e7af979 100644
DECL_HANDLER(get_update_region)
{
--
2.35.1
2.43.0

View File

@ -1,4 +1,3 @@
Fixes: [22458] Fix issues with inserting symbols by clicking on center in Word 2007 & 2010
Fixes: [12007] Fix issues with dragging layers between images in Adobe Photoshop 7.0
Fixes: [9512] Make sure popups don't block access to objects underneath in DVDPro
Disabled: true