winex11: Pass the display as parameter to a few more functions instead of using thread_display().
This commit is contained in:
parent
06a1407c13
commit
e705764cca
@ -110,9 +110,9 @@ typedef struct
|
|||||||
|
|
||||||
struct tagWINE_CLIPDATA; /* Forward */
|
struct tagWINE_CLIPDATA; /* Forward */
|
||||||
|
|
||||||
typedef HANDLE (*DRVEXPORTFUNC)(Window requestor, Atom aTarget, Atom rprop,
|
typedef HANDLE (*DRVEXPORTFUNC)(Display *display, Window requestor, Atom aTarget, Atom rprop,
|
||||||
struct tagWINE_CLIPDATA* lpData, LPDWORD lpBytes);
|
struct tagWINE_CLIPDATA* lpData, LPDWORD lpBytes);
|
||||||
typedef HANDLE (*DRVIMPORTFUNC)(Window w, Atom prop);
|
typedef HANDLE (*DRVIMPORTFUNC)(Display *d, Window w, Atom prop);
|
||||||
|
|
||||||
typedef struct tagWINE_CLIPFORMAT {
|
typedef struct tagWINE_CLIPFORMAT {
|
||||||
UINT wFormatID;
|
UINT wFormatID;
|
||||||
@ -147,37 +147,37 @@ static Atom selectionCacheSrc = XA_PRIMARY; /* The selection source from whic
|
|||||||
|
|
||||||
void X11DRV_EmptyClipboard(BOOL keepunowned);
|
void X11DRV_EmptyClipboard(BOOL keepunowned);
|
||||||
void X11DRV_EndClipboardUpdate(void);
|
void X11DRV_EndClipboardUpdate(void);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportClipboardData(Window w, Atom prop);
|
static HANDLE X11DRV_CLIPBOARD_ImportClipboardData(Display *d, Window w, Atom prop);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Window w, Atom prop);
|
static HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Display *d, Window w, Atom prop);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Window w, Atom prop);
|
static HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Display *d, Window w, Atom prop);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Window w, Atom prop);
|
static HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Display *d, Window w, Atom prop);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportXAString(Window w, Atom prop);
|
static HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *d, Window w, Atom prop);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Window w, Atom prop);
|
static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *d, Window w, Atom prop);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Window w, Atom prop);
|
static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Display *d, Window w, Atom prop);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Window requestor, Atom aTarget,
|
static HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Display *display, Window requestor, Atom aTarget,
|
||||||
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes);
|
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ExportString(Window requestor, Atom aTarget,
|
static HANDLE X11DRV_CLIPBOARD_ExportString(Display *display, Window requestor, Atom aTarget,
|
||||||
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes);
|
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Window requestor, Atom aTarget,
|
static HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Display *display, Window requestor, Atom aTarget,
|
||||||
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
|
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Window requestor, Atom aTarget,
|
static HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Display *display, Window requestor, Atom aTarget,
|
||||||
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
|
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
|
||||||
static HANDLE X11DRV_CLIPBOARD_ExportEnhMetaFile(Window requestor, Atom aTarget,
|
static HANDLE X11DRV_CLIPBOARD_ExportEnhMetaFile(Display *display, Window requestor, Atom aTarget,
|
||||||
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
|
Atom rprop, LPWINE_CLIPDATA lpdata, LPDWORD lpBytes);
|
||||||
static WINE_CLIPFORMAT *X11DRV_CLIPBOARD_InsertClipboardFormat(LPCWSTR FormatName, Atom prop);
|
static WINE_CLIPFORMAT *X11DRV_CLIPBOARD_InsertClipboardFormat(LPCWSTR FormatName, Atom prop);
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedText(UINT wFormatID);
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedText(Display *display, UINT wFormatID);
|
||||||
static void X11DRV_CLIPBOARD_FreeData(LPWINE_CLIPDATA lpData);
|
static void X11DRV_CLIPBOARD_FreeData(LPWINE_CLIPDATA lpData);
|
||||||
static BOOL X11DRV_CLIPBOARD_IsSelectionOwner(void);
|
static BOOL X11DRV_CLIPBOARD_IsSelectionOwner(void);
|
||||||
static int X11DRV_CLIPBOARD_QueryAvailableData(LPCLIPBOARDINFO lpcbinfo);
|
static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display, LPCLIPBOARDINFO lpcbinfo);
|
||||||
static BOOL X11DRV_CLIPBOARD_ReadSelectionData(LPWINE_CLIPDATA lpData);
|
static BOOL X11DRV_CLIPBOARD_ReadSelectionData(Display *display, LPWINE_CLIPDATA lpData);
|
||||||
static BOOL X11DRV_CLIPBOARD_ReadProperty(Window w, Atom prop,
|
static BOOL X11DRV_CLIPBOARD_ReadProperty(Display *display, Window w, Atom prop,
|
||||||
unsigned char** data, unsigned long* datasize);
|
unsigned char** data, unsigned long* datasize);
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderFormat(LPWINE_CLIPDATA lpData);
|
static BOOL X11DRV_CLIPBOARD_RenderFormat(Display *display, LPWINE_CLIPDATA lpData);
|
||||||
static HANDLE X11DRV_CLIPBOARD_SerializeMetafile(INT wformat, HANDLE hdata, LPDWORD lpcbytes, BOOL out);
|
static HANDLE X11DRV_CLIPBOARD_SerializeMetafile(INT wformat, HANDLE hdata, LPDWORD lpcbytes, BOOL out);
|
||||||
static BOOL X11DRV_CLIPBOARD_SynthesizeData(UINT wFormatID);
|
static BOOL X11DRV_CLIPBOARD_SynthesizeData(UINT wFormatID);
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(LPWINE_CLIPDATA lpData);
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(Display *display, LPWINE_CLIPDATA lpData);
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(void);
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(Display *display);
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(void);
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(Display *display);
|
||||||
static void X11DRV_HandleSelectionRequest( HWND hWnd, XSelectionRequestEvent *event, BOOL bIsMultiple );
|
static void X11DRV_HandleSelectionRequest( HWND hWnd, XSelectionRequestEvent *event, BOOL bIsMultiple );
|
||||||
|
|
||||||
/* Clipboard formats
|
/* Clipboard formats
|
||||||
@ -754,7 +754,7 @@ static BOOL X11DRV_CLIPBOARD_UpdateCache(LPCLIPBOARDINFO lpcbinfo)
|
|||||||
{
|
{
|
||||||
X11DRV_EmptyClipboard(TRUE);
|
X11DRV_EmptyClipboard(TRUE);
|
||||||
|
|
||||||
if (X11DRV_CLIPBOARD_QueryAvailableData(lpcbinfo) < 0)
|
if (X11DRV_CLIPBOARD_QueryAvailableData(thread_display(), lpcbinfo) < 0)
|
||||||
{
|
{
|
||||||
ERR("Failed to cache clipboard data owned by another process.\n");
|
ERR("Failed to cache clipboard data owned by another process.\n");
|
||||||
bret = FALSE;
|
bret = FALSE;
|
||||||
@ -775,7 +775,7 @@ static BOOL X11DRV_CLIPBOARD_UpdateCache(LPCLIPBOARDINFO lpcbinfo)
|
|||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* X11DRV_CLIPBOARD_RenderFormat
|
* X11DRV_CLIPBOARD_RenderFormat
|
||||||
*/
|
*/
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderFormat(LPWINE_CLIPDATA lpData)
|
static BOOL X11DRV_CLIPBOARD_RenderFormat(Display *display, LPWINE_CLIPDATA lpData)
|
||||||
{
|
{
|
||||||
BOOL bret = TRUE;
|
BOOL bret = TRUE;
|
||||||
|
|
||||||
@ -786,10 +786,10 @@ static BOOL X11DRV_CLIPBOARD_RenderFormat(LPWINE_CLIPDATA lpData)
|
|||||||
return bret; /* Already rendered */
|
return bret; /* Already rendered */
|
||||||
|
|
||||||
if (lpData->wFlags & CF_FLAG_SYNTHESIZED)
|
if (lpData->wFlags & CF_FLAG_SYNTHESIZED)
|
||||||
bret = X11DRV_CLIPBOARD_RenderSynthesizedFormat(lpData);
|
bret = X11DRV_CLIPBOARD_RenderSynthesizedFormat(display, lpData);
|
||||||
else if (!X11DRV_CLIPBOARD_IsSelectionOwner())
|
else if (!X11DRV_CLIPBOARD_IsSelectionOwner())
|
||||||
{
|
{
|
||||||
if (!X11DRV_CLIPBOARD_ReadSelectionData(lpData))
|
if (!X11DRV_CLIPBOARD_ReadSelectionData(display, lpData))
|
||||||
{
|
{
|
||||||
ERR("Failed to cache clipboard data owned by another process. Format=%d\n",
|
ERR("Failed to cache clipboard data owned by another process. Format=%d\n",
|
||||||
lpData->wFormatID);
|
lpData->wFormatID);
|
||||||
@ -879,7 +879,7 @@ static INT CLIPBOARD_ConvertText(WORD src_fmt, void const *src, INT src_size,
|
|||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* X11DRV_CLIPBOARD_RenderSynthesizedFormat
|
* X11DRV_CLIPBOARD_RenderSynthesizedFormat
|
||||||
*/
|
*/
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(LPWINE_CLIPDATA lpData)
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(Display *display, LPWINE_CLIPDATA lpData)
|
||||||
{
|
{
|
||||||
BOOL bret = FALSE;
|
BOOL bret = FALSE;
|
||||||
|
|
||||||
@ -890,17 +890,17 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(LPWINE_CLIPDATA lpData)
|
|||||||
UINT wFormatID = lpData->wFormatID;
|
UINT wFormatID = lpData->wFormatID;
|
||||||
|
|
||||||
if (wFormatID == CF_UNICODETEXT || wFormatID == CF_TEXT || wFormatID == CF_OEMTEXT)
|
if (wFormatID == CF_UNICODETEXT || wFormatID == CF_TEXT || wFormatID == CF_OEMTEXT)
|
||||||
bret = X11DRV_CLIPBOARD_RenderSynthesizedText(wFormatID);
|
bret = X11DRV_CLIPBOARD_RenderSynthesizedText(display, wFormatID);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (wFormatID)
|
switch (wFormatID)
|
||||||
{
|
{
|
||||||
case CF_DIB:
|
case CF_DIB:
|
||||||
bret = X11DRV_CLIPBOARD_RenderSynthesizedDIB();
|
bret = X11DRV_CLIPBOARD_RenderSynthesizedDIB( display );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CF_BITMAP:
|
case CF_BITMAP:
|
||||||
bret = X11DRV_CLIPBOARD_RenderSynthesizedBitmap();
|
bret = X11DRV_CLIPBOARD_RenderSynthesizedBitmap( display );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CF_ENHMETAFILE:
|
case CF_ENHMETAFILE:
|
||||||
@ -926,7 +926,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedFormat(LPWINE_CLIPDATA lpData)
|
|||||||
*
|
*
|
||||||
* Renders synthesized text
|
* Renders synthesized text
|
||||||
*/
|
*/
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedText(UINT wFormatID)
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedText(Display *display, UINT wFormatID)
|
||||||
{
|
{
|
||||||
LPCSTR lpstrS;
|
LPCSTR lpstrS;
|
||||||
LPSTR lpstrT;
|
LPSTR lpstrT;
|
||||||
@ -962,7 +962,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedText(UINT wFormatID)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* Ask the clipboard owner to render the source text if necessary */
|
/* Ask the clipboard owner to render the source text if necessary */
|
||||||
if (!lpSource->hData32 && !X11DRV_CLIPBOARD_RenderFormat(lpSource))
|
if (!lpSource->hData32 && !X11DRV_CLIPBOARD_RenderFormat(display, lpSource))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (lpSource->hData32)
|
if (lpSource->hData32)
|
||||||
@ -1026,7 +1026,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedText(UINT wFormatID)
|
|||||||
*
|
*
|
||||||
* Renders synthesized DIB
|
* Renders synthesized DIB
|
||||||
*/
|
*/
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(void)
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(Display *display)
|
||||||
{
|
{
|
||||||
BOOL bret = FALSE;
|
BOOL bret = FALSE;
|
||||||
LPWINE_CLIPDATA lpSource = NULL;
|
LPWINE_CLIPDATA lpSource = NULL;
|
||||||
@ -1042,7 +1042,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(void)
|
|||||||
(!(lpSource->wFlags & CF_FLAG_SYNTHESIZED) || lpSource->hData32))
|
(!(lpSource->wFlags & CF_FLAG_SYNTHESIZED) || lpSource->hData32))
|
||||||
{
|
{
|
||||||
/* Render source if required */
|
/* Render source if required */
|
||||||
if (lpSource->hData32 || X11DRV_CLIPBOARD_RenderFormat(lpSource))
|
if (lpSource->hData32 || X11DRV_CLIPBOARD_RenderFormat(display, lpSource))
|
||||||
{
|
{
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
HGLOBAL hData32;
|
HGLOBAL hData32;
|
||||||
@ -1068,7 +1068,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedDIB(void)
|
|||||||
*
|
*
|
||||||
* Renders synthesized bitmap
|
* Renders synthesized bitmap
|
||||||
*/
|
*/
|
||||||
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(void)
|
static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(Display *display)
|
||||||
{
|
{
|
||||||
BOOL bret = FALSE;
|
BOOL bret = FALSE;
|
||||||
LPWINE_CLIPDATA lpSource = NULL;
|
LPWINE_CLIPDATA lpSource = NULL;
|
||||||
@ -1084,7 +1084,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(void)
|
|||||||
(!(lpSource->wFlags & CF_FLAG_SYNTHESIZED) || lpSource->hData32))
|
(!(lpSource->wFlags & CF_FLAG_SYNTHESIZED) || lpSource->hData32))
|
||||||
{
|
{
|
||||||
/* Render source if required */
|
/* Render source if required */
|
||||||
if (lpSource->hData32 || X11DRV_CLIPBOARD_RenderFormat(lpSource))
|
if (lpSource->hData32 || X11DRV_CLIPBOARD_RenderFormat(display, lpSource))
|
||||||
{
|
{
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
HBITMAP hData32;
|
HBITMAP hData32;
|
||||||
@ -1121,7 +1121,7 @@ static BOOL X11DRV_CLIPBOARD_RenderSynthesizedBitmap(void)
|
|||||||
*
|
*
|
||||||
* Import XA_STRING, converting the string to CF_TEXT.
|
* Import XA_STRING, converting the string to CF_TEXT.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ImportXAString(Window w, Atom prop)
|
HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *display, Window w, Atom prop)
|
||||||
{
|
{
|
||||||
LPBYTE lpdata;
|
LPBYTE lpdata;
|
||||||
unsigned long cbytes;
|
unsigned long cbytes;
|
||||||
@ -1129,7 +1129,7 @@ HANDLE X11DRV_CLIPBOARD_ImportXAString(Window w, Atom prop)
|
|||||||
unsigned long i, inlcount = 0;
|
unsigned long i, inlcount = 0;
|
||||||
HANDLE hText = 0;
|
HANDLE hText = 0;
|
||||||
|
|
||||||
if (!X11DRV_CLIPBOARD_ReadProperty(w, prop, &lpdata, &cbytes))
|
if (!X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (i = 0; i <= cbytes; i++)
|
for (i = 0; i <= cbytes; i++)
|
||||||
@ -1165,7 +1165,7 @@ HANDLE X11DRV_CLIPBOARD_ImportXAString(Window w, Atom prop)
|
|||||||
*
|
*
|
||||||
* Import XA_STRING, converting the string to CF_UNICODE.
|
* Import XA_STRING, converting the string to CF_UNICODE.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ImportUTF8(Window w, Atom prop)
|
HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *display, Window w, Atom prop)
|
||||||
{
|
{
|
||||||
LPBYTE lpdata;
|
LPBYTE lpdata;
|
||||||
unsigned long cbytes;
|
unsigned long cbytes;
|
||||||
@ -1173,7 +1173,7 @@ HANDLE X11DRV_CLIPBOARD_ImportUTF8(Window w, Atom prop)
|
|||||||
unsigned long i, inlcount = 0;
|
unsigned long i, inlcount = 0;
|
||||||
HANDLE hUnicodeText = 0;
|
HANDLE hUnicodeText = 0;
|
||||||
|
|
||||||
if (!X11DRV_CLIPBOARD_ReadProperty(w, prop, &lpdata, &cbytes))
|
if (!X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (i = 0; i <= cbytes; i++)
|
for (i = 0; i <= cbytes; i++)
|
||||||
@ -1219,9 +1219,8 @@ HANDLE X11DRV_CLIPBOARD_ImportUTF8(Window w, Atom prop)
|
|||||||
*
|
*
|
||||||
* Import COMPOUND_TEXT to CF_UNICODE
|
* Import COMPOUND_TEXT to CF_UNICODE
|
||||||
*/
|
*/
|
||||||
static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Window w, Atom prop)
|
static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Display *display, Window w, Atom prop)
|
||||||
{
|
{
|
||||||
Display *display = thread_display();
|
|
||||||
int i, j;
|
int i, j;
|
||||||
char** srcstr;
|
char** srcstr;
|
||||||
int count, lcount;
|
int count, lcount;
|
||||||
@ -1286,7 +1285,7 @@ static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Window w, Atom prop)
|
|||||||
*
|
*
|
||||||
* Import XA_PIXMAP, converting the image to CF_DIB.
|
* Import XA_PIXMAP, converting the image to CF_DIB.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Window w, Atom prop)
|
HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Display *display, Window w, Atom prop)
|
||||||
{
|
{
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
@ -1295,7 +1294,7 @@ HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Window w, Atom prop)
|
|||||||
Pixmap *pPixmap;
|
Pixmap *pPixmap;
|
||||||
HANDLE hClipData = 0;
|
HANDLE hClipData = 0;
|
||||||
|
|
||||||
if (X11DRV_CLIPBOARD_ReadProperty(w, prop, &lpdata, &cbytes))
|
if (X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
|
||||||
{
|
{
|
||||||
pPixmap = (Pixmap *) lpdata;
|
pPixmap = (Pixmap *) lpdata;
|
||||||
|
|
||||||
@ -1318,13 +1317,13 @@ HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Window w, Atom prop)
|
|||||||
*
|
*
|
||||||
* Import MetaFilePict.
|
* Import MetaFilePict.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Window w, Atom prop)
|
HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Display *display, Window w, Atom prop)
|
||||||
{
|
{
|
||||||
LPBYTE lpdata;
|
LPBYTE lpdata;
|
||||||
unsigned long cbytes;
|
unsigned long cbytes;
|
||||||
HANDLE hClipData = 0;
|
HANDLE hClipData = 0;
|
||||||
|
|
||||||
if (X11DRV_CLIPBOARD_ReadProperty(w, prop, &lpdata, &cbytes))
|
if (X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
|
||||||
{
|
{
|
||||||
if (cbytes)
|
if (cbytes)
|
||||||
hClipData = X11DRV_CLIPBOARD_SerializeMetafile(CF_METAFILEPICT, (HANDLE)lpdata, (LPDWORD)&cbytes, FALSE);
|
hClipData = X11DRV_CLIPBOARD_SerializeMetafile(CF_METAFILEPICT, (HANDLE)lpdata, (LPDWORD)&cbytes, FALSE);
|
||||||
@ -1342,13 +1341,13 @@ HANDLE X11DRV_CLIPBOARD_ImportMetaFilePict(Window w, Atom prop)
|
|||||||
*
|
*
|
||||||
* Import EnhMetaFile.
|
* Import EnhMetaFile.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Window w, Atom prop)
|
HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Display *display, Window w, Atom prop)
|
||||||
{
|
{
|
||||||
LPBYTE lpdata;
|
LPBYTE lpdata;
|
||||||
unsigned long cbytes;
|
unsigned long cbytes;
|
||||||
HANDLE hClipData = 0;
|
HANDLE hClipData = 0;
|
||||||
|
|
||||||
if (X11DRV_CLIPBOARD_ReadProperty(w, prop, &lpdata, &cbytes))
|
if (X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
|
||||||
{
|
{
|
||||||
if (cbytes)
|
if (cbytes)
|
||||||
hClipData = X11DRV_CLIPBOARD_SerializeMetafile(CF_ENHMETAFILE, (HANDLE)lpdata, (LPDWORD)&cbytes, FALSE);
|
hClipData = X11DRV_CLIPBOARD_SerializeMetafile(CF_ENHMETAFILE, (HANDLE)lpdata, (LPDWORD)&cbytes, FALSE);
|
||||||
@ -1366,14 +1365,14 @@ HANDLE X11DRV_CLIPBOARD_ImportEnhMetaFile(Window w, Atom prop)
|
|||||||
*
|
*
|
||||||
* Generic import clipboard data routine.
|
* Generic import clipboard data routine.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ImportClipboardData(Window w, Atom prop)
|
HANDLE X11DRV_CLIPBOARD_ImportClipboardData(Display *display, Window w, Atom prop)
|
||||||
{
|
{
|
||||||
LPVOID lpClipData;
|
LPVOID lpClipData;
|
||||||
LPBYTE lpdata;
|
LPBYTE lpdata;
|
||||||
unsigned long cbytes;
|
unsigned long cbytes;
|
||||||
HANDLE hClipData = 0;
|
HANDLE hClipData = 0;
|
||||||
|
|
||||||
if (X11DRV_CLIPBOARD_ReadProperty(w, prop, &lpdata, &cbytes))
|
if (X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
|
||||||
{
|
{
|
||||||
if (cbytes)
|
if (cbytes)
|
||||||
{
|
{
|
||||||
@ -1407,8 +1406,8 @@ HANDLE X11DRV_CLIPBOARD_ImportClipboardData(Window w, Atom prop)
|
|||||||
*
|
*
|
||||||
* Generic export clipboard data routine.
|
* Generic export clipboard data routine.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Window requestor, Atom aTarget,
|
HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Display *display, Window requestor, Atom aTarget,
|
||||||
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
|
Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
|
||||||
{
|
{
|
||||||
LPVOID lpClipData;
|
LPVOID lpClipData;
|
||||||
UINT datasize = 0;
|
UINT datasize = 0;
|
||||||
@ -1416,7 +1415,7 @@ HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Window requestor, Atom aTarget,
|
|||||||
|
|
||||||
*lpBytes = 0; /* Assume failure */
|
*lpBytes = 0; /* Assume failure */
|
||||||
|
|
||||||
if (!X11DRV_CLIPBOARD_RenderFormat(lpData))
|
if (!X11DRV_CLIPBOARD_RenderFormat(display, lpData))
|
||||||
ERR("Failed to export %d format\n", lpData->wFormatID);
|
ERR("Failed to export %d format\n", lpData->wFormatID);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1538,10 +1537,9 @@ done:
|
|||||||
* Export CF_UNICODE to COMPOUND_TEXT
|
* Export CF_UNICODE to COMPOUND_TEXT
|
||||||
* Helper function for X11DRV_CLIPBOARD_ExportString.
|
* Helper function for X11DRV_CLIPBOARD_ExportString.
|
||||||
*/
|
*/
|
||||||
static HANDLE X11DRV_CLIPBOARD_ExportCompoundText(Window requestor, Atom aTarget, Atom rprop,
|
static HANDLE X11DRV_CLIPBOARD_ExportCompoundText(Display *display, Window requestor, Atom aTarget, Atom rprop,
|
||||||
LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
|
LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
|
||||||
{
|
{
|
||||||
Display *display = thread_display();
|
|
||||||
char* lpstr = 0;
|
char* lpstr = 0;
|
||||||
XTextProperty prop;
|
XTextProperty prop;
|
||||||
XICCEncodingStyle style;
|
XICCEncodingStyle style;
|
||||||
@ -1593,15 +1591,15 @@ static HANDLE X11DRV_CLIPBOARD_ExportCompoundText(Window requestor, Atom aTarget
|
|||||||
*
|
*
|
||||||
* Export string
|
* Export string
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ExportString(Window requestor, Atom aTarget, Atom rprop,
|
HANDLE X11DRV_CLIPBOARD_ExportString(Display *display, Window requestor, Atom aTarget, Atom rprop,
|
||||||
LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
|
LPWINE_CLIPDATA lpData, LPDWORD lpBytes)
|
||||||
{
|
{
|
||||||
if (X11DRV_CLIPBOARD_RenderFormat(lpData))
|
if (X11DRV_CLIPBOARD_RenderFormat(display, lpData))
|
||||||
{
|
{
|
||||||
if (aTarget == XA_STRING)
|
if (aTarget == XA_STRING)
|
||||||
return X11DRV_CLIPBOARD_ExportXAString(lpData, lpBytes);
|
return X11DRV_CLIPBOARD_ExportXAString(lpData, lpBytes);
|
||||||
else if (aTarget == x11drv_atom(COMPOUND_TEXT) || aTarget == x11drv_atom(TEXT))
|
else if (aTarget == x11drv_atom(COMPOUND_TEXT) || aTarget == x11drv_atom(TEXT))
|
||||||
return X11DRV_CLIPBOARD_ExportCompoundText(requestor, aTarget,
|
return X11DRV_CLIPBOARD_ExportCompoundText(display, requestor, aTarget,
|
||||||
rprop, lpData, lpBytes);
|
rprop, lpData, lpBytes);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1621,14 +1619,14 @@ HANDLE X11DRV_CLIPBOARD_ExportString(Window requestor, Atom aTarget, Atom rprop,
|
|||||||
*
|
*
|
||||||
* Export CF_DIB to XA_PIXMAP.
|
* Export CF_DIB to XA_PIXMAP.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Window requestor, Atom aTarget, Atom rprop,
|
HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Display *display, Window requestor, Atom aTarget, Atom rprop,
|
||||||
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
|
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
|
||||||
{
|
{
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
HANDLE hData;
|
HANDLE hData;
|
||||||
unsigned char* lpData;
|
unsigned char* lpData;
|
||||||
|
|
||||||
if (!X11DRV_CLIPBOARD_RenderFormat(lpdata))
|
if (!X11DRV_CLIPBOARD_RenderFormat(display, lpdata))
|
||||||
{
|
{
|
||||||
ERR("Failed to export %d format\n", lpdata->wFormatID);
|
ERR("Failed to export %d format\n", lpdata->wFormatID);
|
||||||
return 0;
|
return 0;
|
||||||
@ -1659,10 +1657,10 @@ HANDLE X11DRV_CLIPBOARD_ExportXAPIXMAP(Window requestor, Atom aTarget, Atom rpro
|
|||||||
*
|
*
|
||||||
* Export MetaFilePict.
|
* Export MetaFilePict.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Window requestor, Atom aTarget, Atom rprop,
|
HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Display *display, Window requestor, Atom aTarget, Atom rprop,
|
||||||
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
|
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
|
||||||
{
|
{
|
||||||
if (!X11DRV_CLIPBOARD_RenderFormat(lpdata))
|
if (!X11DRV_CLIPBOARD_RenderFormat(display, lpdata))
|
||||||
{
|
{
|
||||||
ERR("Failed to export %d format\n", lpdata->wFormatID);
|
ERR("Failed to export %d format\n", lpdata->wFormatID);
|
||||||
return 0;
|
return 0;
|
||||||
@ -1677,10 +1675,10 @@ HANDLE X11DRV_CLIPBOARD_ExportMetaFilePict(Window requestor, Atom aTarget, Atom
|
|||||||
*
|
*
|
||||||
* Export EnhMetaFile.
|
* Export EnhMetaFile.
|
||||||
*/
|
*/
|
||||||
HANDLE X11DRV_CLIPBOARD_ExportEnhMetaFile(Window requestor, Atom aTarget, Atom rprop,
|
HANDLE X11DRV_CLIPBOARD_ExportEnhMetaFile(Display *display, Window requestor, Atom aTarget, Atom rprop,
|
||||||
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
|
LPWINE_CLIPDATA lpdata, LPDWORD lpBytes)
|
||||||
{
|
{
|
||||||
if (!X11DRV_CLIPBOARD_RenderFormat(lpdata))
|
if (!X11DRV_CLIPBOARD_RenderFormat(display, lpdata))
|
||||||
{
|
{
|
||||||
ERR("Failed to export %d format\n", lpdata->wFormatID);
|
ERR("Failed to export %d format\n", lpdata->wFormatID);
|
||||||
return 0;
|
return 0;
|
||||||
@ -1823,9 +1821,8 @@ static VOID X11DRV_CLIPBOARD_InsertSelectionProperties(Display *display, Atom* p
|
|||||||
* This queries the selection owner for the TARGETS property and saves all
|
* This queries the selection owner for the TARGETS property and saves all
|
||||||
* reported property types.
|
* reported property types.
|
||||||
*/
|
*/
|
||||||
static int X11DRV_CLIPBOARD_QueryAvailableData(LPCLIPBOARDINFO lpcbinfo)
|
static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display, LPCLIPBOARDINFO lpcbinfo)
|
||||||
{
|
{
|
||||||
Display *display = thread_display();
|
|
||||||
XEvent xe;
|
XEvent xe;
|
||||||
Atom atype=AnyPropertyType;
|
Atom atype=AnyPropertyType;
|
||||||
int aformat;
|
int aformat;
|
||||||
@ -1943,9 +1940,8 @@ static int X11DRV_CLIPBOARD_QueryAvailableData(LPCLIPBOARDINFO lpcbinfo)
|
|||||||
* We always get the data from the selection client each time,
|
* We always get the data from the selection client each time,
|
||||||
* since we have no way of determining if the data in our cache is stale.
|
* since we have no way of determining if the data in our cache is stale.
|
||||||
*/
|
*/
|
||||||
static BOOL X11DRV_CLIPBOARD_ReadSelectionData(LPWINE_CLIPDATA lpData)
|
static BOOL X11DRV_CLIPBOARD_ReadSelectionData(Display *display, LPWINE_CLIPDATA lpData)
|
||||||
{
|
{
|
||||||
Display *display = thread_display();
|
|
||||||
Bool res;
|
Bool res;
|
||||||
DWORD i;
|
DWORD i;
|
||||||
XEvent xe;
|
XEvent xe;
|
||||||
@ -1996,7 +1992,7 @@ static BOOL X11DRV_CLIPBOARD_ReadSelectionData(LPWINE_CLIPDATA lpData)
|
|||||||
* into WINE's clipboard cache and converting the
|
* into WINE's clipboard cache and converting the
|
||||||
* data format if necessary.
|
* data format if necessary.
|
||||||
*/
|
*/
|
||||||
HANDLE hData = lpData->lpFormat->lpDrvImportFunc(xe.xselection.requestor,
|
HANDLE hData = lpData->lpFormat->lpDrvImportFunc(display, xe.xselection.requestor,
|
||||||
xe.xselection.property);
|
xe.xselection.property);
|
||||||
|
|
||||||
bRet = X11DRV_CLIPBOARD_InsertClipboardData(lpData->wFormatID, 0, hData, 0, lpData->lpFormat, TRUE);
|
bRet = X11DRV_CLIPBOARD_InsertClipboardData(lpData->wFormatID, 0, hData, 0, lpData->lpFormat, TRUE);
|
||||||
@ -2021,10 +2017,9 @@ static BOOL X11DRV_CLIPBOARD_ReadSelectionData(LPWINE_CLIPDATA lpData)
|
|||||||
* X11DRV_CLIPBOARD_ReadProperty
|
* X11DRV_CLIPBOARD_ReadProperty
|
||||||
* Reads the contents of the X selection property.
|
* Reads the contents of the X selection property.
|
||||||
*/
|
*/
|
||||||
static BOOL X11DRV_CLIPBOARD_ReadProperty(Window w, Atom prop,
|
static BOOL X11DRV_CLIPBOARD_ReadProperty(Display *display, Window w, Atom prop,
|
||||||
unsigned char** data, unsigned long* datasize)
|
unsigned char** data, unsigned long* datasize)
|
||||||
{
|
{
|
||||||
Display *display = thread_display();
|
|
||||||
Atom atype = AnyPropertyType;
|
Atom atype = AnyPropertyType;
|
||||||
int aformat;
|
int aformat;
|
||||||
unsigned long pos = 0, nitems, remain, count;
|
unsigned long pos = 0, nitems, remain, count;
|
||||||
@ -2162,10 +2157,8 @@ static HANDLE X11DRV_CLIPBOARD_SerializeMetafile(INT wformat, HANDLE hdata, LPDW
|
|||||||
*
|
*
|
||||||
* Release XA_CLIPBOARD and XA_PRIMARY in response to a SelectionClear event.
|
* Release XA_CLIPBOARD and XA_PRIMARY in response to a SelectionClear event.
|
||||||
*/
|
*/
|
||||||
static void X11DRV_CLIPBOARD_ReleaseSelection(Atom selType, Window w, HWND hwnd, Time time)
|
static void X11DRV_CLIPBOARD_ReleaseSelection(Display *display, Atom selType, Window w, HWND hwnd, Time time)
|
||||||
{
|
{
|
||||||
Display *display = thread_display();
|
|
||||||
|
|
||||||
/* w is the window that lost the selection
|
/* w is the window that lost the selection
|
||||||
*/
|
*/
|
||||||
TRACE("event->window = %08x (selectionWindow = %08x) selectionAcquired=0x%08x\n",
|
TRACE("event->window = %08x (selectionWindow = %08x) selectionAcquired=0x%08x\n",
|
||||||
@ -2515,7 +2508,7 @@ BOOL X11DRV_GetClipboardData(UINT wFormat, HANDLE16* phData16, HANDLE* phData32)
|
|||||||
if ((lpRender = X11DRV_CLIPBOARD_LookupData(wFormat)))
|
if ((lpRender = X11DRV_CLIPBOARD_LookupData(wFormat)))
|
||||||
{
|
{
|
||||||
if ( !lpRender->hData32 )
|
if ( !lpRender->hData32 )
|
||||||
X11DRV_CLIPBOARD_RenderFormat(lpRender);
|
X11DRV_CLIPBOARD_RenderFormat(thread_display(), lpRender);
|
||||||
|
|
||||||
/* Convert between 32 -> 16 bit data, if necessary */
|
/* Convert between 32 -> 16 bit data, if necessary */
|
||||||
if (lpRender->hData32 && !lpRender->hData16)
|
if (lpRender->hData32 && !lpRender->hData16)
|
||||||
@ -2984,7 +2977,7 @@ static void X11DRV_HandleSelectionRequest( HWND hWnd, XSelectionRequestEvent *ev
|
|||||||
{
|
{
|
||||||
unsigned char* lpClipData;
|
unsigned char* lpClipData;
|
||||||
DWORD cBytes;
|
DWORD cBytes;
|
||||||
HANDLE hClipData = lpFormat->lpDrvExportFunc(request, event->target,
|
HANDLE hClipData = lpFormat->lpDrvExportFunc(display, request, event->target,
|
||||||
rprop, lpData, &cBytes);
|
rprop, lpData, &cBytes);
|
||||||
|
|
||||||
if (hClipData && (lpClipData = GlobalLock(hClipData)))
|
if (hClipData && (lpClipData = GlobalLock(hClipData)))
|
||||||
@ -3040,5 +3033,6 @@ void X11DRV_SelectionClear( HWND hWnd, XEvent *xev )
|
|||||||
{
|
{
|
||||||
XSelectionClearEvent *event = &xev->xselectionclear;
|
XSelectionClearEvent *event = &xev->xselectionclear;
|
||||||
if (event->selection == XA_PRIMARY || event->selection == x11drv_atom(CLIPBOARD))
|
if (event->selection == XA_PRIMARY || event->selection == x11drv_atom(CLIPBOARD))
|
||||||
X11DRV_CLIPBOARD_ReleaseSelection( event->selection, event->window, hWnd, event->time );
|
X11DRV_CLIPBOARD_ReleaseSelection( event->display, event->selection,
|
||||||
|
event->window, hWnd, event->time );
|
||||||
}
|
}
|
||||||
|
@ -441,7 +441,7 @@ static inline BOOL can_activate_window( HWND hwnd )
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* set_focus
|
* set_focus
|
||||||
*/
|
*/
|
||||||
static void set_focus( HWND hwnd, Time time )
|
static void set_focus( Display *display, HWND hwnd, Time time )
|
||||||
{
|
{
|
||||||
HWND focus;
|
HWND focus;
|
||||||
Window win;
|
Window win;
|
||||||
@ -457,7 +457,7 @@ static void set_focus( HWND hwnd, Time time )
|
|||||||
{
|
{
|
||||||
TRACE( "setting focus to %p (%lx) time=%ld\n", focus, win, time );
|
TRACE( "setting focus to %p (%lx) time=%ld\n", focus, win, time );
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
XSetInputFocus( thread_display(), win, RevertToParent, time );
|
XSetInputFocus( display, win, RevertToParent, time );
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -532,7 +532,7 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event )
|
|||||||
MAKELONG(HTCAPTION,WM_LBUTTONDOWN) );
|
MAKELONG(HTCAPTION,WM_LBUTTONDOWN) );
|
||||||
if (ma != MA_NOACTIVATEANDEAT && ma != MA_NOACTIVATE)
|
if (ma != MA_NOACTIVATEANDEAT && ma != MA_NOACTIVATE)
|
||||||
{
|
{
|
||||||
set_focus( hwnd, event_time );
|
set_focus( event->display, hwnd, event_time );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -541,7 +541,7 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event )
|
|||||||
if (hwnd) hwnd = GetAncestor( hwnd, GA_ROOT );
|
if (hwnd) hwnd = GetAncestor( hwnd, GA_ROOT );
|
||||||
if (!hwnd) hwnd = GetActiveWindow();
|
if (!hwnd) hwnd = GetActiveWindow();
|
||||||
if (!hwnd) hwnd = last_focus;
|
if (!hwnd) hwnd = last_focus;
|
||||||
if (hwnd && can_activate_window(hwnd)) set_focus( hwnd, event_time );
|
if (hwnd && can_activate_window(hwnd)) set_focus( event->display, hwnd, event_time );
|
||||||
}
|
}
|
||||||
else if (protocol == x11drv_atom(_NET_WM_PING))
|
else if (protocol == x11drv_atom(_NET_WM_PING))
|
||||||
{
|
{
|
||||||
@ -599,7 +599,7 @@ static void X11DRV_FocusIn( HWND hwnd, XEvent *xev )
|
|||||||
if (hwnd) hwnd = GetAncestor( hwnd, GA_ROOT );
|
if (hwnd) hwnd = GetAncestor( hwnd, GA_ROOT );
|
||||||
if (!hwnd) hwnd = GetActiveWindow();
|
if (!hwnd) hwnd = GetActiveWindow();
|
||||||
if (!hwnd) hwnd = x11drv_thread_data()->last_focus;
|
if (!hwnd) hwnd = x11drv_thread_data()->last_focus;
|
||||||
if (hwnd && can_activate_window(hwnd)) set_focus( hwnd, CurrentTime );
|
if (hwnd && can_activate_window(hwnd)) set_focus( event->display, hwnd, CurrentTime );
|
||||||
}
|
}
|
||||||
else SetForegroundWindow( hwnd );
|
else SetForegroundWindow( hwnd );
|
||||||
}
|
}
|
||||||
@ -639,10 +639,10 @@ static void X11DRV_FocusOut( HWND hwnd, XEvent *xev )
|
|||||||
getting the focus is a Wine window */
|
getting the focus is a Wine window */
|
||||||
|
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
XGetInputFocus( thread_display(), &focus_win, &revert );
|
XGetInputFocus( event->display, &focus_win, &revert );
|
||||||
if (focus_win)
|
if (focus_win)
|
||||||
{
|
{
|
||||||
if (XFindContext( thread_display(), focus_win, winContext, (char **)&hwnd_tmp ) != 0)
|
if (XFindContext( event->display, focus_win, winContext, (char **)&hwnd_tmp ) != 0)
|
||||||
focus_win = 0;
|
focus_win = 0;
|
||||||
}
|
}
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
|
@ -1937,7 +1937,7 @@ void X11DRV_MappingNotify( HWND dummy, XEvent *event )
|
|||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
XRefreshKeyboardMapping(&event->xmapping);
|
XRefreshKeyboardMapping(&event->xmapping);
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
X11DRV_InitKeyboard( thread_display() );
|
X11DRV_InitKeyboard( event->xmapping.display );
|
||||||
|
|
||||||
hwnd = GetFocus();
|
hwnd = GetFocus();
|
||||||
if (!hwnd) hwnd = GetActiveWindow();
|
if (!hwnd) hwnd = GetActiveWindow();
|
||||||
|
@ -230,9 +230,8 @@ static Window get_systray_selection_owner( Display *display )
|
|||||||
|
|
||||||
|
|
||||||
/* dock the given X window with the NETWM system tray */
|
/* dock the given X window with the NETWM system tray */
|
||||||
static void dock_systray_window( HWND hwnd, Window systray_window )
|
static void dock_systray_window( Display *display, HWND hwnd, Window systray_window )
|
||||||
{
|
{
|
||||||
Display *display = thread_display();
|
|
||||||
struct x11drv_win_data *data;
|
struct x11drv_win_data *data;
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
XSetWindowAttributes attr;
|
XSetWindowAttributes attr;
|
||||||
@ -284,6 +283,7 @@ static BOOL show_icon( struct tray_icon *icon )
|
|||||||
RECT rect;
|
RECT rect;
|
||||||
static BOOL class_registered;
|
static BOOL class_registered;
|
||||||
Window systray_window;
|
Window systray_window;
|
||||||
|
Display *display = thread_display();
|
||||||
|
|
||||||
TRACE( "id=0x%x, hwnd=%p\n", icon->id, icon->owner );
|
TRACE( "id=0x%x, hwnd=%p\n", icon->id, icon->owner );
|
||||||
|
|
||||||
@ -308,7 +308,7 @@ static BOOL show_icon( struct tray_icon *icon )
|
|||||||
class_registered = TRUE;
|
class_registered = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(systray_window = get_systray_selection_owner( thread_display() ))) return FALSE;
|
if (!(systray_window = get_systray_selection_owner( display ))) return FALSE;
|
||||||
|
|
||||||
rect.left = 0;
|
rect.left = 0;
|
||||||
rect.top = 0;
|
rect.top = 0;
|
||||||
@ -320,7 +320,7 @@ static BOOL show_icon( struct tray_icon *icon )
|
|||||||
rect.right - rect.left, rect.bottom - rect.top,
|
rect.right - rect.left, rect.bottom - rect.top,
|
||||||
NULL, NULL, NULL, icon );
|
NULL, NULL, NULL, icon );
|
||||||
create_tooltip( icon );
|
create_tooltip( icon );
|
||||||
dock_systray_window( icon->window, systray_window );
|
dock_systray_window( display, icon->window, systray_window );
|
||||||
SetTimer( icon->window, 1, 1000, NULL );
|
SetTimer( icon->window, 1, 1000, NULL );
|
||||||
ShowWindow( icon->window, SW_SHOWNA );
|
ShowWindow( icon->window, SW_SHOWNA );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user