diff options
Diffstat (limited to 'xorg-server/hw/xwin')
-rw-r--r-- | xorg-server/hw/xwin/InitInput.c | 1 | ||||
-rw-r--r-- | xorg-server/hw/xwin/InitOutput.c | 4 | ||||
-rw-r--r-- | xorg-server/hw/xwin/Makefile.am | 1 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winauth.c | 7 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winclipboard.h | 3 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winclipboardwndproc.c | 11 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winclipboardwrappers.c | 2 | ||||
-rw-r--r-- | xorg-server/hw/xwin/wincursor.c | 43 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winglobals.c | 1 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winglobals.h | 3 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winmultiwindowwm.c | 20 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winmultiwindowwndproc.c | 8 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winprefs.c | 22 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winprefs.h | 8 | ||||
-rw-r--r-- | xorg-server/hw/xwin/winsetsp.c | 52 | ||||
-rw-r--r-- | xorg-server/hw/xwin/wintrayicon.c | 2 |
16 files changed, 85 insertions, 103 deletions
diff --git a/xorg-server/hw/xwin/InitInput.c b/xorg-server/hw/xwin/InitInput.c index 395b533fc..36346b7e1 100644 --- a/xorg-server/hw/xwin/InitInput.c +++ b/xorg-server/hw/xwin/InitInput.c @@ -39,7 +39,6 @@ #ifdef XWIN_CLIPBOARD int winProcEstablishConnection(ClientPtr /* client */ ); -int winProcQueryTree(ClientPtr /* client */ ); int winProcSetSelectionOwner(ClientPtr /* client */ ); #endif diff --git a/xorg-server/hw/xwin/InitOutput.c b/xorg-server/hw/xwin/InitOutput.c index d6b5e4fd9..b05ca2736 100644 --- a/xorg-server/hw/xwin/InitOutput.c +++ b/xorg-server/hw/xwin/InitOutput.c @@ -48,7 +48,11 @@ from The Open Group. #include "xkbsrv.h" #endif #ifdef RELOCATE_PROJECTROOT +#pragma push_macro("Status") +#undef Status +#define Status wStatus #include <shlobj.h> +#pragma pop_macro("Status") typedef WINAPI HRESULT(*SHGETFOLDERPATHPROC) (HWND hwndOwner, int nFolder, HANDLE hToken, diff --git a/xorg-server/hw/xwin/Makefile.am b/xorg-server/hw/xwin/Makefile.am index 831e7dc47..c7006959c 100644 --- a/xorg-server/hw/xwin/Makefile.am +++ b/xorg-server/hw/xwin/Makefile.am @@ -153,6 +153,7 @@ XWin_SOURCES = $(SRCS) AM_CPPFLAGS = -I$(top_srcdir)/miext/rootless XWIN_SYS_LIBS += -ldxguid +XWIN_LIBS += $(top_builddir)/pseudoramiX/libPseudoramiX.la XWin_DEPENDENCIES = $(MULTIWINDOWEXTWM_LIBS) $(XWIN_GLX_LIBS) $(XWIN_LIBS) $(XSERVER_LIBS) XWin_LDADD = $(MULTIWINDOW_LIBS) $(MULTIWINDOWEXTWM_LIBS) $(XWIN_GLX_LIBS) $(XWIN_GLX_LINK_FLAGS) $(XWIN_LIBS) $(MAIN_LIB) $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XWIN_SYS_LIBS) diff --git a/xorg-server/hw/xwin/winauth.c b/xorg-server/hw/xwin/winauth.c index 25d1fbd62..a6a7366a4 100644 --- a/xorg-server/hw/xwin/winauth.c +++ b/xorg-server/hw/xwin/winauth.c @@ -36,6 +36,7 @@ /* Includes for authorization */ #include "securitysrv.h" +#include "os/osdep.h" /* * Constants @@ -56,8 +57,7 @@ static char *g_pAuthData = NULL; */ #ifndef XCSECURITY -static - void +void GenerateRandomData(int len, char *buf) { int fd; @@ -70,9 +70,8 @@ GenerateRandomData(int len, char *buf) static char cookie[16]; /* 128 bits */ XID - static MitGenerateCookie(unsigned data_length, - char *data, + const char *data, XID id, unsigned *data_length_return, char **data_return) { int i = 0; diff --git a/xorg-server/hw/xwin/winclipboard.h b/xorg-server/hw/xwin/winclipboard.h index aa7fd4468..cb7769510 100644 --- a/xorg-server/hw/xwin/winclipboard.h +++ b/xorg-server/hw/xwin/winclipboard.h @@ -106,9 +106,6 @@ void void *winClipboardProc(void *); -void - winDeinitClipboard(void); - /* * winclipboardwndproc.c */ diff --git a/xorg-server/hw/xwin/winclipboardwndproc.c b/xorg-server/hw/xwin/winclipboardwndproc.c index e19f678a7..90dc9e0bb 100644 --- a/xorg-server/hw/xwin/winclipboardwndproc.c +++ b/xorg-server/hw/xwin/winclipboardwndproc.c @@ -48,21 +48,10 @@ * References to external symbols */ -extern Bool g_fUseUnicode; extern void *g_pClipboardDisplay; extern Window g_iClipboardWindow; extern Atom g_atomLastOwnedSelection; -/* - * Local function prototypes - */ - -static int - - -winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay, - Bool fUseUnicode, int iTimeoutSec); - /* * Process X events up to specified timeout */ diff --git a/xorg-server/hw/xwin/winclipboardwrappers.c b/xorg-server/hw/xwin/winclipboardwrappers.c index 008088b6a..bfd6bff8b 100644 --- a/xorg-server/hw/xwin/winclipboardwrappers.c +++ b/xorg-server/hw/xwin/winclipboardwrappers.c @@ -56,8 +56,6 @@ DISPATCH_PROC(winProcSetSelectionOwner); * References to external symbols */ -extern unsigned int g_uiAuthDataLen; -extern char *g_pAuthData; extern Bool g_fClipboardLaunched; extern Bool g_fClipboardStarted; extern Bool g_fClipboard; diff --git a/xorg-server/hw/xwin/wincursor.c b/xorg-server/hw/xwin/wincursor.c index 2962d06ad..a35336a34 100644 --- a/xorg-server/hw/xwin/wincursor.c +++ b/xorg-server/hw/xwin/wincursor.c @@ -162,7 +162,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen) HDC hDC; BITMAPV4HEADER bi; BITMAPINFO *pbmi; - unsigned long *lpBits; + uint32_t *lpBits; WIN_DEBUG_MSG("winLoadCursor: Win32: %dx%d X11: %dx%d hotspot: %d,%d\n", pScreenPriv->cursor.sm_cx, pScreenPriv->cursor.sm_cy, @@ -256,15 +256,14 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen) bi.bV4AlphaMask = 0xFF000000; lpBits = - (unsigned long *) calloc(pScreenPriv->cursor.sm_cx * - pScreenPriv->cursor.sm_cy, - sizeof(unsigned long)); + (uint32_t *) calloc(pScreenPriv->cursor.sm_cx * + pScreenPriv->cursor.sm_cy, + sizeof(uint32_t)); if (lpBits) { int y; for (y = 0; y < nCY; y++) { - unsigned long *src, *dst; - + void *src, *dst; src = &(pCursor->bits->argb[y * pCursor->bits->width]); dst = &(lpBits[y * pScreenPriv->cursor.sm_cx]); memcpy(dst, src, 4 * nCX); @@ -273,9 +272,12 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen) } /* End if-truecolor-icon */ if (!lpBits) { + RGBQUAD *pbmiColors; /* Bicolor, use a palettized DIB */ WIN_DEBUG_MSG("winLoadCursor: Trying two color cursor\n"); pbmi = (BITMAPINFO *) &bi; + pbmiColors = &(pbmi->bmiColors[0]); + memset(pbmi, 0, sizeof(BITMAPINFOHEADER)); pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); pbmi->bmiHeader.biWidth = pScreenPriv->cursor.sm_cx; @@ -286,22 +288,23 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen) pbmi->bmiHeader.biSizeImage = 0; pbmi->bmiHeader.biClrUsed = 3; pbmi->bmiHeader.biClrImportant = 3; - pbmi->bmiColors[0].rgbRed = 0; /* Empty */ - pbmi->bmiColors[0].rgbGreen = 0; - pbmi->bmiColors[0].rgbBlue = 0; - pbmi->bmiColors[0].rgbReserved = 0; - pbmi->bmiColors[1].rgbRed = pCursor->backRed >> 8; /* Background */ - pbmi->bmiColors[1].rgbGreen = pCursor->backGreen >> 8; - pbmi->bmiColors[1].rgbBlue = pCursor->backBlue >> 8; - pbmi->bmiColors[1].rgbReserved = 0; - pbmi->bmiColors[2].rgbRed = pCursor->foreRed >> 8; /* Foreground */ - pbmi->bmiColors[2].rgbGreen = pCursor->foreGreen >> 8; - pbmi->bmiColors[2].rgbBlue = pCursor->foreBlue >> 8; - pbmi->bmiColors[2].rgbReserved = 0; + + pbmiColors[0].rgbRed = 0; /* Empty */ + pbmiColors[0].rgbGreen = 0; + pbmiColors[0].rgbBlue = 0; + pbmiColors[0].rgbReserved = 0; + pbmiColors[1].rgbRed = pCursor->backRed >> 8; /* Background */ + pbmiColors[1].rgbGreen = pCursor->backGreen >> 8; + pbmiColors[1].rgbBlue = pCursor->backBlue >> 8; + pbmiColors[1].rgbReserved = 0; + pbmiColors[2].rgbRed = pCursor->foreRed >> 8; /* Foreground */ + pbmiColors[2].rgbGreen = pCursor->foreGreen >> 8; + pbmiColors[2].rgbBlue = pCursor->foreBlue >> 8; + pbmiColors[2].rgbReserved = 0; lpBits = - (unsigned long *) calloc(pScreenPriv->cursor.sm_cx * - pScreenPriv->cursor.sm_cy, sizeof(char)); + (uint32_t *) calloc(pScreenPriv->cursor.sm_cx * + pScreenPriv->cursor.sm_cy, sizeof(char)); pCur = (unsigned char *) lpBits; if (lpBits) { diff --git a/xorg-server/hw/xwin/winglobals.c b/xorg-server/hw/xwin/winglobals.c index b3ca29592..d28132247 100644 --- a/xorg-server/hw/xwin/winglobals.c +++ b/xorg-server/hw/xwin/winglobals.c @@ -85,7 +85,6 @@ pthread_mutex_t g_pmTerminating = PTHREAD_MUTEX_INITIALIZER; * Wrapped DIX functions */ winDispatchProcPtr winProcEstablishConnectionOrig = NULL; -winDispatchProcPtr winProcQueryTreeOrig = NULL; winDispatchProcPtr winProcSetSelectionOwnerOrig = NULL; /* diff --git a/xorg-server/hw/xwin/winglobals.h b/xorg-server/hw/xwin/winglobals.h index e7e2f7e20..58a919c65 100644 --- a/xorg-server/hw/xwin/winglobals.h +++ b/xorg-server/hw/xwin/winglobals.h @@ -30,6 +30,8 @@ #include <xwin-config.h> #endif +#include <pthread.h> + /* * References to external symbols */ @@ -69,7 +71,6 @@ typedef int (*winDispatchProcPtr) (ClientPtr); * Wrapped DIX functions */ extern winDispatchProcPtr winProcEstablishConnectionOrig; -extern winDispatchProcPtr winProcQueryTreeOrig; extern winDispatchProcPtr winProcSetSelectionOwnerOrig; #endif diff --git a/xorg-server/hw/xwin/winmultiwindowwm.c b/xorg-server/hw/xwin/winmultiwindowwm.c index 3c44f05e4..1dd8ba5b3 100644 --- a/xorg-server/hw/xwin/winmultiwindowwm.c +++ b/xorg-server/hw/xwin/winmultiwindowwm.c @@ -488,7 +488,7 @@ getHwnd(WMInfoPtr pWMInfo, Window iWindow) iWindow, pWMInfo->atmPrivMap, 0, - 1, + sizeof(HWND)/4, False, XA_INTEGER, &atmType, @@ -747,10 +747,10 @@ winMultiWindowWMProc(void *pArg) ErrorF("\tWM_WM_MAP\n"); #endif /* Put a note as to the HWND associated with this Window */ - XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, //pWMInfo->atmPrivMap, + XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, 32, PropModeReplace, - (unsigned char *) &(pNode->msg.hwndWindow), 1); + (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4); UpdateName(pWMInfo, pNode->msg.iWindow); UpdateIcon(pWMInfo, pNode->msg.iWindow); break; @@ -759,10 +759,10 @@ winMultiWindowWMProc(void *pArg) #if CYGMULTIWINDOW_DEBUG ErrorF("\tWM_WM_MAP2\n"); #endif - XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, //pWMInfo->atmPrivMap, + XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, 32, PropModeReplace, - (unsigned char *) &(pNode->msg.hwndWindow), 1); + (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4); break; case WM_WM_MAP3: @@ -770,10 +770,10 @@ winMultiWindowWMProc(void *pArg) ErrorF("\tWM_WM_MAP3\n"); #endif /* Put a note as to the HWND associated with this Window */ - XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, //pWMInfo->atmPrivMap, + XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, 32, PropModeReplace, - (unsigned char *) &(pNode->msg.hwndWindow), 1); + (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4); UpdateName(pWMInfo, pNode->msg.iWindow); UpdateIcon(pWMInfo, pNode->msg.iWindow); UpdateStyle(pWMInfo, pNode->msg.iWindow); @@ -1061,15 +1061,13 @@ winMultiWindowXMsgProc(void *pArg) (pProcArg->pDisplay, pProcArg->dwScreen, TRUE)) { if (!g_fAnotherWMRunning) { g_fAnotherWMRunning = TRUE; - SendMessage(*(HWND *) pProcArg->hwndScreen, WM_UNMANAGE, 0, - 0); + SendMessage(pProcArg->hwndScreen, WM_UNMANAGE, 0, 0); } } else { if (g_fAnotherWMRunning) { g_fAnotherWMRunning = FALSE; - SendMessage(*(HWND *) pProcArg->hwndScreen, WM_MANAGE, 0, - 0); + SendMessage(pProcArg->hwndScreen, WM_MANAGE, 0, 0); } } Sleep(500); diff --git a/xorg-server/hw/xwin/winmultiwindowwndproc.c b/xorg-server/hw/xwin/winmultiwindowwndproc.c index 9292e73ca..abb87ee4b 100644 --- a/xorg-server/hw/xwin/winmultiwindowwndproc.c +++ b/xorg-server/hw/xwin/winmultiwindowwndproc.c @@ -420,14 +420,14 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) /* * Add whatever the setup file wants to for this window */ - SetupSysMenu((unsigned long) hwnd); + SetupSysMenu(hwnd); return 0; case WM_SYSCOMMAND: /* * Any window menu items go through here */ - if (HandleCustomWM_COMMAND((unsigned long) hwnd, LOWORD(wParam))) { + if (HandleCustomWM_COMMAND(hwnd, LOWORD(wParam))) { /* Don't pass customized menus to DefWindowProc */ return 0; } @@ -443,7 +443,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) case WM_INITMENU: /* Checks/Unchecks any menu items before they are displayed */ - HandleCustomWM_INITMENU((unsigned long) hwnd, wParam); + HandleCustomWM_INITMENU(hwnd, (HMENU)wParam); break; case WM_ERASEBKGND: @@ -825,7 +825,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) } /* Prevent the mouse wheel from stalling when another window is minimized */ if (HIWORD(wParam) == 0 && LOWORD(wParam) == WA_ACTIVE && - (HWND) lParam != NULL && (HWND) lParam != (HWND) GetParent(hwnd)) + (HWND) lParam != NULL && (HWND) lParam != GetParent(hwnd)) SetFocus(hwnd); return 0; diff --git a/xorg-server/hw/xwin/winprefs.c b/xorg-server/hw/xwin/winprefs.c index 8936aae63..f386facdd 100644 --- a/xorg-server/hw/xwin/winprefs.c +++ b/xorg-server/hw/xwin/winprefs.c @@ -188,7 +188,7 @@ ReloadEnumWindowsProc(HWND hwnd, LPARAM lParam) } /* Update the system menu for this window */ - SetupSysMenu((unsigned long) hwnd); + SetupSysMenu(hwnd); /* That was easy... */ } @@ -275,15 +275,11 @@ ReloadPrefs(void) * Check/uncheck the ALWAYSONTOP items in this menu */ void -HandleCustomWM_INITMENU(unsigned long hwndIn, unsigned long hmenuIn) +HandleCustomWM_INITMENU(HWND hwnd, HMENU hmenu) { - HWND hwnd; - HMENU hmenu; DWORD dwExStyle; int i, j; - hwnd = (HWND) hwndIn; - hmenu = (HMENU) hmenuIn; if (!hwnd || !hmenu) return; @@ -305,15 +301,12 @@ HandleCustomWM_INITMENU(unsigned long hwndIn, unsigned long hmenuIn) * Return TRUE if command is proccessed, FALSE otherwise. */ Bool -HandleCustomWM_COMMAND(unsigned long hwndIn, int command) +HandleCustomWM_COMMAND(HWND hwnd, int command) { - HWND hwnd; int i, j; MENUPARSED *m; DWORD dwExStyle; - hwnd = (HWND) hwndIn; - if (!command) return FALSE; @@ -412,15 +405,13 @@ HandleCustomWM_COMMAND(unsigned long hwndIn, int command) * Add the default or a custom menu depending on the class match */ void -SetupSysMenu(unsigned long hwndIn) +SetupSysMenu(HWND hwnd) { - HWND hwnd; HMENU sys; int i; WindowPtr pWin; char *res_name, *res_class; - hwnd = (HWND) hwndIn; if (!hwnd) return; @@ -465,11 +456,8 @@ SetupSysMenu(unsigned long hwndIn) * Possibly add a menu to the toolbar icon */ void -SetupRootMenu(unsigned long hmenuRoot) +SetupRootMenu(HMENU root) { - HMENU root; - - root = (HMENU) hmenuRoot; if (!root) return; diff --git a/xorg-server/hw/xwin/winprefs.h b/xorg-server/hw/xwin/winprefs.h index a4a6e7eec..8f4eb0807 100644 --- a/xorg-server/hw/xwin/winprefs.h +++ b/xorg-server/hw/xwin/winprefs.h @@ -150,16 +150,16 @@ void LoadPreferences(void); void - SetupRootMenu(unsigned long hmenuRoot); + SetupRootMenu(HMENU root); void - SetupSysMenu(unsigned long hwndIn); + SetupSysMenu(HWND hwnd); void - HandleCustomWM_INITMENU(unsigned long hwndIn, unsigned long hmenuIn); + HandleCustomWM_INITMENU(HWND hwnd, HMENU hmenu); Bool - HandleCustomWM_COMMAND(unsigned long hwndIn, int command); + HandleCustomWM_COMMAND(HWND hwnd, int command); int winIconIsOverride(HICON hicon); diff --git a/xorg-server/hw/xwin/winsetsp.c b/xorg-server/hw/xwin/winsetsp.c index f102f9ff5..11108cb53 100644 --- a/xorg-server/hw/xwin/winsetsp.c +++ b/xorg-server/hw/xwin/winsetsp.c @@ -46,7 +46,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable, PixmapPtr pPixmap = NULL; winPrivPixmapPtr pPixmapPriv = NULL; HBITMAP hbmpOrig = NULL; - BITMAPINFO bmi; + BITMAPINFO *pbmi; HRGN hrgn = NULL, combined = NULL; int nbox; BoxPtr pbox; @@ -57,6 +57,8 @@ winSetSpansNativeGDI(DrawablePtr pDrawable, if (!nbox) return; + pbmi = malloc(sizeof(BITMAPINFO) + sizeof(RGBQUAD)); + combined = CreateRectRgn(pbox->x1, pbox->y1, pbox->x2, pbox->y2); nbox--; pbox++; @@ -86,19 +88,20 @@ winSetSpansNativeGDI(DrawablePtr pDrawable, "failed on pPixmapPriv->hBitmap\n"); while (iSpans--) { - ZeroMemory(&bmi, sizeof(BITMAPINFO)); - bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - bmi.bmiHeader.biWidth = *piWidths; - bmi.bmiHeader.biHeight = 1; - bmi.bmiHeader.biPlanes = 1; - bmi.bmiHeader.biBitCount = pDrawable->depth; - bmi.bmiHeader.biCompression = BI_RGB; + ZeroMemory(pbmi, sizeof(BITMAPINFO)); + pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + pbmi->bmiHeader.biWidth = *piWidths; + pbmi->bmiHeader.biHeight = 1; + pbmi->bmiHeader.biPlanes = 1; + pbmi->bmiHeader.biBitCount = pDrawable->depth; + pbmi->bmiHeader.biCompression = BI_RGB; /* Setup color table for mono DIBs */ if (pDrawable->depth == 1) { - bmi.bmiColors[1].rgbBlue = 255; - bmi.bmiColors[1].rgbGreen = 255; - bmi.bmiColors[1].rgbRed = 255; + RGBQUAD *bmiColors = &(pbmi->bmiColors[0]); + bmiColors[1].rgbBlue = 255; + bmiColors[1].rgbGreen = 255; + bmiColors[1].rgbRed = 255; } StretchDIBits(pGCPriv->hdcMem, @@ -107,7 +110,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable, 0, 0, *piWidths, 1, pSrcs, - (BITMAPINFO *) &bmi, + (BITMAPINFO *) pbmi, DIB_RGB_COLORS, g_copyROP[pGC->alu]); pSrcs += PixmapBytePad(*piWidths, pDrawable->depth); @@ -129,19 +132,20 @@ winSetSpansNativeGDI(DrawablePtr pDrawable, combined = NULL; while (iSpans--) { - ZeroMemory(&bmi, sizeof(BITMAPINFO)); - bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - bmi.bmiHeader.biWidth = *piWidths; - bmi.bmiHeader.biHeight = 1; - bmi.bmiHeader.biPlanes = 1; - bmi.bmiHeader.biBitCount = pDrawable->depth; - bmi.bmiHeader.biCompression = BI_RGB; + ZeroMemory(pbmi, sizeof(BITMAPINFO)); + pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + pbmi->bmiHeader.biWidth = *piWidths; + pbmi->bmiHeader.biHeight = 1; + pbmi->bmiHeader.biPlanes = 1; + pbmi->bmiHeader.biBitCount = pDrawable->depth; + pbmi->bmiHeader.biCompression = BI_RGB; /* Setup color table for mono DIBs */ if (pDrawable->depth == 1) { - bmi.bmiColors[1].rgbBlue = 255; - bmi.bmiColors[1].rgbGreen = 255; - bmi.bmiColors[1].rgbRed = 255; + RGBQUAD *bmiColors = &(pbmi->bmiColors[0]); + bmiColors[1].rgbBlue = 255; + bmiColors[1].rgbGreen = 255; + bmiColors[1].rgbRed = 255; } StretchDIBits(pGCPriv->hdc, @@ -150,7 +154,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable, 0, 0, *piWidths, 1, pSrcs, - (BITMAPINFO *) &bmi, + (BITMAPINFO *) pbmi, DIB_RGB_COLORS, g_copyROP[pGC->alu]); pSrcs += PixmapBytePad(*piWidths, pDrawable->depth); @@ -166,4 +170,6 @@ winSetSpansNativeGDI(DrawablePtr pDrawable, FatalError("\nwinSetSpansNativeGDI - Unknown drawable type\n\n"); break; } + + free(pbmi); } diff --git a/xorg-server/hw/xwin/wintrayicon.c b/xorg-server/hw/xwin/wintrayicon.c index f168b884a..e0aa7e5ab 100644 --- a/xorg-server/hw/xwin/wintrayicon.c +++ b/xorg-server/hw/xwin/wintrayicon.c @@ -170,7 +170,7 @@ winHandleIconMessage(HWND hwnd, UINT message, RemoveMenu(hmenuTray, ID_APP_HIDE_ROOT, MF_BYCOMMAND); } - SetupRootMenu((unsigned long) hmenuTray); + SetupRootMenu(hmenuTray); /* * NOTE: This three-step procedure is required for |