Commit 4d358bfe authored by Alexandre Julliard's avatar Alexandre Julliard

winex11: Add an option to disable pointer grabs.

parent ae2b3563
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment