mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-05 18:01:34 +00:00
winex11: Add an option to disable pointer grabs.
This commit is contained in:
parent
ae2b356361
commit
4d358bfee3
3 changed files with 21 additions and 13 deletions
|
@ -938,22 +938,25 @@ BOOL CDECL X11DRV_ClipCursor( LPCRECT clip )
|
|||
if (GetWindowThreadProcessId( GetDesktopWindow(), NULL ) == GetCurrentThreadId())
|
||||
return TRUE; /* don't clip in the desktop process */
|
||||
|
||||
TRACE( "clipping to %s\n", wine_dbgstr_rect(clip) );
|
||||
wine_tsx11_lock();
|
||||
XUnmapWindow( display, clip_window );
|
||||
XMoveResizeWindow( display, clip_window,
|
||||
clip->left - virtual_screen_rect.left, clip->top - virtual_screen_rect.top,
|
||||
clip->right - clip->left, clip->bottom - clip->top );
|
||||
XMapWindow( display, clip_window );
|
||||
if (!XGrabPointer( display, clip_window, False,
|
||||
PointerMotionMask | ButtonPressMask | ButtonReleaseMask,
|
||||
GrabModeAsync, GrabModeAsync, clip_window, None, CurrentTime ))
|
||||
if (grab_pointer)
|
||||
{
|
||||
TRACE( "clipping to %s\n", wine_dbgstr_rect(clip) );
|
||||
wine_tsx11_lock();
|
||||
XUnmapWindow( display, clip_window );
|
||||
XMoveResizeWindow( display, clip_window,
|
||||
clip->left - virtual_screen_rect.left, clip->top - virtual_screen_rect.top,
|
||||
clip->right - clip->left, clip->bottom - clip->top );
|
||||
XMapWindow( display, clip_window );
|
||||
if (!XGrabPointer( display, clip_window, False,
|
||||
PointerMotionMask | ButtonPressMask | ButtonReleaseMask,
|
||||
GrabModeAsync, GrabModeAsync, clip_window, None, CurrentTime ))
|
||||
{
|
||||
wine_tsx11_unlock();
|
||||
clip_rect = *clip;
|
||||
return TRUE;
|
||||
}
|
||||
wine_tsx11_unlock();
|
||||
clip_rect = *clip;
|
||||
return TRUE;
|
||||
}
|
||||
wine_tsx11_unlock();
|
||||
}
|
||||
|
||||
/* release the grab if any */
|
||||
|
|
|
@ -598,6 +598,7 @@ extern int use_take_focus;
|
|||
extern int use_primary_selection;
|
||||
extern int use_system_cursors;
|
||||
extern int show_systray;
|
||||
extern int grab_pointer;
|
||||
extern int usexcomposite;
|
||||
extern int managed_mode;
|
||||
extern int decorated_mode;
|
||||
|
|
|
@ -84,6 +84,7 @@ int use_take_focus = 1;
|
|||
int use_primary_selection = 0;
|
||||
int use_system_cursors = 1;
|
||||
int show_systray = 1;
|
||||
int grab_pointer = 1;
|
||||
int managed_mode = 1;
|
||||
int decorated_mode = 1;
|
||||
int private_color_map = 0;
|
||||
|
@ -426,6 +427,9 @@ 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] );
|
||||
|
||||
screen_depth = 0;
|
||||
if (!get_config_key( hkey, appkey, "ScreenDepth", buffer, sizeof(buffer) ))
|
||||
screen_depth = atoi(buffer);
|
||||
|
|
Loading…
Reference in a new issue