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
8a7fbf54
Commit
8a7fbf54
authored
Nov 21, 2003
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed more TSX functions.
parent
720af28e
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
156 additions
and
327 deletions
+156
-327
X11_calls
dlls/x11drv/X11_calls
+0
-21
ts_xlib.c
dlls/x11drv/ts_xlib.c
+0
-189
ts_xlib.h
dlls/x11drv/ts_xlib.h
+0
-21
xrender.c
dlls/x11drv/xrender.c
+15
-10
bitmap.c
graphics/x11drv/bitmap.c
+8
-4
brush.c
graphics/x11drv/brush.c
+4
-2
clipping.c
graphics/x11drv/clipping.c
+7
-3
codepage.c
graphics/x11drv/codepage.c
+23
-10
dib.c
graphics/x11drv/dib.c
+3
-1
graphics.c
graphics/x11drv/graphics.c
+59
-41
palette.c
graphics/x11drv/palette.c
+6
-2
text.c
graphics/x11drv/text.c
+31
-23
No files found.
dlls/x11drv/X11_calls
View file @
8a7fbf54
...
...
@@ -4,40 +4,19 @@
# To add a new call, put it on this list and run tools/make_X11wrappers.
# Also read the comments at the top of tools/make_X11wrappers.
#
XChangeGC
XChangeProperty
XDrawArc
XDrawLine
XDrawLines
XDrawString16
XDrawText16
XFillArc
XFillRectangle
XFree
XFreeFont
XFreePixmap
XGetAtomName
XGetFontProperty
XGetGeometry
XGetSelectionOwner
XGetWindowProperty
XInternAtom
XKeycodeToKeysym
XKeysymToKeycode
XKeysymToString
XMapWindow
XQueryPointer
XQueryTree
XSetArcMode
XSetClipRectangles
XSetDashes
XSetForeground
XSetFunction
XSetLineAttributes
XSetSelectionOwner
XSetSubwindowMode
XStoreColor
XSync
XTextExtents16
XTextWidth16
XUnmapWindow
dlls/x11drv/ts_xlib.c
View file @
8a7fbf54
...
...
@@ -31,15 +31,6 @@ char * TSXKeysymToString(KeySym a0)
return
r
;
}
Atom
TSXInternAtom
(
Display
*
a0
,
const
char
*
a1
,
int
a2
)
{
Atom
r
;
wine_tsx11_lock
();
r
=
XInternAtom
(
a0
,
a1
,
a2
);
wine_tsx11_unlock
();
return
r
;
}
Window
TSXGetSelectionOwner
(
Display
*
a0
,
Atom
a1
)
{
Window
r
;
...
...
@@ -58,15 +49,6 @@ KeySym TSXKeycodeToKeysym(Display* a0, unsigned int a1, int a2)
return
r
;
}
int
TSXChangeGC
(
Display
*
a0
,
GC
a1
,
unsigned
long
a2
,
XGCValues
*
a3
)
{
int
r
;
wine_tsx11_lock
();
r
=
XChangeGC
(
a0
,
a1
,
a2
,
a3
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXChangeProperty
(
Display
*
a0
,
Window
a1
,
Atom
a2
,
Atom
a3
,
int
a4
,
int
a5
,
const
unsigned
char
*
a6
,
int
a7
)
{
int
r
;
...
...
@@ -76,69 +58,6 @@ int TSXChangeProperty(Display* a0, Window a1, Atom a2, Atom a3, int a4, int a5,
return
r
;
}
int
TSXDrawArc
(
Display
*
a0
,
Drawable
a1
,
GC
a2
,
int
a3
,
int
a4
,
unsigned
int
a5
,
unsigned
int
a6
,
int
a7
,
int
a8
)
{
int
r
;
wine_tsx11_lock
();
r
=
XDrawArc
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXDrawLine
(
Display
*
a0
,
Drawable
a1
,
GC
a2
,
int
a3
,
int
a4
,
int
a5
,
int
a6
)
{
int
r
;
wine_tsx11_lock
();
r
=
XDrawLine
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXDrawLines
(
Display
*
a0
,
Drawable
a1
,
GC
a2
,
XPoint
*
a3
,
int
a4
,
int
a5
)
{
int
r
;
wine_tsx11_lock
();
r
=
XDrawLines
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXDrawString16
(
Display
*
a0
,
Drawable
a1
,
GC
a2
,
int
a3
,
int
a4
,
const
XChar2b
*
a5
,
int
a6
)
{
int
r
;
wine_tsx11_lock
();
r
=
XDrawString16
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXDrawText16
(
Display
*
a0
,
Drawable
a1
,
GC
a2
,
int
a3
,
int
a4
,
XTextItem16
*
a5
,
int
a6
)
{
int
r
;
wine_tsx11_lock
();
r
=
XDrawText16
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXFillArc
(
Display
*
a0
,
Drawable
a1
,
GC
a2
,
int
a3
,
int
a4
,
unsigned
int
a5
,
unsigned
int
a6
,
int
a7
,
int
a8
)
{
int
r
;
wine_tsx11_lock
();
r
=
XFillArc
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXFillRectangle
(
Display
*
a0
,
Drawable
a1
,
GC
a2
,
int
a3
,
int
a4
,
unsigned
int
a5
,
unsigned
int
a6
)
{
int
r
;
wine_tsx11_lock
();
r
=
XFillRectangle
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXFree
(
void
*
a0
)
{
int
r
;
...
...
@@ -157,15 +76,6 @@ int TSXFreeFont(Display* a0, XFontStruct* a1)
return
r
;
}
int
TSXFreePixmap
(
Display
*
a0
,
Pixmap
a1
)
{
int
r
;
wine_tsx11_lock
();
r
=
XFreePixmap
(
a0
,
a1
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXGetFontProperty
(
XFontStruct
*
a0
,
Atom
a1
,
unsigned
long
*
a2
)
{
int
r
;
...
...
@@ -175,15 +85,6 @@ int TSXGetFontProperty(XFontStruct* a0, Atom a1, unsigned long* a2)
return
r
;
}
int
TSXGetGeometry
(
Display
*
a0
,
Drawable
a1
,
Window
*
a2
,
int
*
a3
,
int
*
a4
,
unsigned
int
*
a5
,
unsigned
int
*
a6
,
unsigned
int
*
a7
,
unsigned
int
*
a8
)
{
int
r
;
wine_tsx11_lock
();
r
=
XGetGeometry
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXGetWindowProperty
(
Display
*
a0
,
Window
a1
,
Atom
a2
,
long
a3
,
long
a4
,
int
a5
,
Atom
a6
,
Atom
*
a7
,
int
*
a8
,
unsigned
long
*
a9
,
unsigned
long
*
a10
,
unsigned
char
**
a11
)
{
int
r
;
...
...
@@ -229,60 +130,6 @@ int TSXQueryTree(Display* a0, Window a1, Window* a2, Window* a3, Window** a4, u
return
r
;
}
int
TSXSetArcMode
(
Display
*
a0
,
GC
a1
,
int
a2
)
{
int
r
;
wine_tsx11_lock
();
r
=
XSetArcMode
(
a0
,
a1
,
a2
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXSetClipRectangles
(
Display
*
a0
,
GC
a1
,
int
a2
,
int
a3
,
XRectangle
*
a4
,
int
a5
,
int
a6
)
{
int
r
;
wine_tsx11_lock
();
r
=
XSetClipRectangles
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXSetDashes
(
Display
*
a0
,
GC
a1
,
int
a2
,
const
char
*
a3
,
int
a4
)
{
int
r
;
wine_tsx11_lock
();
r
=
XSetDashes
(
a0
,
a1
,
a2
,
a3
,
a4
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXSetForeground
(
Display
*
a0
,
GC
a1
,
unsigned
long
a2
)
{
int
r
;
wine_tsx11_lock
();
r
=
XSetForeground
(
a0
,
a1
,
a2
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXSetFunction
(
Display
*
a0
,
GC
a1
,
int
a2
)
{
int
r
;
wine_tsx11_lock
();
r
=
XSetFunction
(
a0
,
a1
,
a2
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXSetLineAttributes
(
Display
*
a0
,
GC
a1
,
unsigned
int
a2
,
int
a3
,
int
a4
,
int
a5
)
{
int
r
;
wine_tsx11_lock
();
r
=
XSetLineAttributes
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXSetSelectionOwner
(
Display
*
a0
,
Atom
a1
,
Window
a2
,
Time
a3
)
{
int
r
;
...
...
@@ -292,24 +139,6 @@ int TSXSetSelectionOwner(Display* a0, Atom a1, Window a2, Time a3)
return
r
;
}
int
TSXSetSubwindowMode
(
Display
*
a0
,
GC
a1
,
int
a2
)
{
int
r
;
wine_tsx11_lock
();
r
=
XSetSubwindowMode
(
a0
,
a1
,
a2
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXStoreColor
(
Display
*
a0
,
Colormap
a1
,
XColor
*
a2
)
{
int
r
;
wine_tsx11_lock
();
r
=
XStoreColor
(
a0
,
a1
,
a2
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXSync
(
Display
*
a0
,
int
a1
)
{
int
r
;
...
...
@@ -319,24 +148,6 @@ int TSXSync(Display* a0, int a1)
return
r
;
}
int
TSXTextExtents16
(
XFontStruct
*
a0
,
const
XChar2b
*
a1
,
int
a2
,
int
*
a3
,
int
*
a4
,
int
*
a5
,
XCharStruct
*
a6
)
{
int
r
;
wine_tsx11_lock
();
r
=
XTextExtents16
(
a0
,
a1
,
a2
,
a3
,
a4
,
a5
,
a6
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXTextWidth16
(
XFontStruct
*
a0
,
const
XChar2b
*
a1
,
int
a2
)
{
int
r
;
wine_tsx11_lock
();
r
=
XTextWidth16
(
a0
,
a1
,
a2
);
wine_tsx11_unlock
();
return
r
;
}
int
TSXUnmapWindow
(
Display
*
a0
,
Window
a1
)
{
int
r
;
...
...
dlls/x11drv/ts_xlib.h
View file @
8a7fbf54
...
...
@@ -21,40 +21,19 @@ extern void wine_tsx11_unlock(void);
extern
char
*
TSXGetAtomName
(
Display
*
,
Atom
);
extern
char
*
TSXKeysymToString
(
KeySym
);
extern
Atom
TSXInternAtom
(
Display
*
,
const
char
*
,
int
);
extern
Window
TSXGetSelectionOwner
(
Display
*
,
Atom
);
extern
KeySym
TSXKeycodeToKeysym
(
Display
*
,
unsigned
int
,
int
);
extern
int
TSXChangeGC
(
Display
*
,
GC
,
unsigned
long
,
XGCValues
*
);
extern
int
TSXChangeProperty
(
Display
*
,
Window
,
Atom
,
Atom
,
int
,
int
,
const
unsigned
char
*
,
int
);
extern
int
TSXDrawArc
(
Display
*
,
Drawable
,
GC
,
int
,
int
,
unsigned
int
,
unsigned
int
,
int
,
int
);
extern
int
TSXDrawLine
(
Display
*
,
Drawable
,
GC
,
int
,
int
,
int
,
int
);
extern
int
TSXDrawLines
(
Display
*
,
Drawable
,
GC
,
XPoint
*
,
int
,
int
);
extern
int
TSXDrawString16
(
Display
*
,
Drawable
,
GC
,
int
,
int
,
const
XChar2b
*
,
int
);
extern
int
TSXDrawText16
(
Display
*
,
Drawable
,
GC
,
int
,
int
,
XTextItem16
*
,
int
);
extern
int
TSXFillArc
(
Display
*
,
Drawable
,
GC
,
int
,
int
,
unsigned
int
,
unsigned
int
,
int
,
int
);
extern
int
TSXFillRectangle
(
Display
*
,
Drawable
,
GC
,
int
,
int
,
unsigned
int
,
unsigned
int
);
extern
int
TSXFree
(
void
*
);
extern
int
TSXFreeFont
(
Display
*
,
XFontStruct
*
);
extern
int
TSXFreePixmap
(
Display
*
,
Pixmap
);
extern
int
TSXGetFontProperty
(
XFontStruct
*
,
Atom
,
unsigned
long
*
);
extern
int
TSXGetGeometry
(
Display
*
,
Drawable
,
Window
*
,
int
*
,
int
*
,
unsigned
int
*
,
unsigned
int
*
,
unsigned
int
*
,
unsigned
int
*
);
extern
int
TSXGetWindowProperty
(
Display
*
,
Window
,
Atom
,
long
,
long
,
int
,
Atom
,
Atom
*
,
int
*
,
unsigned
long
*
,
unsigned
long
*
,
unsigned
char
**
);
extern
KeyCode
TSXKeysymToKeycode
(
Display
*
,
KeySym
);
extern
int
TSXMapWindow
(
Display
*
,
Window
);
extern
int
TSXQueryPointer
(
Display
*
,
Window
,
Window
*
,
Window
*
,
int
*
,
int
*
,
int
*
,
int
*
,
unsigned
int
*
);
extern
int
TSXQueryTree
(
Display
*
,
Window
,
Window
*
,
Window
*
,
Window
**
,
unsigned
int
*
);
extern
int
TSXSetArcMode
(
Display
*
,
GC
,
int
);
extern
int
TSXSetClipRectangles
(
Display
*
,
GC
,
int
,
int
,
XRectangle
*
,
int
,
int
);
extern
int
TSXSetDashes
(
Display
*
,
GC
,
int
,
const
char
*
,
int
);
extern
int
TSXSetForeground
(
Display
*
,
GC
,
unsigned
long
);
extern
int
TSXSetFunction
(
Display
*
,
GC
,
int
);
extern
int
TSXSetLineAttributes
(
Display
*
,
GC
,
unsigned
int
,
int
,
int
,
int
);
extern
int
TSXSetSelectionOwner
(
Display
*
,
Atom
,
Window
,
Time
);
extern
int
TSXSetSubwindowMode
(
Display
*
,
GC
,
int
);
extern
int
TSXStoreColor
(
Display
*
,
Colormap
,
XColor
*
);
extern
int
TSXSync
(
Display
*
,
int
);
extern
int
TSXTextExtents16
(
XFontStruct
*
,
const
XChar2b
*
,
int
,
int
*
,
int
*
,
int
*
,
XCharStruct
*
);
extern
int
TSXTextWidth16
(
XFontStruct
*
,
const
XChar2b
*
,
int
);
extern
int
TSXUnmapWindow
(
Display
*
,
Window
);
#endif
/* defined(HAVE_X11_XLIB_H) */
...
...
dlls/x11drv/xrender.c
View file @
8a7fbf54
...
...
@@ -1004,8 +1004,9 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
xgcval
.
function
=
GXcopy
;
xgcval
.
background
=
physDev
->
backgroundPixel
;
xgcval
.
fill_style
=
FillSolid
;
TSXChangeGC
(
gdi_display
,
physDev
->
gc
,
GCFunction
|
GCBackground
|
GCFillStyle
,
&
xgcval
);
wine_tsx11_lock
();
XChangeGC
(
gdi_display
,
physDev
->
gc
,
GCFunction
|
GCBackground
|
GCFillStyle
,
&
xgcval
);
wine_tsx11_unlock
();
X11DRV_LockDIBSection
(
physDev
,
DIB_Status_GdiMod
,
FALSE
);
...
...
@@ -1023,10 +1024,12 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
}
if
(
flags
&
ETO_OPAQUE
)
{
TSXSetForeground
(
gdi_display
,
physDev
->
gc
,
backgroundPixel
);
TSXFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
,
rc
.
bottom
-
rc
.
top
);
wine_tsx11_lock
();
XSetForeground
(
gdi_display
,
physDev
->
gc
,
backgroundPixel
);
XFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
,
rc
.
bottom
-
rc
.
top
);
wine_tsx11_unlock
();
}
if
(
count
==
0
)
{
...
...
@@ -1159,10 +1162,12 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
if
(
!
((
flags
&
ETO_CLIPPED
)
&&
(
flags
&
ETO_OPAQUE
)))
{
if
(
!
(
flags
&
ETO_OPAQUE
)
||
x
<
rc
.
left
||
x
+
width
>=
rc
.
right
||
y
-
tm
.
tmAscent
<
rc
.
top
||
y
+
tm
.
tmDescent
>=
rc
.
bottom
)
{
TSXSetForeground
(
gdi_display
,
physDev
->
gc
,
backgroundPixel
);
TSXFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
-
tm
.
tmAscent
,
width
,
tm
.
tmAscent
+
tm
.
tmDescent
);
wine_tsx11_lock
();
XSetForeground
(
gdi_display
,
physDev
->
gc
,
backgroundPixel
);
XFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
-
tm
.
tmAscent
,
width
,
tm
.
tmAscent
+
tm
.
tmDescent
);
wine_tsx11_unlock
();
}
}
}
...
...
graphics/x11drv/bitmap.c
View file @
8a7fbf54
...
...
@@ -425,8 +425,10 @@ BOOL X11DRV_DeleteBitmap( HBITMAP hbitmap )
BITMAPOBJ
*
bmp
=
(
BITMAPOBJ
*
)
GDI_GetObjPtr
(
hbitmap
,
BITMAP_MAGIC
);
if
(
bmp
)
{
if
(
bmp
->
physBitmap
)
TSXFreePixmap
(
gdi_display
,
(
Pixmap
)
bmp
->
physBitmap
);
wine_tsx11_lock
();
if
(
bmp
->
physBitmap
)
XFreePixmap
(
gdi_display
,
(
Pixmap
)
bmp
->
physBitmap
);
bmp
->
physBitmap
=
NULL
;
wine_tsx11_unlock
();
if
(
bmp
->
dib
)
X11DRV_DIB_DeleteDIBSection
(
bmp
);
GDI_ReleaseObj
(
hbitmap
);
}
...
...
@@ -450,9 +452,11 @@ HBITMAP X11DRV_BITMAP_CreateBitmapHeaderFromPixmap(Pixmap pixmap)
unsigned
int
depth
,
width
,
height
;
/* Get the Pixmap dimensions and bit depth */
if
(
0
==
TSXGetGeometry
(
gdi_display
,
pixmap
,
&
root
,
&
x
,
&
y
,
&
width
,
&
height
,
&
border_width
,
&
depth
)
)
goto
END
;
wine_tsx11_lock
();
if
(
!
XGetGeometry
(
gdi_display
,
pixmap
,
&
root
,
&
x
,
&
y
,
&
width
,
&
height
,
&
border_width
,
&
depth
))
depth
=
0
;
wine_tsx11_unlock
();
if
(
!
depth
)
goto
END
;
TRACE
(
"
\t
Pixmap properties: width=%d, height=%d, depth=%d
\n
"
,
width
,
height
,
depth
);
...
...
graphics/x11drv/brush.c
View file @
8a7fbf54
...
...
@@ -235,8 +235,10 @@ HBRUSH X11DRV_SelectBrush( X11DRV_PDEVICE *physDev, HBRUSH hbrush )
if
(
physDev
->
brush
.
pixmap
)
{
TSXFreePixmap
(
gdi_display
,
physDev
->
brush
.
pixmap
);
physDev
->
brush
.
pixmap
=
0
;
wine_tsx11_lock
();
XFreePixmap
(
gdi_display
,
physDev
->
brush
.
pixmap
);
wine_tsx11_unlock
();
physDev
->
brush
.
pixmap
=
0
;
}
physDev
->
brush
.
style
=
logbrush
.
lbStyle
;
if
(
hbrush
==
GetStockObject
(
DC_BRUSH
))
...
...
graphics/x11drv/clipping.c
View file @
8a7fbf54
...
...
@@ -117,8 +117,10 @@ void X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev, HRGN hrgn )
RGNDATA
*
data
;
if
(
!
(
data
=
X11DRV_GetRegionData
(
hrgn
,
0
)))
return
;
TSXSetClipRectangles
(
gdi_display
,
physDev
->
gc
,
physDev
->
org
.
x
,
physDev
->
org
.
y
,
(
XRectangle
*
)
data
->
Buffer
,
data
->
rdh
.
nCount
,
YXBanded
);
wine_tsx11_lock
();
XSetClipRectangles
(
gdi_display
,
physDev
->
gc
,
physDev
->
org
.
x
,
physDev
->
org
.
y
,
(
XRectangle
*
)
data
->
Buffer
,
data
->
rdh
.
nCount
,
YXBanded
);
wine_tsx11_unlock
();
HeapFree
(
GetProcessHeap
(),
0
,
data
);
}
...
...
@@ -142,7 +144,9 @@ void X11DRV_SetDrawable( HDC hdc, Drawable drawable, int mode, const POINT *org,
physDev
->
org
=
*
org
;
physDev
->
drawable
=
drawable
;
physDev
->
drawable_org
=
*
drawable_org
;
TSXSetSubwindowMode
(
gdi_display
,
physDev
->
gc
,
mode
);
wine_tsx11_lock
();
XSetSubwindowMode
(
gdi_display
,
physDev
->
gc
,
mode
);
wine_tsx11_unlock
();
GDI_ReleaseObj
(
hdc
);
}
}
...
...
graphics/x11drv/codepage.c
View file @
8a7fbf54
...
...
@@ -409,19 +409,27 @@ static void X11DRV_DrawString_normal( fontObject* pfo, Display* pdisp,
Drawable
d
,
GC
gc
,
int
x
,
int
y
,
XChar2b
*
pstr
,
int
count
)
{
TSXDrawString16
(
pdisp
,
d
,
gc
,
x
,
y
,
pstr
,
count
);
wine_tsx11_lock
();
XDrawString16
(
pdisp
,
d
,
gc
,
x
,
y
,
pstr
,
count
);
wine_tsx11_unlock
();
}
static
int
X11DRV_TextWidth_normal
(
fontObject
*
pfo
,
XChar2b
*
pstr
,
int
count
)
{
return
TSXTextWidth16
(
pfo
->
fs
,
pstr
,
count
);
int
ret
;
wine_tsx11_lock
();
ret
=
XTextWidth16
(
pfo
->
fs
,
pstr
,
count
);
wine_tsx11_unlock
();
return
ret
;
}
static
void
X11DRV_DrawText_normal
(
fontObject
*
pfo
,
Display
*
pdisp
,
Drawable
d
,
GC
gc
,
int
x
,
int
y
,
XTextItem16
*
pitems
,
int
count
)
{
TSXDrawText16
(
pdisp
,
d
,
gc
,
x
,
y
,
pitems
,
count
);
wine_tsx11_lock
();
XDrawText16
(
pdisp
,
d
,
gc
,
x
,
y
,
pitems
,
count
);
wine_tsx11_unlock
();
}
static
void
X11DRV_TextExtents_normal
(
fontObject
*
pfo
,
XChar2b
*
pstr
,
int
count
,
...
...
@@ -430,7 +438,9 @@ static void X11DRV_TextExtents_normal( fontObject* pfo, XChar2b* pstr, int count
{
XCharStruct
info
;
TSXTextExtents16
(
pfo
->
fs
,
pstr
,
count
,
pdir
,
pascent
,
pdescent
,
&
info
);
wine_tsx11_lock
();
XTextExtents16
(
pfo
->
fs
,
pstr
,
count
,
pdir
,
pascent
,
pdescent
,
&
info
);
wine_tsx11_unlock
();
*
pwidth
=
info
.
width
;
}
...
...
@@ -519,13 +529,14 @@ int X11DRV_TextWidth_dbcs_2fonts( fontObject* pfo, XChar2b* pstr, int count )
if
(
pfos
[
0
]
==
NULL
)
pfos
[
0
]
=
pfo
;
width
=
0
;
wine_tsx11_lock
();
for
(
i
=
0
;
i
<
count
;
i
++
)
{
curfont
=
(
pstr
->
byte1
!=
0
)
?
1
:
0
;
width
+=
TS
XTextWidth16
(
pfos
[
curfont
]
->
fs
,
pstr
,
1
);
width
+=
XTextWidth16
(
pfos
[
curfont
]
->
fs
,
pstr
,
1
);
pstr
++
;
}
wine_tsx11_unlock
();
return
width
;
}
...
...
@@ -576,7 +587,9 @@ void X11DRV_DrawText_dbcs_2fonts( fontObject* pfo, Display* pdisp, Drawable d,
pti
->
nchars
=
pstr
-
pti
->
chars
;
pitems
++
;
pti
++
;
}
TSXDrawText16
(
pdisp
,
d
,
gc
,
x
,
y
,
ptibuf
,
pti
-
ptibuf
);
wine_tsx11_lock
();
XDrawText16
(
pdisp
,
d
,
gc
,
x
,
y
,
ptibuf
,
pti
-
ptibuf
);
wine_tsx11_unlock
();
HeapFree
(
GetProcessHeap
(),
0
,
ptibuf
);
}
...
...
@@ -598,18 +611,18 @@ void X11DRV_TextExtents_dbcs_2fonts( fontObject* pfo, XChar2b* pstr, int count,
width
=
0
;
*
pascent
=
0
;
*
pdescent
=
0
;
wine_tsx11_lock
();
for
(
i
=
0
;
i
<
count
;
i
++
)
{
curfont
=
(
pstr
->
byte1
!=
0
)
?
1
:
0
;
TSXTextExtents16
(
pfos
[
curfont
]
->
fs
,
pstr
,
1
,
pdir
,
&
ascent
,
&
descent
,
&
info
);
XTextExtents16
(
pfos
[
curfont
]
->
fs
,
pstr
,
1
,
pdir
,
&
ascent
,
&
descent
,
&
info
);
if
(
*
pascent
<
ascent
)
*
pascent
=
ascent
;
if
(
*
pdescent
<
descent
)
*
pdescent
=
descent
;
width
+=
info
.
width
;
pstr
++
;
}
wine_tsx11_unlock
();
*
pwidth
=
width
;
}
...
...
graphics/x11drv/dib.c
View file @
8a7fbf54
...
...
@@ -4825,7 +4825,9 @@ INT X11DRV_SetDIBitsToDevice( X11DRV_PDEVICE *physDev, INT xDest, INT yDest, DWO
if
(
!
cx
||
!
cy
)
return
lines
;
X11DRV_SetupGCForText
(
physDev
);
/* To have the correct colors */
TSXSetFunction
(
gdi_display
,
physDev
->
gc
,
X11DRV_XROPfunction
[
dc
->
ROPmode
-
1
]);
wine_tsx11_lock
();
XSetFunction
(
gdi_display
,
physDev
->
gc
,
X11DRV_XROPfunction
[
dc
->
ROPmode
-
1
]);
wine_tsx11_unlock
();
switch
(
descr
.
infoBpp
)
{
...
...
graphics/x11drv/graphics.c
View file @
8a7fbf54
...
...
@@ -222,14 +222,6 @@ BOOL X11DRV_SetupGCForPen( X11DRV_PDEVICE *physDev )
}
val
.
background
=
physDev
->
backgroundPixel
;
val
.
fill_style
=
FillSolid
;
if
((
physDev
->
pen
.
width
<=
1
)
&&
(
physDev
->
pen
.
style
!=
PS_SOLID
)
&&
(
physDev
->
pen
.
style
!=
PS_INSIDEFRAME
))
{
TSXSetDashes
(
gdi_display
,
physDev
->
gc
,
0
,
physDev
->
pen
.
dashes
,
physDev
->
pen
.
dash_len
);
val
.
line_style
=
(
GetBkMode
(
physDev
->
hdc
)
==
OPAQUE
)
?
LineDoubleDash
:
LineOnOffDash
;
}
else
val
.
line_style
=
LineSolid
;
val
.
line_width
=
physDev
->
pen
.
width
;
if
(
val
.
line_width
<=
1
)
{
val
.
cap_style
=
CapNotLast
;
...
...
@@ -259,9 +251,20 @@ BOOL X11DRV_SetupGCForPen( X11DRV_PDEVICE *physDev )
default:
val
.
join_style
=
JoinRound
;
}
TSXChangeGC
(
gdi_display
,
physDev
->
gc
,
wine_tsx11_lock
();
if
((
physDev
->
pen
.
width
<=
1
)
&&
(
physDev
->
pen
.
style
!=
PS_SOLID
)
&&
(
physDev
->
pen
.
style
!=
PS_INSIDEFRAME
))
{
XSetDashes
(
gdi_display
,
physDev
->
gc
,
0
,
physDev
->
pen
.
dashes
,
physDev
->
pen
.
dash_len
);
val
.
line_style
=
(
GetBkMode
(
physDev
->
hdc
)
==
OPAQUE
)
?
LineDoubleDash
:
LineOnOffDash
;
}
else
val
.
line_style
=
LineSolid
;
XChangeGC
(
gdi_display
,
physDev
->
gc
,
GCFunction
|
GCForeground
|
GCBackground
|
GCLineWidth
|
GCLineStyle
|
GCCapStyle
|
GCJoinStyle
|
GCFillStyle
,
&
val
);
wine_tsx11_unlock
();
return
TRUE
;
}
...
...
@@ -286,9 +289,11 @@ BOOL X11DRV_SetupGCForText( X11DRV_PDEVICE *physDev )
val
.
fill_style
=
FillSolid
;
val
.
font
=
xfs
->
fid
;
TSXChangeGC
(
gdi_display
,
physDev
->
gc
,
wine_tsx11_lock
();
XChangeGC
(
gdi_display
,
physDev
->
gc
,
GCFunction
|
GCForeground
|
GCBackground
|
GCFillStyle
|
GCFont
,
&
val
);
wine_tsx11_unlock
();
return
TRUE
;
}
WARN
(
"Physical font failure
\n
"
);
...
...
@@ -312,9 +317,11 @@ X11DRV_LineTo( X11DRV_PDEVICE *physDev, INT x, INT y )
pt
[
1
].
y
=
y
;
LPtoDP
(
physDev
->
hdc
,
pt
,
2
);
TSXDrawLine
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
pt
[
0
].
x
,
physDev
->
org
.
y
+
pt
[
0
].
y
,
physDev
->
org
.
x
+
pt
[
1
].
x
,
physDev
->
org
.
y
+
pt
[
1
].
y
);
wine_tsx11_lock
();
XDrawLine
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
pt
[
0
].
x
,
physDev
->
org
.
y
+
pt
[
0
].
y
,
physDev
->
org
.
x
+
pt
[
1
].
x
,
physDev
->
org
.
y
+
pt
[
1
].
y
);
wine_tsx11_unlock
();
/* Update the DIBSection from the pixmap */
X11DRV_UnlockDIBSection
(
physDev
,
TRUE
);
...
...
@@ -404,19 +411,23 @@ X11DRV_DrawArc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right,
/* Fill arc with brush if Chord() or Pie() */
if
((
lines
>
0
)
&&
X11DRV_SetupGCForBrush
(
physDev
))
{
TSXSetArcMode
(
gdi_display
,
physDev
->
gc
,
(
lines
==
1
)
?
ArcChord
:
ArcPieSlice
);
TSXFillArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
istart_angle
,
idiff_angle
);
wine_tsx11_lock
();
XSetArcMode
(
gdi_display
,
physDev
->
gc
,
(
lines
==
1
)
?
ArcChord
:
ArcPieSlice
);
XFillArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
istart_angle
,
idiff_angle
);
wine_tsx11_unlock
();
update
=
TRUE
;
}
/* Draw arc and lines */
if
(
X11DRV_SetupGCForPen
(
physDev
)){
TSXDrawArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
istart_angle
,
idiff_angle
);
if
(
X11DRV_SetupGCForPen
(
physDev
))
{
wine_tsx11_lock
();
XDrawArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
istart_angle
,
idiff_angle
);
if
(
lines
)
{
/* use the truncated values */
start_angle
=
(
double
)
istart_angle
*
PI
/
64
.
/
180
.;
...
...
@@ -470,9 +481,10 @@ X11DRV_DrawArc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right,
}
lines
++
;
}
TS
XDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
lines
+
1
,
CoordModeOrigin
);
XDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
lines
+
1
,
CoordModeOrigin
);
}
wine_tsx11_unlock
();
update
=
TRUE
;
}
...
...
@@ -558,16 +570,20 @@ X11DRV_Ellipse( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT botto
if
(
X11DRV_SetupGCForBrush
(
physDev
))
{
TSXFillArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
0
,
360
*
64
);
wine_tsx11_lock
();
XFillArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
0
,
360
*
64
);
wine_tsx11_unlock
();
update
=
TRUE
;
}
if
(
X11DRV_SetupGCForPen
(
physDev
))
{
TSXDrawArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
0
,
360
*
64
);
wine_tsx11_lock
();
XDrawArc
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rc
.
left
,
physDev
->
org
.
y
+
rc
.
top
,
rc
.
right
-
rc
.
left
-
1
,
rc
.
bottom
-
rc
.
top
-
1
,
0
,
360
*
64
);
wine_tsx11_unlock
();
update
=
TRUE
;
}
...
...
@@ -997,14 +1013,12 @@ X11DRV_Polyline( X11DRV_PDEVICE *physDev, const POINT* pt, INT count )
if
(
X11DRV_SetupGCForPen
(
physDev
))
{
/* Update the pixmap from the DIB section */
X11DRV_LockDIBSection
(
physDev
,
DIB_Status_GdiMod
,
FALSE
);
TSXDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
count
,
CoordModeOrigin
);
/* Update the DIBSection from the pixmap */
X11DRV_UnlockDIBSection
(
physDev
,
TRUE
);
X11DRV_LockDIBSection
(
physDev
,
DIB_Status_GdiMod
,
FALSE
);
wine_tsx11_lock
();
XDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
count
,
CoordModeOrigin
);
wine_tsx11_unlock
();
X11DRV_UnlockDIBSection
(
physDev
,
TRUE
);
}
HeapFree
(
GetProcessHeap
(),
0
,
points
);
...
...
@@ -1107,8 +1121,10 @@ X11DRV_PolyPolygon( X11DRV_PDEVICE *physDev, const POINT* pt, const INT* counts,
pt
++
;
}
points
[
j
]
=
points
[
0
];
TSXDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
j
+
1
,
CoordModeOrigin
);
wine_tsx11_lock
();
XDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
j
+
1
,
CoordModeOrigin
);
wine_tsx11_unlock
();
}
/* Update the DIBSection of the dc's bitmap */
...
...
@@ -1150,8 +1166,10 @@ X11DRV_PolyPolyline( X11DRV_PDEVICE *physDev, const POINT* pt, const DWORD* coun
points
[
j
].
y
=
physDev
->
org
.
y
+
tmp
.
y
;
pt
++
;
}
TSXDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
j
,
CoordModeOrigin
);
wine_tsx11_lock
();
XDrawLines
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
points
,
j
,
CoordModeOrigin
);
wine_tsx11_unlock
();
}
/* Update the DIBSection of the dc's bitmap */
...
...
graphics/x11drv/palette.c
View file @
8a7fbf54
...
...
@@ -333,6 +333,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template
/* Allocate system palette colors */
wine_tsx11_lock
();
for
(
i
=
0
;
i
<
palette_size
;
i
++
)
{
if
(
i
<
NB_RESERVED_COLORS
/
2
)
...
...
@@ -355,7 +356,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template
color
.
flags
=
DoRed
|
DoGreen
|
DoBlue
;
color
.
pixel
=
i
;
TS
XStoreColor
(
gdi_display
,
X11DRV_PALETTE_PaletteXColormap
,
&
color
);
XStoreColor
(
gdi_display
,
X11DRV_PALETTE_PaletteXColormap
,
&
color
);
/* Set EGA mapping if color is from the first or last eight */
...
...
@@ -364,6 +365,7 @@ static BOOL X11DRV_PALETTE_BuildPrivateMap( const PALETTEENTRY *sys_pal_template
else
if
(
i
>=
palette_size
-
8
)
X11DRV_PALETTE_mapEGAPixel
[
i
-
(
palette_size
-
16
)]
=
color
.
pixel
;
}
wine_tsx11_unlock
();
X11DRV_PALETTE_XPixelToPalette
=
X11DRV_PALETTE_PaletteToXPixel
=
NULL
;
...
...
@@ -1138,7 +1140,9 @@ static UINT X11DRV_PALETTE_SetMapping( PALETTEOBJ* palPtr, UINT uStart, UINT uNu
color
.
green
=
palPtr
->
logpalette
.
palPalEntry
[
uStart
].
peGreen
<<
8
;
color
.
blue
=
palPtr
->
logpalette
.
palPalEntry
[
uStart
].
peBlue
<<
8
;
color
.
flags
=
DoRed
|
DoGreen
|
DoBlue
;
TSXStoreColor
(
gdi_display
,
X11DRV_PALETTE_PaletteXColormap
,
&
color
);
wine_tsx11_lock
();
XStoreColor
(
gdi_display
,
X11DRV_PALETTE_PaletteXColormap
,
&
color
);
wine_tsx11_unlock
();
COLOR_sysPal
[
index
]
=
palPtr
->
logpalette
.
palPalEntry
[
uStart
];
COLOR_sysPal
[
index
].
peFlags
=
flag
;
...
...
graphics/x11drv/text.c
View file @
8a7fbf54
...
...
@@ -139,10 +139,12 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
{
X11DRV_LockDIBSection
(
physDev
,
DIB_Status_GdiMod
,
FALSE
);
dibUpdateFlag
=
TRUE
;
TSXSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
backgroundPixel
);
TSXFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rect
.
left
,
physDev
->
org
.
y
+
rect
.
top
,
rect
.
right
-
rect
.
left
,
rect
.
bottom
-
rect
.
top
);
wine_tsx11_lock
();
XSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
backgroundPixel
);
XFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
rect
.
left
,
physDev
->
org
.
y
+
rect
.
top
,
rect
.
right
-
rect
.
left
,
rect
.
bottom
-
rect
.
top
);
wine_tsx11_unlock
();
}
if
(
!
count
)
goto
END
;
/* Nothing more to do */
...
...
@@ -245,10 +247,12 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
(
y
-
ascent
<
rect
.
top
)
||
(
y
+
descent
>=
rect
.
bottom
))
{
TSXSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
backgroundPixel
);
TSXFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
-
ascent
,
width
,
ascent
+
descent
);
wine_tsx11_lock
();
XSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
backgroundPixel
);
XFillRectangle
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
-
ascent
,
width
,
ascent
+
descent
);
wine_tsx11_unlock
();
}
}
}
...
...
@@ -257,7 +261,9 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
if
(
!
(
str2b
=
X11DRV_cptable
[
pfo
->
fi
->
cptable
].
punicode_to_char2b
(
pfo
,
wstr
,
count
)))
goto
FAIL
;
TSXSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
textPixel
);
wine_tsx11_lock
();
XSetForeground
(
gdi_display
,
physDev
->
gc
,
physDev
->
textPixel
);
wine_tsx11_unlock
();
if
(
!
rotated
)
{
if
(
!
dc
->
charExtra
&&
!
dc
->
breakExtra
&&
!
lpDx
)
...
...
@@ -378,34 +384,36 @@ X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags,
/* Draw underline and strike-out if needed */
wine_tsx11_lock
();
if
(
lfUnderline
)
{
long
linePos
,
lineWidth
;
if
(
!
TS
XGetFontProperty
(
font
,
XA_UNDERLINE_POSITION
,
&
linePos
))
if
(
!
XGetFontProperty
(
font
,
XA_UNDERLINE_POSITION
,
&
linePos
))
linePos
=
descent
-
1
;
if
(
!
TS
XGetFontProperty
(
font
,
XA_UNDERLINE_THICKNESS
,
&
lineWidth
))
if
(
!
XGetFontProperty
(
font
,
XA_UNDERLINE_THICKNESS
,
&
lineWidth
))
lineWidth
=
0
;
else
if
(
lineWidth
==
1
)
lineWidth
=
0
;
TS
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineWidth
,
LineSolid
,
CapRound
,
JoinBevel
);
TS
XDrawLine
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
+
linePos
,
physDev
->
org
.
x
+
x
+
width
,
physDev
->
org
.
y
+
y
+
linePos
);
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineWidth
,
LineSolid
,
CapRound
,
JoinBevel
);
XDrawLine
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
+
linePos
,
physDev
->
org
.
x
+
x
+
width
,
physDev
->
org
.
y
+
y
+
linePos
);
}
if
(
lfStrikeOut
)
{
long
lineAscent
,
lineDescent
;
if
(
!
TS
XGetFontProperty
(
font
,
XA_STRIKEOUT_ASCENT
,
&
lineAscent
))
if
(
!
XGetFontProperty
(
font
,
XA_STRIKEOUT_ASCENT
,
&
lineAscent
))
lineAscent
=
ascent
/
2
;
if
(
!
TS
XGetFontProperty
(
font
,
XA_STRIKEOUT_DESCENT
,
&
lineDescent
))
if
(
!
XGetFontProperty
(
font
,
XA_STRIKEOUT_DESCENT
,
&
lineDescent
))
lineDescent
=
-
lineAscent
*
2
/
3
;
TS
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineAscent
+
lineDescent
,
LineSolid
,
CapRound
,
JoinBevel
);
TS
XDrawLine
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
-
lineAscent
,
physDev
->
org
.
x
+
x
+
width
,
physDev
->
org
.
y
+
y
-
lineAscent
);
XSetLineAttributes
(
gdi_display
,
physDev
->
gc
,
lineAscent
+
lineDescent
,
LineSolid
,
CapRound
,
JoinBevel
);
XDrawLine
(
gdi_display
,
physDev
->
drawable
,
physDev
->
gc
,
physDev
->
org
.
x
+
x
,
physDev
->
org
.
y
+
y
-
lineAscent
,
physDev
->
org
.
x
+
x
+
width
,
physDev
->
org
.
y
+
y
-
lineAscent
);
}
wine_tsx11_unlock
();
if
(
flags
&
ETO_CLIPPED
)
RestoreVisRgn16
(
HDC_16
(
dc
->
hSelf
)
);
goto
END
;
...
...
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