Merge remote-tracking branch 'jturney/master'

This commit is contained in:
Keith Packard 2013-09-09 15:13:42 -07:00
commit 47ff382d1f
22 changed files with 97 additions and 105 deletions

View File

@ -27,6 +27,7 @@ SUBDIRS = \
Xext \
miext \
os \
pseudoramiX \
randr \
render \
Xi \
@ -77,6 +78,7 @@ DIST_SUBDIRS = \
Xext \
miext \
os \
pseudoramiX \
randr \
render \
Xi \

View File

@ -2256,6 +2256,7 @@ miext/damage/Makefile
miext/shadow/Makefile
miext/rootless/Makefile
os/Makefile
pseudoramiX/Makefile
randr/Makefile
render/Makefile
xkb/Makefile

View File

@ -28,7 +28,6 @@ libXquartz_la_SOURCES = \
darwinEvents.c \
darwinXinput.c \
keysym2ucs.c \
pseudoramiX.c \
quartz.c \
quartzCocoa.m \
quartzKeyboard.c \
@ -36,6 +35,8 @@ libXquartz_la_SOURCES = \
quartzRandR.c \
console_redirect.c
libXquartz_la_LIBADD = $(top_builddir)/pseudoramiX/libPseudoramiX.la
EXTRA_DIST = \
X11Application.h \
X11Controller.h \
@ -44,7 +45,6 @@ EXTRA_DIST = \
darwinfb.h \
darwinEvents.h \
keysym2ucs.h \
pseudoramiX.h \
quartz.h \
quartzCommon.h \
quartzKeyboard.h \

View File

@ -39,7 +39,6 @@
#ifdef XWIN_CLIPBOARD
int winProcEstablishConnection(ClientPtr /* client */ );
int winProcQueryTree(ClientPtr /* client */ );
int winProcSetSelectionOwner(ClientPtr /* client */ );
#endif

View File

@ -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,

View File

@ -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)

View File

@ -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;

View File

@ -106,9 +106,6 @@ void
void *winClipboardProc(void *);
void
winDeinitClipboard(void);
/*
* winclipboardwndproc.c
*/

View File

@ -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
*/

View File

@ -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;

View File

@ -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 *
(uint32_t *) calloc(pScreenPriv->cursor.sm_cx *
pScreenPriv->cursor.sm_cy,
sizeof(unsigned long));
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,21 +288,22 @@ 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 *
(uint32_t *) calloc(pScreenPriv->cursor.sm_cx *
pScreenPriv->cursor.sm_cy, sizeof(char));
pCur = (unsigned char *) lpBits;

View File

@ -85,7 +85,6 @@ pthread_mutex_t g_pmTerminating = PTHREAD_MUTEX_INITIALIZER;
* Wrapped DIX functions
*/
winDispatchProcPtr winProcEstablishConnectionOrig = NULL;
winDispatchProcPtr winProcQueryTreeOrig = NULL;
winDispatchProcPtr winProcSetSelectionOwnerOrig = NULL;
/*

View File

@ -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

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);
}

View File

@ -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

7
pseudoramiX/Makefile.am Normal file
View File

@ -0,0 +1,7 @@
# Fake Xinerama extension
AM_CFLAGS = $(DIX_CFLAGS)
noinst_LTLIBRARIES = libPseudoramiX.la
libPseudoramiX_la_SOURCES = pseudoramiX.c pseudoramiX.h