Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
cf1be587
Commit
cf1be587
authored
Aug 16, 2012
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winex11: Remove the remaining X11 locking calls.
parent
26fb3d4a
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
44 additions
and
205 deletions
+44
-205
brush.c
dlls/winex11.drv/brush.c
+3
-3
clipboard.c
dlls/winex11.drv/clipboard.c
+8
-43
desktop.c
dlls/winex11.drv/desktop.c
+0
-5
event.c
dlls/winex11.drv/event.c
+1
-16
mouse.c
dlls/winex11.drv/mouse.c
+5
-19
systray.c
dlls/winex11.drv/systray.c
+0
-2
window.c
dlls/winex11.drv/window.c
+10
-38
wintab.c
dlls/winex11.drv/wintab.c
+0
-8
x11drv_main.c
dlls/winex11.drv/x11drv_main.c
+3
-13
xdnd.c
dlls/winex11.drv/xdnd.c
+2
-4
xim.c
dlls/winex11.drv/xim.c
+5
-25
xinerama.c
dlls/winex11.drv/xinerama.c
+0
-4
xrandr.c
dlls/winex11.drv/xrandr.c
+7
-23
xvidmode.c
dlls/winex11.drv/xvidmode.c
+0
-2
No files found.
dlls/winex11.drv/brush.c
View file @
cf1be587
...
...
@@ -112,15 +112,15 @@ static Pixmap BRUSH_DitherColor( COLORREF color, int depth)
Pixmap
pixmap
;
GC
gc
;
wine_tsx11_lock
(
);
XLockDisplay
(
gdi_display
);
if
(
!
ditherImage
)
{
ditherImage
=
XCreateImage
(
gdi_display
,
visual
,
depth
,
ZPixmap
,
0
,
NULL
,
MATRIX_SIZE
,
MATRIX_SIZE
,
32
,
0
);
if
(
!
ditherImage
)
{
wine_tsx11_unlock
();
ERR
(
"Could not create dither image
\n
"
);
XUnlockDisplay
(
gdi_display
);
return
0
;
}
ditherImage
->
data
=
HeapAlloc
(
GetProcessHeap
(),
0
,
...
...
@@ -152,7 +152,7 @@ static Pixmap BRUSH_DitherColor( COLORREF color, int depth)
gc
=
XCreateGC
(
gdi_display
,
pixmap
,
0
,
NULL
);
XPutImage
(
gdi_display
,
pixmap
,
gc
,
ditherImage
,
0
,
0
,
0
,
0
,
MATRIX_SIZE
,
MATRIX_SIZE
);
XFreeGC
(
gdi_display
,
gc
);
wine_tsx11_unlock
(
);
XUnlockDisplay
(
gdi_display
);
return
pixmap
;
}
...
...
dlls/winex11.drv/clipboard.c
View file @
cf1be587
...
...
@@ -2157,11 +2157,9 @@ static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display, LPCLIPBOARDINFO
/*
* Query the selection owner for the TARGETS property
*/
wine_tsx11_lock
();
if
((
use_primary_selection
&&
XGetSelectionOwner
(
display
,
XA_PRIMARY
))
||
XGetSelectionOwner
(
display
,
x11drv_atom
(
CLIPBOARD
)))
{
wine_tsx11_unlock
();
if
(
use_primary_selection
&&
(
X11DRV_CLIPBOARD_QueryTargets
(
display
,
w
,
XA_PRIMARY
,
x11drv_atom
(
TARGETS
),
&
xe
)))
selectionCacheSrc
=
XA_PRIMARY
;
else
if
(
X11DRV_CLIPBOARD_QueryTargets
(
display
,
w
,
x11drv_atom
(
CLIPBOARD
),
x11drv_atom
(
TARGETS
),
&
xe
))
...
...
@@ -2190,24 +2188,13 @@ static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display, LPCLIPBOARDINFO
}
}
}
else
/* No selection owner so report 0 targets available */
{
wine_tsx11_unlock
();
return
0
;
}
else
return
0
;
/* No selection owner so report 0 targets available */
/* Read the TARGETS property contents */
wine_tsx11_lock
();
if
(
XGetWindowProperty
(
display
,
xe
.
xselection
.
requestor
,
xe
.
xselection
.
property
,
if
(
!
XGetWindowProperty
(
display
,
xe
.
xselection
.
requestor
,
xe
.
xselection
.
property
,
0
,
0x3FFF
,
True
,
AnyPropertyType
/*XA_ATOM*/
,
&
atype
,
&
aformat
,
&
cSelectionTargets
,
&
remain
,
(
unsigned
char
**
)
&
targetList
)
!=
Success
)
{
wine_tsx11_unlock
();
WARN
(
"Failed to read TARGETS property
\n
"
);
}
else
{
wine_tsx11_unlock
();
TRACE
(
"Type %lx,Format %d,nItems %ld, Remain %ld
\n
"
,
atype
,
aformat
,
cSelectionTargets
,
remain
);
/*
...
...
@@ -2234,6 +2221,7 @@ static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display, LPCLIPBOARDINFO
/* Free the list of targets */
XFree
(
targetList
);
}
else
WARN
(
"Failed to read TARGETS property
\n
"
);
return
cSelectionTargets
;
}
...
...
@@ -2339,11 +2327,9 @@ static BOOL X11DRV_CLIPBOARD_GetProperty(Display *display, Window w, Atom prop,
for
(;;)
{
wine_tsx11_lock
();
if
(
XGetWindowProperty
(
display
,
w
,
prop
,
pos
,
INT_MAX
/
4
,
False
,
AnyPropertyType
,
atype
,
&
aformat
,
&
nitems
,
&
remain
,
&
buffer
)
!=
Success
)
{
wine_tsx11_unlock
();
WARN
(
"Failed to read property
\n
"
);
HeapFree
(
GetProcessHeap
(),
0
,
val
);
return
FALSE
;
...
...
@@ -2356,14 +2342,12 @@ static BOOL X11DRV_CLIPBOARD_GetProperty(Display *display, Window w, Atom prop,
if
(
!*
data
)
{
XFree
(
buffer
);
wine_tsx11_unlock
();
HeapFree
(
GetProcessHeap
(),
0
,
val
);
return
FALSE
;
}
val
=
*
data
;
memcpy
(
(
int
*
)
val
+
pos
,
buffer
,
count
);
XFree
(
buffer
);
wine_tsx11_unlock
();
if
(
!
remain
)
{
*
datasize
=
pos
*
sizeof
(
int
)
+
count
;
...
...
@@ -2572,7 +2556,6 @@ static void X11DRV_CLIPBOARD_ReleaseSelection(Display *display, Atom selType, Wi
{
TRACE
(
"Lost clipboard. Check if we need to release PRIMARY
\n
"
);
wine_tsx11_lock
();
if
(
selectionWindow
==
XGetSelectionOwner
(
display
,
XA_PRIMARY
))
{
TRACE
(
"We still own PRIMARY. Releasing PRIMARY.
\n
"
);
...
...
@@ -2580,13 +2563,11 @@ static void X11DRV_CLIPBOARD_ReleaseSelection(Display *display, Atom selType, Wi
}
else
TRACE
(
"We no longer own PRIMARY
\n
"
);
wine_tsx11_unlock
();
}
else
if
((
selType
==
XA_PRIMARY
)
&&
(
selectionAcquired
&
S_CLIPBOARD
))
{
TRACE
(
"Lost PRIMARY. Check if we need to release CLIPBOARD
\n
"
);
wine_tsx11_lock
();
if
(
selectionWindow
==
XGetSelectionOwner
(
display
,
x11drv_atom
(
CLIPBOARD
)))
{
TRACE
(
"We still own CLIPBOARD. Releasing CLIPBOARD.
\n
"
);
...
...
@@ -2594,7 +2575,6 @@ static void X11DRV_CLIPBOARD_ReleaseSelection(Display *display, Atom selType, Wi
}
else
TRACE
(
"We no longer own CLIPBOARD
\n
"
);
wine_tsx11_unlock
();
}
selectionWindow
=
None
;
...
...
@@ -2631,8 +2611,6 @@ static void selection_acquire(void)
owner
=
thread_selection_wnd
();
display
=
thread_display
();
wine_tsx11_lock
();
selectionAcquired
=
0
;
selectionWindow
=
0
;
...
...
@@ -2649,8 +2627,6 @@ static void selection_acquire(void)
if
(
XGetSelectionOwner
(
display
,
x11drv_atom
(
CLIPBOARD
))
==
owner
)
selectionAcquired
|=
S_CLIPBOARD
;
wine_tsx11_unlock
();
if
(
selectionAcquired
)
{
selectionWindow
=
owner
;
...
...
@@ -3043,8 +3019,6 @@ static Atom X11DRV_SelectionRequest_TARGETS( Display *display, Window requestor,
format
->
lpDrvExportFunc
&&
format
->
drvData
)
targets
[
i
++
]
=
format
->
drvData
;
wine_tsx11_lock
();
if
(
TRACE_ON
(
clipboard
))
{
unsigned
int
i
;
...
...
@@ -3060,7 +3034,6 @@ static Atom X11DRV_SelectionRequest_TARGETS( Display *display, Window requestor,
* in case some apps expect this instead of XA_ATOM */
XChangeProperty
(
display
,
requestor
,
rprop
,
XA_ATOM
,
32
,
PropModeReplace
,
(
unsigned
char
*
)
targets
,
cTargets
);
wine_tsx11_unlock
();
HeapFree
(
GetProcessHeap
(),
0
,
targets
);
...
...
@@ -3102,16 +3075,10 @@ static Atom X11DRV_SelectionRequest_MULTIPLE( HWND hWnd, XSelectionRequestEvent
/* Read the MULTIPLE property contents. This should contain a list of
* (target,property) atom pairs.
*/
wine_tsx11_lock
();
if
(
XGetWindowProperty
(
display
,
pevent
->
requestor
,
rprop
,
0
,
0x3FFF
,
False
,
AnyPropertyType
,
&
atype
,
&
aformat
,
&
cTargetPropList
,
&
remain
,
(
unsigned
char
**
)
&
targetPropList
)
!=
Success
)
{
wine_tsx11_unlock
();
TRACE
(
"
\t
Couldn't read MULTIPLE property
\n
"
);
}
else
if
(
!
XGetWindowProperty
(
display
,
pevent
->
requestor
,
rprop
,
0
,
0x3FFF
,
False
,
AnyPropertyType
,
&
atype
,
&
aformat
,
&
cTargetPropList
,
&
remain
,
(
unsigned
char
**
)
&
targetPropList
)
!=
Success
)
{
if
(
TRACE_ON
(
clipboard
))
{
...
...
@@ -3120,7 +3087,6 @@ static Atom X11DRV_SelectionRequest_MULTIPLE( HWND hWnd, XSelectionRequestEvent
typeName
,
aformat
,
cTargetPropList
,
remain
);
XFree
(
typeName
);
}
wine_tsx11_unlock
();
/*
* Make sure we got what we expect.
...
...
@@ -3174,6 +3140,7 @@ static Atom X11DRV_SelectionRequest_MULTIPLE( HWND hWnd, XSelectionRequestEvent
/* Free the list of targets/properties */
XFree
(
targetPropList
);
}
else
TRACE
(
"Couldn't read MULTIPLE property
\n
"
);
return
rprop
;
}
...
...
@@ -3246,7 +3213,6 @@ static void X11DRV_HandleSelectionRequest( HWND hWnd, XSelectionRequestEvent *ev
TRACE
(
"
\t
Updating property %s, %d bytes
\n
"
,
debugstr_format
(
lpFormat
->
wFormatID
),
cBytes
);
wine_tsx11_lock
();
do
{
int
nelements
=
min
(
cBytes
,
65536
);
...
...
@@ -3256,7 +3222,6 @@ static void X11DRV_HandleSelectionRequest( HWND hWnd, XSelectionRequestEvent *ev
cBytes
-=
nelements
;
lpClipData
+=
nelements
;
}
while
(
cBytes
>
0
);
wine_tsx11_unlock
();
GlobalUnlock
(
hClipData
);
GlobalFree
(
hClipData
);
...
...
dlls/winex11.drv/desktop.c
View file @
cf1be587
...
...
@@ -138,8 +138,6 @@ Window CDECL X11DRV_create_desktop( UINT width, UINT height )
TRACE
(
"%u x %u
\n
"
,
width
,
height
);
wine_tsx11_lock
();
/* Create window */
win_attr
.
event_mask
=
ExposureMask
|
KeyPressMask
|
KeyReleaseMask
|
EnterWindowMask
|
PointerMotionMask
|
ButtonPressMask
|
ButtonReleaseMask
|
FocusChangeMask
;
...
...
@@ -162,7 +160,6 @@ Window CDECL X11DRV_create_desktop( UINT width, UINT height )
1
);
}
XFlush
(
display
);
wine_tsx11_unlock
();
if
(
win
!=
None
)
X11DRV_init_desktop
(
win
,
width
,
height
);
return
win
;
}
...
...
@@ -230,7 +227,6 @@ static void update_desktop_fullscreen( unsigned int width, unsigned int height)
TRACE
(
"action=%li
\n
"
,
xev
.
xclient
.
data
.
l
[
0
]);
wine_tsx11_lock
();
XSendEvent
(
display
,
DefaultRootWindow
(
display
),
False
,
SubstructureRedirectMask
|
SubstructureNotifyMask
,
&
xev
);
...
...
@@ -238,7 +234,6 @@ static void update_desktop_fullscreen( unsigned int width, unsigned int height)
xev
.
xclient
.
data
.
l
[
2
]
=
x11drv_atom
(
_NET_WM_STATE_MAXIMIZED_HORZ
);
XSendEvent
(
display
,
DefaultRootWindow
(
display
),
False
,
SubstructureRedirectMask
|
SubstructureNotifyMask
,
&
xev
);
wine_tsx11_unlock
();
}
/***********************************************************************
...
...
dlls/winex11.drv/event.c
View file @
cf1be587
...
...
@@ -366,13 +366,11 @@ static inline void call_event_handler( Display *display, XEvent *event )
TRACE
(
"%lu %s for hwnd/window %p/%lx
\n
"
,
event
->
xany
.
serial
,
dbgstr_event
(
event
->
type
),
hwnd
,
event
->
xany
.
window
);
wine_tsx11_unlock
();
thread_data
=
x11drv_thread_data
();
prev
=
thread_data
->
current_event
;
thread_data
->
current_event
=
event
;
handlers
[
event
->
type
](
hwnd
,
event
);
thread_data
->
current_event
=
prev
;
wine_tsx11_lock
();
}
...
...
@@ -386,7 +384,6 @@ static int process_events( Display *display, Bool (*filter)(Display*, XEvent*,XP
enum
event_merge_action
action
=
MERGE_DISCARD
;
prev_event
.
type
=
0
;
wine_tsx11_lock
();
while
(
XCheckIfEvent
(
display
,
&
event
,
filter
,
(
char
*
)
arg
))
{
count
++
;
...
...
@@ -442,7 +439,6 @@ static int process_events( Display *display, Bool (*filter)(Display*, XEvent*,XP
if
(
prev_event
.
type
)
call_event_handler
(
display
,
&
prev_event
);
free_event_data
(
&
prev_event
);
XFlush
(
gdi_display
);
wine_tsx11_unlock
();
if
(
count
)
TRACE
(
"processed %d events
\n
"
,
count
);
return
count
;
}
...
...
@@ -880,7 +876,6 @@ static BOOL is_net_wm_state_maximized( Display *display, struct x11drv_win_data
if
(
!
data
->
whole_window
)
return
FALSE
;
wine_tsx11_lock
();
if
(
!
XGetWindowProperty
(
display
,
data
->
whole_window
,
x11drv_atom
(
_NET_WM_STATE
),
0
,
65536
/
sizeof
(
CARD32
),
False
,
XA_ATOM
,
&
type
,
&
format
,
&
count
,
&
remaining
,
(
unsigned
char
**
)
&
state
))
...
...
@@ -896,7 +891,6 @@ static BOOL is_net_wm_state_maximized( Display *display, struct x11drv_win_data
}
XFree
(
state
);
}
wine_tsx11_unlock
();
return
(
ret
==
2
);
}
...
...
@@ -1099,7 +1093,6 @@ static int get_window_wm_state( Display *display, struct x11drv_win_data *data )
int
format
,
ret
=
-
1
;
unsigned
long
count
,
remaining
;
wine_tsx11_lock
();
if
(
!
XGetWindowProperty
(
display
,
data
->
whole_window
,
x11drv_atom
(
WM_STATE
),
0
,
sizeof
(
*
state
)
/
sizeof
(
CARD32
),
False
,
x11drv_atom
(
WM_STATE
),
&
type
,
&
format
,
&
count
,
&
remaining
,
(
unsigned
char
**
)
&
state
))
...
...
@@ -1108,7 +1101,6 @@ static int get_window_wm_state( Display *display, struct x11drv_win_data *data )
ret
=
state
->
state
;
XFree
(
state
);
}
wine_tsx11_unlock
();
return
ret
;
}
...
...
@@ -1223,20 +1215,13 @@ void wait_for_withdrawn_state( Display *display, struct x11drv_win_data *data, B
XEvent
event
;
int
count
=
0
;
wine_tsx11_lock
();
while
(
XCheckIfEvent
(
display
,
&
event
,
is_wm_state_notify
,
(
char
*
)
data
->
whole_window
))
{
count
++
;
if
(
XFilterEvent
(
&
event
,
None
))
continue
;
/* filtered, ignore it */
if
(
event
.
type
==
DestroyNotify
)
call_event_handler
(
display
,
&
event
);
else
{
wine_tsx11_unlock
();
handle_wm_state_notify
(
data
,
&
event
.
xproperty
,
FALSE
);
wine_tsx11_lock
();
}
else
handle_wm_state_notify
(
data
,
&
event
.
xproperty
,
FALSE
);
}
wine_tsx11_unlock
();
if
(
!
count
)
{
...
...
dlls/winex11.drv/mouse.c
View file @
cf1be587
...
...
@@ -176,7 +176,6 @@ static Cursor get_empty_cursor(void)
static
Cursor
cursor
;
static
const
char
data
[]
=
{
0
};
wine_tsx11_lock
();
if
(
!
cursor
)
{
XColor
bg
;
...
...
@@ -186,11 +185,12 @@ static Cursor get_empty_cursor(void)
pixmap
=
XCreateBitmapFromData
(
gdi_display
,
root_window
,
data
,
1
,
1
);
if
(
pixmap
)
{
cursor
=
XCreatePixmapCursor
(
gdi_display
,
pixmap
,
pixmap
,
&
bg
,
&
bg
,
0
,
0
);
Cursor
new
=
XCreatePixmapCursor
(
gdi_display
,
pixmap
,
pixmap
,
&
bg
,
&
bg
,
0
,
0
);
if
(
InterlockedCompareExchangePointer
(
(
void
**
)
&
cursor
,
(
void
*
)
new
,
0
))
XFreeCursor
(
gdi_display
,
new
);
XFreePixmap
(
gdi_display
,
pixmap
);
}
}
wine_tsx11_unlock
();
return
cursor
;
}
...
...
@@ -207,7 +207,7 @@ void set_window_cursor( Window window, HCURSOR handle )
/* try to create it */
if
(
!
(
cursor
=
create_cursor
(
handle
)))
return
;
wine_tsx11_lock
(
);
XLockDisplay
(
gdi_display
);
if
(
!
XFindContext
(
gdi_display
,
(
XID
)
handle
,
cursor_context
,
(
char
**
)
&
prev
))
{
/* someone else was here first */
...
...
@@ -219,7 +219,7 @@ void set_window_cursor( Window window, HCURSOR handle )
XSaveContext
(
gdi_display
,
(
XID
)
handle
,
cursor_context
,
(
char
*
)
cursor
);
TRACE
(
"cursor %p created %lx
\n
"
,
handle
,
cursor
);
}
wine_tsx11_unlock
(
);
XUnlockDisplay
(
gdi_display
);
}
XDefineCursor
(
gdi_display
,
window
,
cursor
);
...
...
@@ -271,7 +271,6 @@ static void enable_xinput2(void)
}
if
(
data
->
xi2_state
==
xi_unavailable
)
return
;
wine_tsx11_lock
();
if
(
data
->
xi2_devices
)
pXIFreeDeviceInfo
(
data
->
xi2_devices
);
data
->
xi2_devices
=
devices
=
pXIQueryDevice
(
data
->
display
,
XIAllDevices
,
&
data
->
xi2_device_count
);
for
(
i
=
0
;
i
<
data
->
xi2_device_count
;
++
i
)
...
...
@@ -312,8 +311,6 @@ static void enable_xinput2(void)
data
->
xi2_state
=
xi_enabled
;
}
}
wine_tsx11_unlock
();
#endif
}
...
...
@@ -336,7 +333,6 @@ static void disable_xinput2(void)
mask
.
mask
=
NULL
;
mask
.
mask_len
=
0
;
wine_tsx11_lock
();
for
(
i
=
0
;
i
<
data
->
xi2_device_count
;
++
i
)
{
if
(
devices
[
i
].
use
==
XISlavePointer
&&
devices
[
i
].
attachment
==
data
->
xi2_core_pointer
)
...
...
@@ -348,7 +344,6 @@ static void disable_xinput2(void)
pXIFreeDeviceInfo
(
devices
);
data
->
xi2_devices
=
NULL
;
data
->
xi2_device_count
=
0
;
wine_tsx11_unlock
();
#endif
}
...
...
@@ -385,7 +380,6 @@ static BOOL grab_clipping_window( const RECT *clip )
TRACE
(
"clipping to %s win %lx
\n
"
,
wine_dbgstr_rect
(
clip
),
clip_window
);
wine_tsx11_lock
();
if
(
!
data
->
clip_hwnd
)
XUnmapWindow
(
data
->
display
,
clip_window
);
XMoveResizeWindow
(
data
->
display
,
clip_window
,
clip
->
left
-
virtual_screen_rect
.
left
,
clip
->
top
-
virtual_screen_rect
.
top
,
...
...
@@ -401,7 +395,6 @@ static BOOL grab_clipping_window( const RECT *clip )
PointerMotionMask
|
ButtonPressMask
|
ButtonReleaseMask
,
GrabModeAsync
,
GrabModeAsync
,
clip_window
,
None
,
CurrentTime
))
clipping_cursor
=
1
;
wine_tsx11_unlock
();
if
(
!
clipping_cursor
)
{
...
...
@@ -1202,14 +1195,12 @@ void CDECL X11DRV_DestroyCursorIcon( HCURSOR handle )
{
Cursor
cursor
;
wine_tsx11_lock
();
if
(
!
XFindContext
(
gdi_display
,
(
XID
)
handle
,
cursor_context
,
(
char
**
)
&
cursor
))
{
TRACE
(
"%p xid %lx
\n
"
,
handle
,
cursor
);
XFreeCursor
(
gdi_display
,
cursor
);
XDeleteContext
(
gdi_display
,
(
XID
)
handle
,
cursor_context
);
}
wine_tsx11_unlock
();
}
/***********************************************************************
...
...
@@ -1252,7 +1243,6 @@ BOOL CDECL X11DRV_GetCursorPos(LPPOINT pos)
unsigned
int
xstate
;
BOOL
ret
;
wine_tsx11_lock
();
ret
=
XQueryPointer
(
display
,
root_window
,
&
root
,
&
child
,
&
rootX
,
&
rootY
,
&
winX
,
&
winY
,
&
xstate
);
if
(
ret
)
{
...
...
@@ -1261,7 +1251,6 @@ BOOL CDECL X11DRV_GetCursorPos(LPPOINT pos)
pos
->
y
=
winY
+
virtual_screen_rect
.
top
;
TRACE
(
"pointer at (%d,%d) server pos %d,%d
\n
"
,
pos
->
x
,
pos
->
y
,
old
.
x
,
old
.
y
);
}
wine_tsx11_unlock
();
return
ret
;
}
...
...
@@ -1520,7 +1509,6 @@ static void X11DRV_RawMotion( XGenericEventCookie *xev )
input
.
u
.
mi
.
dx
=
0
;
input
.
u
.
mi
.
dy
=
0
;
wine_tsx11_lock
();
for
(
i
=
0
;
i
<
thread_data
->
xi2_device_count
;
++
i
)
{
if
(
devices
[
i
].
deviceid
!=
event
->
deviceid
)
continue
;
...
...
@@ -1551,8 +1539,6 @@ static void X11DRV_RawMotion( XGenericEventCookie *xev )
break
;
}
wine_tsx11_unlock
();
if
(
thread_data
->
warp_serial
)
{
if
((
long
)(
xev
->
serial
-
thread_data
->
warp_serial
)
<
0
)
...
...
dlls/winex11.drv/systray.c
View file @
cf1be587
...
...
@@ -493,7 +493,6 @@ static BOOL init_systray(void)
}
display
=
thread_init_display
();
wine_tsx11_lock
();
if
(
DefaultScreen
(
display
)
==
0
)
systray_atom
=
x11drv_atom
(
_NET_SYSTEM_TRAY_S0
);
else
...
...
@@ -503,7 +502,6 @@ static BOOL init_systray(void)
systray_atom
=
XInternAtom
(
display
,
systray_buffer
,
False
);
}
XSelectInput
(
display
,
root_window
,
StructureNotifyMask
);
wine_tsx11_unlock
();
init_done
=
TRUE
;
return
TRUE
;
...
...
dlls/winex11.drv/window.c
View file @
cf1be587
...
...
@@ -135,7 +135,6 @@ static void remove_startup_notification(Display *display, Window window)
src
=
message
;
srclen
=
strlen
(
src
)
+
1
;
wine_tsx11_lock
();
while
(
srclen
>
0
)
{
int
msglen
=
srclen
;
...
...
@@ -149,7 +148,6 @@ static void remove_startup_notification(Display *display, Window window)
XSendEvent
(
display
,
DefaultRootWindow
(
display
),
False
,
PropertyChangeMask
,
&
xevent
);
xevent
.
xclient
.
message_type
=
x11drv_atom
(
_NET_STARTUP_INFO
);
}
wine_tsx11_unlock
();
}
...
...
@@ -343,8 +341,6 @@ static Window create_client_window( Display *display, struct x11drv_win_data *da
if
((
cy
=
data
->
client_rect
.
bottom
-
data
->
client_rect
.
top
)
<=
0
)
cy
=
1
;
else
if
(
cy
>
65535
)
cy
=
65535
;
wine_tsx11_lock
();
if
(
vis
)
{
attr
.
colormap
=
XCreateColormap
(
display
,
root_window
,
vis
->
visual
,
...
...
@@ -360,7 +356,7 @@ static Window create_client_window( Display *display, struct x11drv_win_data *da
client_visual
,
mask
,
&
attr
);
if
(
!
client
)
{
wine_tsx11_unlock
(
);
if
(
vis
)
XFreeColormap
(
display
,
attr
.
colormap
);
return
0
;
}
...
...
@@ -377,8 +373,6 @@ static Window create_client_window( Display *display, struct x11drv_win_data *da
XMapWindow
(
display
,
data
->
client_window
);
XSaveContext
(
display
,
data
->
client_window
,
winContext
,
(
char
*
)
data
->
hwnd
);
wine_tsx11_unlock
();
SetPropA
(
data
->
hwnd
,
client_window_prop
,
(
HANDLE
)
data
->
client_window
);
return
data
->
client_window
;
}
...
...
@@ -499,7 +493,6 @@ static void sync_window_text( Display *display, Window win, const WCHAR *text )
}
WideCharToMultiByte
(
CP_UTF8
,
0
,
text
,
strlenW
(
text
),
utf8_buffer
,
count
,
NULL
,
NULL
);
wine_tsx11_lock
();
if
(
XmbTextListToTextProperty
(
display
,
&
buffer
,
1
,
XStdICCTextStyle
,
&
prop
)
==
Success
)
{
XSetWMName
(
display
,
win
,
&
prop
);
...
...
@@ -513,7 +506,6 @@ static void sync_window_text( Display *display, Window win, const WCHAR *text )
*/
XChangeProperty
(
display
,
win
,
x11drv_atom
(
_NET_WM_NAME
),
x11drv_atom
(
UTF8_STRING
),
8
,
PropModeReplace
,
(
unsigned
char
*
)
utf8_buffer
,
count
);
wine_tsx11_unlock
();
HeapFree
(
GetProcessHeap
(),
0
,
utf8_buffer
);
HeapFree
(
GetProcessHeap
(),
0
,
buffer
);
...
...
@@ -562,7 +554,6 @@ static BOOL set_win_format( HWND hwnd, XID fbconfig_id )
XSetWindowAttributes
attrib
;
static
Window
dummy_parent
;
wine_tsx11_lock
();
attrib
.
override_redirect
=
True
;
if
(
!
dummy_parent
)
{
...
...
@@ -591,21 +582,17 @@ static BOOL set_win_format( HWND hwnd, XID fbconfig_id )
}
XFree
(
vis
);
XFlush
(
gdi_display
);
wine_tsx11_unlock
();
}
else
#endif
{
WARN
(
"XComposite is not available, using GLXPixmap hack
\n
"
);
wine_tsx11_lock
();
if
(
data
->
pixmap
)
XFreePixmap
(
gdi_display
,
data
->
pixmap
);
data
->
pixmap
=
XCreatePixmap
(
gdi_display
,
root_window
,
w
,
h
,
vis
->
depth
);
if
(
!
data
->
pixmap
)
{
XFree
(
vis
);
wine_tsx11_unlock
();
return
FALSE
;
}
...
...
@@ -618,7 +605,6 @@ static BOOL set_win_format( HWND hwnd, XID fbconfig_id )
}
XFree
(
vis
);
XFlush
(
gdi_display
);
wine_tsx11_unlock
();
if
(
data
->
pixmap
)
SetPropA
(
hwnd
,
pixmap_prop
,
(
HANDLE
)
data
->
pixmap
);
}
...
...
@@ -663,13 +649,11 @@ static void sync_gl_drawable(struct x11drv_win_data *data)
if
(
!
(
vis
=
visual_from_fbconfig_id
(
data
->
fbconfig_id
)))
return
;
wine_tsx11_lock
();
pix
=
XCreatePixmap
(
gdi_display
,
root_window
,
w
,
h
,
vis
->
depth
);
if
(
!
pix
)
{
ERR
(
"Failed to create pixmap for offscreen rendering
\n
"
);
XFree
(
vis
);
wine_tsx11_unlock
();
return
;
}
...
...
@@ -679,7 +663,6 @@ static void sync_gl_drawable(struct x11drv_win_data *data)
ERR
(
"Failed to create drawable for offscreen rendering
\n
"
);
XFreePixmap
(
gdi_display
,
pix
);
XFree
(
vis
);
wine_tsx11_unlock
();
return
;
}
...
...
@@ -695,7 +678,6 @@ static void sync_gl_drawable(struct x11drv_win_data *data)
data
->
gl_drawable
=
glxp
;
XFlush
(
gdi_display
);
wine_tsx11_unlock
();
SetPropA
(
data
->
hwnd
,
gl_drawable_prop
,
(
HANDLE
)
data
->
gl_drawable
);
SetPropA
(
data
->
hwnd
,
pixmap_prop
,
(
HANDLE
)
data
->
pixmap
);
...
...
@@ -750,7 +732,6 @@ static Window create_icon_window( Display *display, struct x11drv_win_data *data
attr
.
backing_store
=
NotUseful
/*WhenMapped*/
;
attr
.
colormap
=
X11DRV_PALETTE_PaletteXColormap
;
/* Needed due to our visual */
wine_tsx11_lock
();
data
->
icon_window
=
XCreateWindow
(
display
,
root_window
,
0
,
0
,
GetSystemMetrics
(
SM_CXICON
),
GetSystemMetrics
(
SM_CYICON
),
...
...
@@ -759,7 +740,6 @@ static Window create_icon_window( Display *display, struct x11drv_win_data *data
CWEventMask
|
CWBitGravity
|
CWBackingStore
|
CWColormap
,
&
attr
);
XSaveContext
(
display
,
data
->
icon_window
,
winContext
,
(
char
*
)
data
->
hwnd
);
XFlush
(
display
);
/* make sure the window exists before we start painting to it */
wine_tsx11_unlock
();
TRACE
(
"created %lx
\n
"
,
data
->
icon_window
);
SetPropA
(
data
->
hwnd
,
icon_window_prop
,
(
HANDLE
)
data
->
icon_window
);
...
...
@@ -1113,8 +1093,6 @@ static void set_initial_wm_hints( Display *display, struct x11drv_win_data *data
XClassHint
*
class_hints
;
char
*
process_name
=
get_process_name
();
wine_tsx11_lock
();
/* wm protocols */
i
=
0
;
protocols
[
i
++
]
=
x11drv_atom
(
WM_DELETE_WINDOW
);
...
...
@@ -1150,8 +1128,6 @@ static void set_initial_wm_hints( Display *display, struct x11drv_win_data *data
XA_WINDOW
,
32
,
PropModeReplace
,
(
unsigned
char
*
)
&
user_time_window
,
1
);
data
->
wm_hints
=
XAllocWMHints
();
wine_tsx11_unlock
();
if
(
data
->
wm_hints
)
{
data
->
wm_hints
->
flags
=
0
;
...
...
@@ -1215,8 +1191,6 @@ static void set_wm_hints( Display *display, struct x11drv_win_data *data )
if
((
owner_win
=
get_owner_whole_window
(
owner
,
data
->
managed
)))
group_leader
=
owner_win
;
}
wine_tsx11_lock
();
if
(
owner_win
)
XSetTransientForHint
(
display
,
data
->
whole_window
,
owner_win
);
/* size hints */
...
...
@@ -1242,8 +1216,6 @@ static void set_wm_hints( Display *display, struct x11drv_win_data *data )
data
->
wm_hints
->
window_group
=
group_leader
;
XSetWMHints
(
display
,
data
->
whole_window
,
data
->
wm_hints
);
}
wine_tsx11_unlock
();
}
...
...
@@ -1268,20 +1240,24 @@ Window init_clip_window(void)
*/
void
update_user_time
(
Time
time
)
{
wine_tsx11_lock
();
if
(
!
user_time_window
)
{
user_time_window
=
XCreateWindow
(
gdi_display
,
root_window
,
-
1
,
-
1
,
1
,
1
,
0
,
0
,
InputOnly
,
DefaultVisual
(
gdi_display
,
DefaultScreen
(
gdi_display
)),
0
,
NULL
);
Window
win
=
XCreateWindow
(
gdi_display
,
root_window
,
-
1
,
-
1
,
1
,
1
,
0
,
0
,
InputOnly
,
DefaultVisual
(
gdi_display
,
DefaultScreen
(
gdi_display
)),
0
,
NULL
);
if
(
InterlockedCompareExchangePointer
(
(
void
**
)
&
user_time_window
,
(
void
*
)
win
,
0
))
XDestroyWindow
(
gdi_display
,
win
);
TRACE
(
"user time window %lx
\n
"
,
user_time_window
);
}
if
(
time
&&
(
!
last_user_time
||
(
long
)(
time
-
last_user_time
)
>
0
))
if
(
!
time
)
return
;
XLockDisplay
(
gdi_display
);
if
(
!
last_user_time
||
(
long
)(
time
-
last_user_time
)
>
0
)
{
last_user_time
=
time
;
XChangeProperty
(
gdi_display
,
user_time_window
,
x11drv_atom
(
_NET_WM_USER_TIME
),
XA_CARDINAL
,
32
,
PropModeReplace
,
(
unsigned
char
*
)
&
time
,
1
);
}
wine_tsx11_unlock
(
);
XUnlockDisplay
(
gdi_display
);
}
/***********************************************************************
...
...
@@ -1783,7 +1759,6 @@ static void destroy_whole_window( Display *display, struct x11drv_win_data *data
TRACE
(
"win %p xwin %lx/%lx
\n
"
,
data
->
hwnd
,
data
->
whole_window
,
data
->
client_window
);
wine_tsx11_lock
();
XDeleteContext
(
display
,
data
->
whole_window
,
winContext
);
XDeleteContext
(
display
,
data
->
client_window
,
winContext
);
if
(
!
already_destroyed
)
XDestroyWindow
(
display
,
data
->
whole_window
);
...
...
@@ -1801,7 +1776,6 @@ static void destroy_whole_window( Display *display, struct x11drv_win_data *data
XFlush
(
display
);
XFree
(
data
->
wm_hints
);
data
->
wm_hints
=
NULL
;
wine_tsx11_unlock
();
RemovePropA
(
data
->
hwnd
,
whole_window_prop
);
RemovePropA
(
data
->
hwnd
,
client_window_prop
);
}
...
...
@@ -2706,7 +2680,6 @@ static BOOL is_netwm_supported( Display *display, Atom atom )
static
int
net_supported_count
=
-
1
;
int
i
;
wine_tsx11_lock
();
if
(
net_supported_count
==
-
1
)
{
Atom
type
;
...
...
@@ -2720,7 +2693,6 @@ static BOOL is_netwm_supported( Display *display, Atom atom )
else
net_supported_count
=
0
;
}
wine_tsx11_unlock
();
for
(
i
=
0
;
i
<
net_supported_count
;
i
++
)
if
(
net_supported
[
i
]
==
atom
)
return
TRUE
;
...
...
dlls/winex11.drv/wintab.c
View file @
cf1be587
...
...
@@ -550,13 +550,10 @@ BOOL CDECL X11DRV_LoadTabletInfo(HWND hwnddefault)
PK_BUTTONS
|
PK_X
|
PK_Y
|
PK_NORMAL_PRESSURE
|
PK_ORIENTATION
;
strcpyW
(
gSysDevice
.
PNPID
,
SZ_NON_PLUGINPLAY
);
wine_tsx11_lock
();
devices
=
pXListInputDevices
(
data
->
display
,
&
num_devices
);
if
(
!
devices
)
{
WARN
(
"XInput Extensions reported as not available
\n
"
);
wine_tsx11_unlock
();
return
FALSE
;
}
TRACE
(
"XListInputDevices reports %d devices
\n
"
,
num_devices
);
...
...
@@ -777,7 +774,6 @@ BOOL CDECL X11DRV_LoadTabletInfo(HWND hwnddefault)
WARN
(
"Did not find a valid stylus, unable to determine system context parameters. Wintab is disabled.
\n
"
);
}
wine_tsx11_unlock
();
return
TRUE
;
}
...
...
@@ -807,7 +803,6 @@ static void set_button_state(int curnum, XID deviceid)
int
loop
;
int
rc
=
0
;
wine_tsx11_lock
();
device
=
pXOpenDevice
(
data
->
display
,
deviceid
);
state
=
pXQueryDeviceState
(
data
->
display
,
device
);
...
...
@@ -832,7 +827,6 @@ static void set_button_state(int curnum, XID deviceid)
}
}
pXFreeDeviceState
(
state
);
wine_tsx11_unlock
();
button_state
[
curnum
]
=
rc
;
}
...
...
@@ -976,7 +970,6 @@ int CDECL X11DRV_AttachEventQueueToTablet(HWND hOwner)
TRACE
(
"Creating context for window %p (%lx) %i cursors
\n
"
,
hOwner
,
win
,
gNumCursors
);
wine_tsx11_lock
();
devices
=
pXListInputDevices
(
data
->
display
,
&
num_devices
);
X11DRV_expect_error
(
data
->
display
,
Tablet_ErrorHandler
,
NULL
);
...
...
@@ -1046,7 +1039,6 @@ int CDECL X11DRV_AttachEventQueueToTablet(HWND hOwner)
X11DRV_check_error
();
if
(
NULL
!=
devices
)
pXFreeDeviceList
(
devices
);
wine_tsx11_unlock
();
return
0
;
}
...
...
dlls/winex11.drv/x11drv_main.c
View file @
cf1be587
...
...
@@ -244,12 +244,9 @@ static inline BOOL ignore_error( Display *display, XErrorEvent *event )
*
* Setup a callback function that will be called on an X error. The
* callback must return non-zero if the error is the one it expected.
* This function acquires the x11 lock; X11DRV_check_error must be
* called in all cases to release it.
*/
void
X11DRV_expect_error
(
Display
*
display
,
x11drv_error_callback
callback
,
void
*
arg
)
{
wine_tsx11_lock
();
err_callback
=
callback
;
err_callback_display
=
display
;
err_callback_arg
=
arg
;
...
...
@@ -262,16 +259,12 @@ void X11DRV_expect_error( Display *display, x11drv_error_callback callback, void
* X11DRV_check_error
*
* Check if an expected X11 error occurred; return non-zero if yes.
* Also release the x11 lock obtained in X11DRV_expect_error.
* The caller is responsible for calling XSync first if necessary.
*/
int
X11DRV_check_error
(
void
)
{
int
ret
;
err_callback
=
NULL
;
ret
=
err_callback_result
;
wine_tsx11_unlock
();
return
ret
;
return
err_callback_result
;
}
...
...
@@ -657,10 +650,8 @@ struct x11drv_thread_data *x11drv_init_thread_data(void)
ERR
(
"could not create data
\n
"
);
ExitProcess
(
1
);
}
wine_tsx11_lock
();
if
(
!
(
data
->
display
=
XOpenDisplay
(
NULL
)))
{
wine_tsx11_unlock
();
ERR_
(
winediag
)(
"x11drv: Can't open display: %s. Please ensure that your X server is running and that $DISPLAY is set correctly.
\n
"
,
XDisplayName
(
NULL
));
ExitProcess
(
1
);
}
...
...
@@ -673,7 +664,6 @@ struct x11drv_thread_data *x11drv_init_thread_data(void)
#endif
if
(
TRACE_ON
(
synchronous
))
XSynchronize
(
data
->
display
,
True
);
wine_tsx11_unlock
();
set_queue_display_fd
(
data
->
display
);
TlsSetValue
(
thread_data_tls_index
,
data
);
...
...
@@ -726,7 +716,7 @@ void CDECL X11DRV_SetScreenSaveActive(BOOL bActivate)
int
timeout
,
interval
,
prefer_blanking
,
allow_exposures
;
static
int
last_timeout
=
15
*
60
;
wine_tsx11_lock
(
);
XLockDisplay
(
gdi_display
);
XGetScreenSaver
(
gdi_display
,
&
timeout
,
&
interval
,
&
prefer_blanking
,
&
allow_exposures
);
if
(
timeout
)
last_timeout
=
timeout
;
...
...
@@ -734,5 +724,5 @@ void CDECL X11DRV_SetScreenSaveActive(BOOL bActivate)
timeout
=
bActivate
?
last_timeout
:
0
;
XSetScreenSaver
(
gdi_display
,
timeout
,
interval
,
prefer_blanking
,
allow_exposures
);
wine_tsx11_unlock
(
);
XUnlockDisplay
(
gdi_display
);
}
dlls/winex11.drv/xdnd.c
View file @
cf1be587
...
...
@@ -242,10 +242,9 @@ void X11DRV_XDND_EnterEvent( HWND hWnd, XClientMessageEvent *event )
if
(
TRACE_ON
(
xdnd
))
{
unsigned
int
i
=
0
;
unsigned
int
i
;
wine_tsx11_lock
();
for
(;
i
<
count
;
i
++
)
for
(
i
=
0
;
i
<
count
;
i
++
)
{
if
(
xdndtypes
[
i
]
!=
0
)
{
...
...
@@ -254,7 +253,6 @@ void X11DRV_XDND_EnterEvent( HWND hWnd, XClientMessageEvent *event )
XFree
(
pn
);
}
}
wine_tsx11_unlock
();
}
/* Do a one-time data read and cache results */
...
...
dlls/winex11.drv/xim.c
View file @
cf1be587
...
...
@@ -257,10 +257,8 @@ void X11DRV_ForceXIMReset(HWND hwnd)
{
char
*
leftover
;
TRACE
(
"Forcing Reset %p
\n
"
,
ic
);
wine_tsx11_lock
();
leftover
=
XmbResetIC
(
ic
);
XFree
(
leftover
);
wine_tsx11_unlock
();
}
}
...
...
@@ -279,16 +277,12 @@ void X11DRV_SetPreeditState(HWND hwnd, BOOL fOpen)
else
state
=
XIMPreeditDisable
;
wine_tsx11_lock
();
attr
=
XVaCreateNestedList
(
0
,
XNPreeditState
,
state
,
NULL
);
if
(
attr
!=
NULL
)
{
XSetICValues
(
ic
,
XNPreeditAttributes
,
attr
,
NULL
);
XFree
(
attr
);
}
wine_tsx11_unlock
();
}
...
...
@@ -299,8 +293,6 @@ void X11DRV_SetPreeditState(HWND hwnd, BOOL fOpen)
*/
BOOL
X11DRV_InitXIM
(
const
char
*
input_style
)
{
BOOL
ret
;
if
(
!
strcasecmp
(
input_style
,
"offthespot"
))
ximStyleRequest
=
STYLE_OFFTHESPOT
;
else
if
(
!
strcasecmp
(
input_style
,
"overthespot"
))
...
...
@@ -308,18 +300,17 @@ BOOL X11DRV_InitXIM( const char *input_style )
else
if
(
!
strcasecmp
(
input_style
,
"root"
))
ximStyleRequest
=
STYLE_ROOT
;
wine_tsx11_lock
();
if
(
!
(
ret
=
XSupportsLocale
()))
if
(
!
XSupportsLocale
())
{
WARN
(
"X does not support locale.
\n
"
);
return
FALSE
;
}
else
if
(
XSetLocaleModifiers
(
""
)
==
NULL
)
if
(
XSetLocaleModifiers
(
""
)
==
NULL
)
{
WARN
(
"Could not set locale modifiers.
\n
"
);
ret
=
FALSE
;
ret
urn
FALSE
;
}
wine_tsx11_unlock
();
return
ret
;
return
TRUE
;
}
...
...
@@ -332,9 +323,7 @@ static void X11DRV_DestroyIM(XIM xim, XPointer p, XPointer data)
TRACE
(
"xim = %p, p = %p
\n
"
,
xim
,
p
);
thread_data
->
xim
=
NULL
;
ximStyle
=
0
;
wine_tsx11_lock
();
XRegisterIMInstantiateCallback
(
thread_data
->
display
,
NULL
,
NULL
,
NULL
,
open_xim_callback
,
NULL
);
wine_tsx11_unlock
();
}
/***********************************************************************
...
...
@@ -456,9 +445,7 @@ static BOOL open_xim( Display *display )
else
thread_data
->
font_set
=
NULL
;
wine_tsx11_unlock
();
IME_UpdateAssociation
(
NULL
);
wine_tsx11_lock
();
return
TRUE
;
}
...
...
@@ -472,10 +459,8 @@ void X11DRV_SetupXIM(void)
{
Display
*
display
=
thread_display
();
wine_tsx11_lock
();
if
(
!
open_xim
(
display
))
XRegisterIMInstantiateCallback
(
display
,
NULL
,
NULL
,
NULL
,
open_xim_callback
,
NULL
);
wine_tsx11_unlock
();
}
static
BOOL
X11DRV_DestroyIC
(
XIC
xic
,
XPointer
p
,
XPointer
data
)
...
...
@@ -501,8 +486,6 @@ XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
TRACE
(
"xim = %p
\n
"
,
xim
);
wine_tsx11_lock
();
/* use complex and slow XIC initialization method only for CJK */
if
(
langid
!=
LANG_CHINESE
&&
langid
!=
LANG_JAPANESE
&&
...
...
@@ -514,7 +497,6 @@ XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
XNFocusWindow
,
win
,
XNDestroyCallback
,
&
destroy
,
NULL
);
wine_tsx11_unlock
();
data
->
xic
=
xic
;
return
xic
;
}
...
...
@@ -614,7 +596,5 @@ XIC X11DRV_CreateIC(XIM xim, struct x11drv_win_data *data)
if
(
status
!=
NULL
)
XFree
(
status
);
wine_tsx11_unlock
();
return
xic
;
}
dlls/winex11.drv/xinerama.c
View file @
cf1be587
...
...
@@ -163,8 +163,6 @@ void xinerama_init( unsigned int width, unsigned int height )
int
i
;
RECT
rect
;
wine_tsx11_lock
();
SetRect
(
&
rect
,
0
,
0
,
width
,
height
);
if
(
root_window
!=
DefaultRootWindow
(
gdi_display
)
||
!
query_screens
())
...
...
@@ -196,8 +194,6 @@ void xinerama_init( unsigned int width, unsigned int height )
screen_height
=
primary
->
rcMonitor
.
bottom
-
primary
->
rcMonitor
.
top
;
TRACE
(
"virtual size: %s primary size: %dx%d
\n
"
,
wine_dbgstr_rect
(
&
virtual_screen_rect
),
screen_width
,
screen_height
);
wine_tsx11_unlock
();
}
...
...
dlls/winex11.drv/xrandr.c
View file @
cf1be587
...
...
@@ -116,19 +116,16 @@ static int xrandr10_get_current_mode(void)
{
SizeID
size
;
Rotation
rot
;
Window
root
;
XRRScreenConfiguration
*
sc
;
short
rate
;
unsigned
int
i
;
int
res
=
-
1
;
wine_tsx11_lock
();
root
=
RootWindow
(
gdi_display
,
DefaultScreen
(
gdi_display
));
sc
=
pXRRGetScreenInfo
(
gdi_display
,
root
);
sc
=
pXRRGetScreenInfo
(
gdi_display
,
DefaultRootWindow
(
gdi_display
));
size
=
pXRRConfigCurrentConfiguration
(
sc
,
&
rot
);
rate
=
pXRRConfigCurrentRate
(
sc
);
pXRRFreeScreenConfigInfo
(
sc
);
wine_tsx11_unlock
();
for
(
i
=
0
;
i
<
xrandr_mode_count
;
++
i
)
{
if
(
xrandr10_modes
[
i
]
==
size
&&
dd_modes
[
i
].
refresh_rate
==
rate
)
...
...
@@ -154,8 +151,7 @@ static LONG xrandr10_set_current_mode( int mode )
Status
stat
;
short
rate
;
wine_tsx11_lock
();
root
=
RootWindow
(
gdi_display
,
DefaultScreen
(
gdi_display
));
root
=
DefaultRootWindow
(
gdi_display
);
sc
=
pXRRGetScreenInfo
(
gdi_display
,
root
);
size
=
pXRRConfigCurrentConfiguration
(
sc
,
&
rot
);
mode
=
mode
%
xrandr_mode_count
;
...
...
@@ -174,7 +170,7 @@ static LONG xrandr10_set_current_mode( int mode )
stat
=
pXRRSetScreenConfig
(
gdi_display
,
sc
,
root
,
size
,
rot
,
CurrentTime
);
pXRRFreeScreenConfigInfo
(
sc
);
wine_tsx11_unlock
();
if
(
stat
==
RRSetConfigSuccess
)
{
X11DRV_resize_desktop
(
dd_modes
[
mode
].
width
,
dd_modes
[
mode
].
height
);
...
...
@@ -271,10 +267,8 @@ static int xrandr12_get_current_mode(void)
XRRCrtcInfo
*
crtc_info
;
int
i
,
ret
=
-
1
;
wine_tsx11_lock
();
if
(
!
(
resources
=
xrandr_get_screen_resources
(
gdi_display
,
root_window
)))
{
wine_tsx11_unlock
();
ERR
(
"Failed to get screen resources.
\n
"
);
return
0
;
}
...
...
@@ -282,7 +276,6 @@ static int xrandr12_get_current_mode(void)
if
(
!
resources
->
ncrtc
||
!
(
crtc_info
=
pXRRGetCrtcInfo
(
gdi_display
,
resources
,
resources
->
crtcs
[
0
]
)))
{
pXRRFreeScreenResources
(
resources
);
wine_tsx11_unlock
();
ERR
(
"Failed to get CRTC info.
\n
"
);
return
0
;
}
...
...
@@ -301,7 +294,6 @@ static int xrandr12_get_current_mode(void)
pXRRFreeCrtcInfo
(
crtc_info
);
pXRRFreeScreenResources
(
resources
);
wine_tsx11_unlock
();
if
(
ret
==
-
1
)
{
...
...
@@ -320,10 +312,8 @@ static LONG xrandr12_set_current_mode( int mode )
mode
=
mode
%
xrandr_mode_count
;
wine_tsx11_lock
();
if
(
!
(
resources
=
xrandr_get_screen_resources
(
gdi_display
,
root_window
)))
{
wine_tsx11_unlock
();
ERR
(
"Failed to get screen resources.
\n
"
);
return
DISP_CHANGE_FAILED
;
}
...
...
@@ -331,7 +321,6 @@ static LONG xrandr12_set_current_mode( int mode )
if
(
!
resources
->
ncrtc
||
!
(
crtc_info
=
pXRRGetCrtcInfo
(
gdi_display
,
resources
,
resources
->
crtcs
[
0
]
)))
{
pXRRFreeScreenResources
(
resources
);
wine_tsx11_unlock
();
ERR
(
"Failed to get CRTC info.
\n
"
);
return
DISP_CHANGE_FAILED
;
}
...
...
@@ -344,7 +333,6 @@ static LONG xrandr12_set_current_mode( int mode )
pXRRFreeCrtcInfo
(
crtc_info
);
pXRRFreeScreenResources
(
resources
);
wine_tsx11_unlock
();
if
(
status
!=
RRSetConfigSuccess
)
{
...
...
@@ -448,11 +436,10 @@ void X11DRV_XRandR_Init(void)
if
(
!
(
ret
=
load_xrandr
()))
return
;
/* can't load the Xrandr library */
/* see if Xrandr is available */
wine_tsx11_lock
();
if
(
!
pXRRQueryExtension
(
gdi_display
,
&
event_base
,
&
error_base
))
goto
done
;
if
(
!
pXRRQueryExtension
(
gdi_display
,
&
event_base
,
&
error_base
))
return
;
X11DRV_expect_error
(
gdi_display
,
XRandRErrorHandler
,
NULL
);
ok
=
pXRRQueryVersion
(
gdi_display
,
&
major
,
&
minor
);
if
(
X11DRV_check_error
()
||
!
ok
)
goto
done
;
if
(
X11DRV_check_error
()
||
!
ok
)
return
;
TRACE
(
"Found XRandR %d.%d.
\n
"
,
major
,
minor
);
...
...
@@ -470,9 +457,6 @@ void X11DRV_XRandR_Init(void)
else
#endif
xrandr10_init_modes
();
done:
wine_tsx11_unlock
();
}
#else
/* SONAME_LIBXRANDR */
...
...
dlls/winex11.drv/xvidmode.c
View file @
cf1be587
...
...
@@ -137,7 +137,6 @@ static LONG X11DRV_XF86VM_SetCurrentMode(int mode)
}
mode
=
mode
%
real_xf86vm_mode_count
;
wine_tsx11_lock
();
TRACE
(
"Resizing X display to %dx%d
\n
"
,
real_xf86vm_modes
[
mode
]
->
hdisplay
,
real_xf86vm_modes
[
mode
]
->
vdisplay
);
pXF86VidModeSwitchToMode
(
gdi_display
,
DefaultScreen
(
gdi_display
),
real_xf86vm_modes
[
mode
]);
...
...
@@ -147,7 +146,6 @@ static LONG X11DRV_XF86VM_SetCurrentMode(int mode)
XWarpPointer
(
gdi_display
,
None
,
DefaultRootWindow
(
gdi_display
),
0
,
0
,
0
,
0
,
0
,
0
);
#endif
XSync
(
gdi_display
,
False
);
wine_tsx11_unlock
();
X11DRV_resize_desktop
(
real_xf86vm_modes
[
mode
]
->
hdisplay
,
real_xf86vm_modes
[
mode
]
->
vdisplay
);
return
DISP_CHANGE_SUCCESSFUL
;
}
...
...
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