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
c5459824
Commit
c5459824
authored
May 11, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Return the cursor information for a thread input, and use it for GetCursorInfo.
parent
7642e03c
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
29 additions
and
17 deletions
+29
-17
input.c
dlls/user32/input.c
+14
-3
server_protocol.h
include/wine/server_protocol.h
+4
-2
protocol.def
server/protocol.def
+2
-0
queue.c
server/queue.c
+3
-10
request.h
server/request.h
+4
-2
trace.c
server/trace.c
+2
-0
No files found.
dlls/user32/input.c
View file @
c5459824
...
@@ -207,11 +207,22 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetCursorPos( POINT *pt )
...
@@ -207,11 +207,22 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetCursorPos( POINT *pt )
*/
*/
BOOL
WINAPI
GetCursorInfo
(
PCURSORINFO
pci
)
BOOL
WINAPI
GetCursorInfo
(
PCURSORINFO
pci
)
{
{
BOOL
ret
;
if
(
!
pci
)
return
0
;
if
(
!
pci
)
return
0
;
pci
->
hCursor
=
LoadCursorW
(
0
,
(
LPCWSTR
)
IDC_ARROW
);
pci
->
flags
=
CURSOR_SHOWING
;
SERVER_START_REQ
(
get_thread_input
)
{
req
->
tid
=
0
;
if
((
ret
=
!
wine_server_call
(
req
)))
{
pci
->
hCursor
=
wine_server_ptr_handle
(
reply
->
cursor
);
pci
->
flags
=
(
reply
->
show_count
>=
0
)
?
CURSOR_SHOWING
:
0
;
}
}
SERVER_END_REQ
;
GetCursorPos
(
&
pci
->
ptScreenPos
);
GetCursorPos
(
&
pci
->
ptScreenPos
);
return
1
;
return
ret
;
}
}
...
...
include/wine/server_protocol.h
View file @
c5459824
...
@@ -3697,8 +3697,10 @@ struct get_thread_input_reply
...
@@ -3697,8 +3697,10 @@ struct get_thread_input_reply
user_handle_t
menu_owner
;
user_handle_t
menu_owner
;
user_handle_t
move_size
;
user_handle_t
move_size
;
user_handle_t
caret
;
user_handle_t
caret
;
user_handle_t
cursor
;
int
show_count
;
rectangle_t
rect
;
rectangle_t
rect
;
char
__pad_
52
[
4
];
char
__pad_
60
[
4
];
};
};
...
@@ -5483,6 +5485,6 @@ union generic_reply
...
@@ -5483,6 +5485,6 @@ union generic_reply
struct
set_cursor_reply
set_cursor_reply
;
struct
set_cursor_reply
set_cursor_reply
;
};
};
#define SERVER_PROTOCOL_VERSION 40
0
#define SERVER_PROTOCOL_VERSION 40
1
#endif
/* __WINE_WINE_SERVER_PROTOCOL_H */
#endif
/* __WINE_WINE_SERVER_PROTOCOL_H */
server/protocol.def
View file @
c5459824
...
@@ -2604,6 +2604,8 @@ enum message_type
...
@@ -2604,6 +2604,8 @@ enum message_type
user_handle_t menu_owner; /* handle to the menu owner */
user_handle_t menu_owner; /* handle to the menu owner */
user_handle_t move_size; /* handle to the moving/resizing window */
user_handle_t move_size; /* handle to the moving/resizing window */
user_handle_t caret; /* handle to the caret window */
user_handle_t caret; /* handle to the caret window */
user_handle_t cursor; /* handle to the cursor */
int show_count; /* cursor show count */
rectangle_t rect; /* caret rectangle */
rectangle_t rect; /* caret rectangle */
@END
@END
...
...
server/queue.c
View file @
c5459824
...
@@ -2055,18 +2055,11 @@ DECL_HANDLER(get_thread_input)
...
@@ -2055,18 +2055,11 @@ DECL_HANDLER(get_thread_input)
reply
->
menu_owner
=
input
->
menu_owner
;
reply
->
menu_owner
=
input
->
menu_owner
;
reply
->
move_size
=
input
->
move_size
;
reply
->
move_size
=
input
->
move_size
;
reply
->
caret
=
input
->
caret
;
reply
->
caret
=
input
->
caret
;
reply
->
cursor
=
input
->
cursor
;
reply
->
show_count
=
input
->
cursor_count
;
reply
->
rect
=
input
->
caret_rect
;
reply
->
rect
=
input
->
caret_rect
;
}
}
else
{
reply
->
focus
=
0
;
reply
->
capture
=
0
;
reply
->
active
=
0
;
reply
->
menu_owner
=
0
;
reply
->
move_size
=
0
;
reply
->
caret
=
0
;
reply
->
rect
.
left
=
reply
->
rect
.
top
=
reply
->
rect
.
right
=
reply
->
rect
.
bottom
=
0
;
}
/* foreground window is active window of foreground thread */
/* foreground window is active window of foreground thread */
reply
->
foreground
=
foreground_input
?
foreground_input
->
active
:
0
;
reply
->
foreground
=
foreground_input
?
foreground_input
->
active
:
0
;
if
(
thread
)
release_object
(
thread
);
if
(
thread
)
release_object
(
thread
);
...
...
server/request.h
View file @
c5459824
...
@@ -1712,8 +1712,10 @@ C_ASSERT( FIELD_OFFSET(struct get_thread_input_reply, foreground) == 20 );
...
@@ -1712,8 +1712,10 @@ C_ASSERT( FIELD_OFFSET(struct get_thread_input_reply, foreground) == 20 );
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
menu_owner
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
menu_owner
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
move_size
)
==
28
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
move_size
)
==
28
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
caret
)
==
32
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
caret
)
==
32
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
rect
)
==
36
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
cursor
)
==
36
);
C_ASSERT
(
sizeof
(
struct
get_thread_input_reply
)
==
56
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
show_count
)
==
40
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_thread_input_reply
,
rect
)
==
44
);
C_ASSERT
(
sizeof
(
struct
get_thread_input_reply
)
==
64
);
C_ASSERT
(
sizeof
(
struct
get_last_input_time_request
)
==
16
);
C_ASSERT
(
sizeof
(
struct
get_last_input_time_request
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_last_input_time_reply
,
time
)
==
8
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_last_input_time_reply
,
time
)
==
8
);
C_ASSERT
(
sizeof
(
struct
get_last_input_time_reply
)
==
16
);
C_ASSERT
(
sizeof
(
struct
get_last_input_time_reply
)
==
16
);
...
...
server/trace.c
View file @
c5459824
...
@@ -3076,6 +3076,8 @@ static void dump_get_thread_input_reply( const struct get_thread_input_reply *re
...
@@ -3076,6 +3076,8 @@ static void dump_get_thread_input_reply( const struct get_thread_input_reply *re
fprintf
(
stderr
,
", menu_owner=%08x"
,
req
->
menu_owner
);
fprintf
(
stderr
,
", menu_owner=%08x"
,
req
->
menu_owner
);
fprintf
(
stderr
,
", move_size=%08x"
,
req
->
move_size
);
fprintf
(
stderr
,
", move_size=%08x"
,
req
->
move_size
);
fprintf
(
stderr
,
", caret=%08x"
,
req
->
caret
);
fprintf
(
stderr
,
", caret=%08x"
,
req
->
caret
);
fprintf
(
stderr
,
", cursor=%08x"
,
req
->
cursor
);
fprintf
(
stderr
,
", show_count=%d"
,
req
->
show_count
);
dump_rectangle
(
", rect="
,
&
req
->
rect
);
dump_rectangle
(
", rect="
,
&
req
->
rect
);
}
}
...
...
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