Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
c9ffab46
Commit
c9ffab46
authored
Oct 04, 2021
by
Rémi Bernon
Committed by
Alexandre Julliard
Mar 05, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
win32u: Add support for sending and receiving WM_POINTER* messages.
parent
61d1c189
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
15 deletions
+14
-15
device8.c
dlls/dinput/tests/device8.c
+2
-15
message.c
dlls/win32u/message.c
+12
-0
No files found.
dlls/dinput/tests/device8.c
View file @
c9ffab46
...
...
@@ -2000,7 +2000,6 @@ static void test_hid_touch_screen(void)
ok
(
!
res
,
"MsgWaitForMultipleObjects returned %#lx
\n
"
,
res
);
res
=
msg_wait_for_events
(
1
,
&
touchdown_event
,
10
);
todo_wine
ok
(
res
==
0
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
res
=
msg_wait_for_events
(
1
,
&
touchleave_event
,
500
);
todo_wine
...
...
@@ -2139,7 +2138,6 @@ static void test_hid_touch_screen(void)
bus_send_hid_input
(
file
,
&
desc
,
&
touch_single
,
sizeof
(
touch_single
)
);
res
=
msg_wait_for_events
(
1
,
&
touchdown_event
,
1000
);
todo_wine
ok
(
res
==
0
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
res
=
msg_wait_for_events
(
1
,
&
touchleave_event
,
10
);
ok
(
res
==
WAIT_TIMEOUT
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
...
...
@@ -2174,18 +2172,15 @@ static void test_hid_touch_screen(void)
res
=
msg_wait_for_events
(
1
,
&
touchdown_event
,
10
);
ok
(
res
==
WAIT_TIMEOUT
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
ok
(
pointer_enter_count
==
0
,
"got pointer_enter_count %u
\n
"
,
pointer_enter_count
);
todo_wine
ok
(
pointer_up_count
==
1
,
"got pointer_up_count %u
\n
"
,
pointer_up_count
);
expect_flags
=
POINTER_MESSAGE_FLAG_PRIMARY
|
POINTER_MESSAGE_FLAG_CONFIDENCE
;
todo_wine
ok
(
HIWORD
(
pointer_wparam
[
0
]
)
==
expect_flags
||
broken
(
HIWORD
(
pointer_wparam
[
0
]
)
==
(
expect_flags
&
~
POINTER_MESSAGE_FLAG_CONFIDENCE
)),
/* Win8 32bit */
"got wparam %#Ix
\n
"
,
pointer_wparam
[
0
]
);
ok
(
LOWORD
(
pointer_wparam
[
0
]
)
==
id
,
"got wparam %#Ix
\n
"
,
pointer_wparam
[
0
]
);
todo_wine
ok
(
LOWORD
(
pointer_wparam
[
0
]
)
==
id
,
"got wparam %#Ix
\n
"
,
pointer_wparam
[
0
]
);
ok
(
LOWORD
(
pointer_lparam
[
0
]
)
*
128
/
width
==
0x08
,
"got lparam %#Ix
\n
"
,
pointer_lparam
[
0
]
);
todo_wine
ok
(
HIWORD
(
pointer_lparam
[
0
]
)
*
128
/
height
==
0x10
,
"got lparam %#Ix
\n
"
,
pointer_lparam
[
0
]
);
ok
(
pointer_wparam
[
1
]
==
0
,
"got wparam %#Ix
\n
"
,
pointer_wparam
[
1
]
);
ok
(
pointer_lparam
[
1
]
==
0
,
"got lparam %#Ix
\n
"
,
pointer_lparam
[
1
]
);
...
...
@@ -2197,10 +2192,8 @@ static void test_hid_touch_screen(void)
bus_send_hid_input
(
file
,
&
desc
,
&
touch_multiple
,
sizeof
(
touch_multiple
)
);
res
=
msg_wait_for_events
(
1
,
&
touchdown_event
,
1000
);
todo_wine
ok
(
res
==
0
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
res
=
msg_wait_for_events
(
1
,
&
touchdown_event
,
1000
);
todo_wine
ok
(
res
==
0
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
res
=
msg_wait_for_events
(
1
,
&
touchleave_event
,
10
);
ok
(
res
==
WAIT_TIMEOUT
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
...
...
@@ -2249,30 +2242,24 @@ static void test_hid_touch_screen(void)
res
=
msg_wait_for_events
(
1
,
&
touchdown_event
,
10
);
ok
(
res
==
WAIT_TIMEOUT
,
"WaitForSingleObject returned %#lx
\n
"
,
res
);
ok
(
pointer_enter_count
==
0
,
"got pointer_enter_count %u
\n
"
,
pointer_enter_count
);
todo_wine
ok
(
pointer_up_count
==
2
,
"got pointer_up_count %u
\n
"
,
pointer_up_count
);
expect_flags
=
POINTER_MESSAGE_FLAG_PRIMARY
|
POINTER_MESSAGE_FLAG_CONFIDENCE
;
todo_wine
ok
(
HIWORD
(
pointer_wparam
[
0
]
)
==
expect_flags
||
broken
(
HIWORD
(
pointer_wparam
[
0
]
)
==
(
expect_flags
&
~
POINTER_MESSAGE_FLAG_CONFIDENCE
)),
/* Win8 32bit */
"got wparam %#Ix
\n
"
,
pointer_wparam
[
0
]
);
ok
(
LOWORD
(
pointer_wparam
[
0
]
)
==
id
,
"got wparam %#Ix
\n
"
,
pointer_wparam
[
0
]
);
todo_wine
ok
(
LOWORD
(
pointer_wparam
[
0
]
)
==
id
,
"got wparam %#Ix
\n
"
,
pointer_wparam
[
0
]
);
ok
(
LOWORD
(
pointer_lparam
[
0
]
)
*
128
/
width
==
0x08
,
"got lparam %#Ix
\n
"
,
pointer_lparam
[
0
]
);
todo_wine
ok
(
HIWORD
(
pointer_lparam
[
0
]
)
*
128
/
height
==
0x10
,
"got lparam %#Ix
\n
"
,
pointer_lparam
[
0
]
);
expect_flags
=
POINTER_MESSAGE_FLAG_CONFIDENCE
;
todo_wine
ok
(
HIWORD
(
pointer_wparam
[
1
]
)
==
expect_flags
||
broken
(
HIWORD
(
pointer_wparam
[
1
]
)
==
(
expect_flags
&
~
POINTER_MESSAGE_FLAG_CONFIDENCE
)),
/* Win8 32bit */
"got wparam %#Ix
\n
"
,
pointer_wparam
[
1
]
);
todo_wine
ok
(
LOWORD
(
pointer_wparam
[
1
]
)
==
id
+
1
,
"got wparam %#Ix
\n
"
,
pointer_wparam
[
1
]
);
todo_wine
ok
(
LOWORD
(
pointer_lparam
[
1
]
)
*
128
/
width
==
0x18
,
"got lparam %#Ix
\n
"
,
pointer_lparam
[
1
]
);
todo_wine
ok
(
HIWORD
(
pointer_lparam
[
1
]
)
*
128
/
height
==
0x20
,
"got lparam %#Ix
\n
"
,
pointer_lparam
[
1
]
);
...
...
dlls/win32u/message.c
View file @
c9ffab46
...
...
@@ -2319,6 +2319,16 @@ static void handle_keyboard_repeat_message( HWND hwnd )
NtUserPostMessage
(
hwnd
,
msg
->
message
,
msg
->
wParam
,
msg
->
lParam
);
}
/***********************************************************************
* process_pointer_message
*
* returns TRUE if the contents of 'msg' should be passed to the application
*/
static
BOOL
process_pointer_message
(
MSG
*
msg
,
UINT
hw_id
,
const
struct
hardware_msg_data
*
msg_data
)
{
msg
->
pt
=
point_phys_to_win_dpi
(
msg
->
hwnd
,
msg
->
pt
);
return
TRUE
;
}
/***********************************************************************
* process_keyboard_message
...
...
@@ -2669,6 +2679,8 @@ static BOOL process_hardware_message( MSG *msg, UINT hw_id, const struct hardwar
ret
=
process_keyboard_message
(
msg
,
hw_id
,
hwnd_filter
,
first
,
last
,
remove
);
else
if
(
is_mouse_message
(
msg
->
message
))
ret
=
process_mouse_message
(
msg
,
hw_id
,
msg_data
->
info
,
hwnd_filter
,
first
,
last
,
remove
);
else
if
(
msg
->
message
>=
WM_POINTERUPDATE
&&
msg
->
message
<=
WM_POINTERLEAVE
)
ret
=
process_pointer_message
(
msg
,
hw_id
,
msg_data
);
else
if
(
msg
->
message
==
WM_WINE_CLIPCURSOR
)
process_wine_clipcursor
(
msg
->
hwnd
,
msg
->
wParam
,
msg
->
lParam
);
else
if
(
msg
->
message
==
WM_WINE_SETCURSOR
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment