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
f47ed292
Commit
f47ed292
authored
Jun 08, 2023
by
Rémi Bernon
Committed by
Alexandre Julliard
Jun 12, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
win32u: Move grab_pointer registry option from winex11.
parent
bb043fb6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
80 additions
and
10 deletions
+80
-10
input.c
dlls/win32u/input.c
+5
-2
sysparams.c
dlls/win32u/sysparams.c
+73
-2
win32u_private.h
dlls/win32u/win32u_private.h
+1
-0
mouse.c
dlls/winex11.drv/mouse.c
+1
-1
x11drv.h
dlls/winex11.drv/x11drv.h
+0
-1
x11drv_main.c
dlls/winex11.drv/x11drv_main.c
+0
-4
No files found.
dlls/win32u/input.c
View file @
f47ed292
...
...
@@ -406,7 +406,7 @@ static const KBDTABLES kbdus_tables =
LONG
global_key_state_counter
=
0
;
BOOL
grab_pointer
=
TRUE
;
static
void
kbd_tables_init_vsc2vk
(
const
KBDTABLES
*
tables
,
BYTE
vsc2vk
[
0x300
]
)
{
...
...
@@ -2503,7 +2503,10 @@ BOOL process_wine_clipcursor( BOOL empty, BOOL reset )
TRACE
(
"empty %u, reset %u
\n
"
,
empty
,
reset
);
if
(
empty
||
reset
)
return
user_driver
->
pClipCursor
(
NULL
,
reset
);
if
(
reset
)
return
user_driver
->
pClipCursor
(
NULL
,
TRUE
);
if
(
!
grab_pointer
)
return
TRUE
;
if
(
empty
)
return
user_driver
->
pClipCursor
(
NULL
,
reset
);
get_clip_cursor
(
&
rect
);
return
user_driver
->
pClipCursor
(
&
rect
,
FALSE
);
...
...
dlls/win32u/sysparams.c
View file @
f47ed292
...
...
@@ -4099,13 +4099,47 @@ static union sysparam_all_entry * const default_entries[] =
(
union
sysparam_all_entry
*
)
&
entry_AUDIODESC_ON
,
};
void
sysparams_init
(
void
)
/***********************************************************************
* get_config_key
*
* Get a config key from either the app-specific or the default config
*/
static
DWORD
get_config_key
(
HKEY
defkey
,
HKEY
appkey
,
const
char
*
name
,
WCHAR
*
buffer
,
DWORD
size
)
{
WCHAR
nameW
[
128
];
char
buf
[
2048
];
KEY_VALUE_PARTIAL_INFORMATION
*
info
=
(
void
*
)
buf
;
asciiz_to_unicode
(
nameW
,
name
);
if
(
appkey
&&
query_reg_value
(
appkey
,
nameW
,
info
,
sizeof
(
buf
)
))
{
size
=
min
(
info
->
DataLength
,
size
-
sizeof
(
WCHAR
)
);
memcpy
(
buffer
,
info
->
Data
,
size
);
buffer
[
size
/
sizeof
(
WCHAR
)]
=
0
;
return
0
;
}
if
(
defkey
&&
query_reg_value
(
defkey
,
nameW
,
info
,
sizeof
(
buf
)
))
{
size
=
min
(
info
->
DataLength
,
size
-
sizeof
(
WCHAR
)
);
memcpy
(
buffer
,
info
->
Data
,
size
);
buffer
[
size
/
sizeof
(
WCHAR
)]
=
0
;
return
0
;
}
return
ERROR_FILE_NOT_FOUND
;
}
void
sysparams_init
(
void
)
{
WCHAR
buffer
[
MAX_PATH
+
16
],
*
p
,
*
appname
;
DWORD
i
,
dispos
,
dpi_scaling
;
WCHAR
layout
[
KL_NAMELENGTH
];
pthread_mutexattr_t
attr
;
HKEY
hkey
;
HKEY
hkey
,
appkey
=
0
;
DWORD
len
;
static
const
WCHAR
software_wineW
[]
=
{
'S'
,
'o'
,
'f'
,
't'
,
'w'
,
'a'
,
'r'
,
'e'
,
'\\'
,
'W'
,
'i'
,
'n'
,
'e'
};
static
const
WCHAR
temporary_system_parametersW
[]
=
...
...
@@ -4114,6 +4148,7 @@ void sysparams_init(void)
static
const
WCHAR
oneW
[]
=
{
'1'
,
0
};
static
const
WCHAR
kl_preloadW
[]
=
{
'K'
,
'e'
,
'y'
,
'b'
,
'o'
,
'a'
,
'r'
,
'd'
,
' '
,
'L'
,
'a'
,
'y'
,
'o'
,
'u'
,
't'
,
'\\'
,
'P'
,
'r'
,
'e'
,
'l'
,
'o'
,
'a'
,
'd'
};
static
const
WCHAR
x11driverW
[]
=
{
'\\'
,
'X'
,
'1'
,
'1'
,
' '
,
'D'
,
'r'
,
'i'
,
'v'
,
'e'
,
'r'
,
0
};
pthread_mutexattr_init
(
&
attr
);
pthread_mutexattr_settype
(
&
attr
,
PTHREAD_MUTEX_RECURSIVE
);
...
...
@@ -4173,6 +4208,42 @@ void sysparams_init(void)
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
default_entries
);
i
++
)
default_entries
[
i
]
->
hdr
.
init
(
default_entries
[
i
]
);
}
/* @@ Wine registry key: HKCU\Software\Wine\X11 Driver */
hkey
=
reg_open_hkcu_key
(
"Software
\\
Wine
\\
X11 Driver"
);
/* open the app-specific key */
appname
=
NtCurrentTeb
()
->
Peb
->
ProcessParameters
->
ImagePathName
.
Buffer
;
if
((
p
=
wcsrchr
(
appname
,
'/'
)))
appname
=
p
+
1
;
if
((
p
=
wcsrchr
(
appname
,
'\\'
)))
appname
=
p
+
1
;
len
=
lstrlenW
(
appname
);
if
(
len
&&
len
<
MAX_PATH
)
{
HKEY
tmpkey
;
int
i
;
for
(
i
=
0
;
appname
[
i
];
i
++
)
buffer
[
i
]
=
RtlDowncaseUnicodeChar
(
appname
[
i
]
);
buffer
[
i
]
=
0
;
appname
=
buffer
;
memcpy
(
appname
+
i
,
x11driverW
,
sizeof
(
x11driverW
)
);
/* @@ Wine registry key: HKCU\Software\Wine\AppDefaults\app.exe\X11 Driver */
if
((
tmpkey
=
reg_open_hkcu_key
(
"Software
\\
Wine
\\
AppDefaults"
)))
{
appkey
=
reg_open_key
(
tmpkey
,
appname
,
lstrlenW
(
appname
)
*
sizeof
(
WCHAR
)
);
NtClose
(
tmpkey
);
}
}
#define IS_OPTION_TRUE(ch) \
((ch) == 'y' || (ch) == 'Y' || (ch) == 't' || (ch) == 'T' || (ch) == '1')
if
(
!
get_config_key
(
hkey
,
appkey
,
"GrabPointer"
,
buffer
,
sizeof
(
buffer
)
))
grab_pointer
=
IS_OPTION_TRUE
(
buffer
[
0
]
);
#undef IS_OPTION_TRUE
}
static
BOOL
update_desktop_wallpaper
(
void
)
...
...
dlls/win32u/win32u_private.h
View file @
f47ed292
...
...
@@ -86,6 +86,7 @@ extern BOOL register_imm_window( HWND hwnd ) DECLSPEC_HIDDEN;
extern
void
unregister_imm_window
(
HWND
hwnd
)
DECLSPEC_HIDDEN
;
/* input.c */
extern
BOOL
grab_pointer
DECLSPEC_HIDDEN
;
extern
BOOL
destroy_caret
(
void
)
DECLSPEC_HIDDEN
;
extern
LONG
global_key_state_counter
DECLSPEC_HIDDEN
;
extern
HWND
get_active_window
(
void
)
DECLSPEC_HIDDEN
;
...
...
dlls/winex11.drv/mouse.c
View file @
f47ed292
...
...
@@ -1526,7 +1526,7 @@ BOOL X11DRV_ClipCursor( const RECT *clip, BOOL reset )
{
TRACE
(
"clip %p, reset %u
\n
"
,
clip
,
reset
);
if
(
!
reset
&&
grab_pointer
)
if
(
!
reset
)
{
RECT
virtual_rect
=
NtUserGetVirtualScreenRect
();
...
...
dlls/winex11.drv/x11drv.h
View file @
f47ed292
...
...
@@ -443,7 +443,6 @@ extern BOOL use_take_focus DECLSPEC_HIDDEN;
extern
BOOL
use_primary_selection
DECLSPEC_HIDDEN
;
extern
BOOL
use_system_cursors
DECLSPEC_HIDDEN
;
extern
BOOL
show_systray
DECLSPEC_HIDDEN
;
extern
BOOL
grab_pointer
DECLSPEC_HIDDEN
;
extern
BOOL
grab_fullscreen
DECLSPEC_HIDDEN
;
extern
BOOL
usexcomposite
DECLSPEC_HIDDEN
;
extern
BOOL
managed_mode
DECLSPEC_HIDDEN
;
...
...
dlls/winex11.drv/x11drv_main.c
View file @
f47ed292
...
...
@@ -74,7 +74,6 @@ BOOL use_take_focus = TRUE;
BOOL
use_primary_selection
=
FALSE
;
BOOL
use_system_cursors
=
TRUE
;
BOOL
show_systray
=
TRUE
;
BOOL
grab_pointer
=
TRUE
;
BOOL
grab_fullscreen
=
FALSE
;
BOOL
managed_mode
=
TRUE
;
BOOL
decorated_mode
=
TRUE
;
...
...
@@ -498,9 +497,6 @@ static void setup_options(void)
if
(
!
get_config_key
(
hkey
,
appkey
,
"ShowSystray"
,
buffer
,
sizeof
(
buffer
)
))
show_systray
=
IS_OPTION_TRUE
(
buffer
[
0
]
);
if
(
!
get_config_key
(
hkey
,
appkey
,
"GrabPointer"
,
buffer
,
sizeof
(
buffer
)
))
grab_pointer
=
IS_OPTION_TRUE
(
buffer
[
0
]
);
if
(
!
get_config_key
(
hkey
,
appkey
,
"GrabFullscreen"
,
buffer
,
sizeof
(
buffer
)
))
grab_fullscreen
=
IS_OPTION_TRUE
(
buffer
[
0
]
);
...
...
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