diff options
author | marha <marha@users.sourceforge.net> | 2012-03-26 14:23:28 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-03-26 14:23:28 +0200 |
commit | 76bcc36ed305418a3ddc5752d287ede894243e1b (patch) | |
tree | bacb320c825768471ce56f058f17ce863d592376 /xorg-server/hw/xwin/winwin32rootlesswindow.c | |
parent | 7d894e32566b710952c44cbc71939ad1d9e2fa8d (diff) | |
parent | 0f834b91a4768673833ab4917e87d86c237bb1a6 (diff) | |
download | vcxsrv-76bcc36ed305418a3ddc5752d287ede894243e1b.tar.gz vcxsrv-76bcc36ed305418a3ddc5752d287ede894243e1b.tar.bz2 vcxsrv-76bcc36ed305418a3ddc5752d287ede894243e1b.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
pixman/pixman/pixman-mmx.c
xorg-server/Xext/shm.c
xorg-server/Xext/syncsrv.h
xorg-server/Xext/xvmain.c
xorg-server/Xi/exevents.c
xorg-server/Xi/opendev.c
xorg-server/composite/compalloc.c
xorg-server/composite/compoverlay.c
xorg-server/dix/colormap.c
xorg-server/dix/devices.c
xorg-server/dix/dispatch.c
xorg-server/dix/dixfonts.c
xorg-server/dix/eventconvert.c
xorg-server/dix/events.c
xorg-server/dix/gc.c
xorg-server/dix/getevents.c
xorg-server/dix/main.c
xorg-server/dix/privates.c
xorg-server/dix/registry.c
xorg-server/dix/resource.c
xorg-server/exa/exa_accel.c
xorg-server/exa/exa_migration_classic.c
xorg-server/exa/exa_unaccel.c
xorg-server/fb/fb.h
xorg-server/fb/fbcopy.c
xorg-server/fb/fbpixmap.c
xorg-server/glx/dispatch.h
xorg-server/glx/glapi.h
xorg-server/glx/glapi_gentable.c
xorg-server/glx/glapitable.h
xorg-server/glx/glprocs.h
xorg-server/glx/glxcmds.c
xorg-server/glx/glxcmdsswap.c
xorg-server/glx/glxdricommon.c
xorg-server/glx/glxdriswrast.c
xorg-server/glx/glxext.c
xorg-server/glx/indirect_dispatch.c
xorg-server/glx/indirect_dispatch.h
xorg-server/glx/indirect_dispatch_swap.c
xorg-server/glx/indirect_size.h
xorg-server/glx/indirect_size_get.h
xorg-server/glx/indirect_table.c
xorg-server/glx/indirect_util.c
xorg-server/glx/rensize.c
xorg-server/glx/single2swap.c
xorg-server/glx/singlepix.c
xorg-server/glx/singlepixswap.c
xorg-server/glx/singlesize.c
xorg-server/hw/dmx/dmxinit.c
xorg-server/hw/kdrive/ephyr/ephyr.c
xorg-server/hw/kdrive/ephyr/hostx.c
xorg-server/hw/kdrive/ephyr/hostx.h
xorg-server/hw/kdrive/src/kinput.c
xorg-server/hw/xfree86/common/compiler.h
xorg-server/hw/xwin/InitInput.c
xorg-server/hw/xwin/InitOutput.c
xorg-server/hw/xwin/ddraw.h
xorg-server/hw/xwin/glx/glwrap.c
xorg-server/hw/xwin/glx/indirect.c
xorg-server/hw/xwin/glx/wgl_ext_api.h
xorg-server/hw/xwin/glx/winpriv.c
xorg-server/hw/xwin/win.h
xorg-server/hw/xwin/winallpriv.c
xorg-server/hw/xwin/winauth.c
xorg-server/hw/xwin/winclipboard.h
xorg-server/hw/xwin/winclipboardinit.c
xorg-server/hw/xwin/winclipboardthread.c
xorg-server/hw/xwin/winclipboardunicode.c
xorg-server/hw/xwin/winclipboardwndproc.c
xorg-server/hw/xwin/winclipboardwrappers.c
xorg-server/hw/xwin/winclipboardxevents.c
xorg-server/hw/xwin/wincmap.c
xorg-server/hw/xwin/winconfig.c
xorg-server/hw/xwin/wincreatewnd.c
xorg-server/hw/xwin/wincursor.c
xorg-server/hw/xwin/windialogs.c
xorg-server/hw/xwin/winengine.c
xorg-server/hw/xwin/winerror.c
xorg-server/hw/xwin/wingc.c
xorg-server/hw/xwin/wingetsp.c
xorg-server/hw/xwin/winkeybd.c
xorg-server/hw/xwin/winkeybd.h
xorg-server/hw/xwin/winlayouts.h
xorg-server/hw/xwin/winmisc.c
xorg-server/hw/xwin/winmonitors.c
xorg-server/hw/xwin/winmouse.c
xorg-server/hw/xwin/winmsg.c
xorg-server/hw/xwin/winmsg.h
xorg-server/hw/xwin/winmultiwindowclass.c
xorg-server/hw/xwin/winmultiwindowicons.c
xorg-server/hw/xwin/winmultiwindowshape.c
xorg-server/hw/xwin/winmultiwindowwindow.c
xorg-server/hw/xwin/winmultiwindowwm.c
xorg-server/hw/xwin/winmultiwindowwndproc.c
xorg-server/hw/xwin/winnativegdi.c
xorg-server/hw/xwin/winpfbdd.c
xorg-server/hw/xwin/winpixmap.c
xorg-server/hw/xwin/winpolyline.c
xorg-server/hw/xwin/winprefs.c
xorg-server/hw/xwin/winprocarg.c
xorg-server/hw/xwin/winregistry.c
xorg-server/hw/xwin/winscrinit.c
xorg-server/hw/xwin/winsetsp.c
xorg-server/hw/xwin/winshaddd.c
xorg-server/hw/xwin/winshadddnl.c
xorg-server/hw/xwin/winshadgdi.c
xorg-server/hw/xwin/wintrayicon.c
xorg-server/hw/xwin/winwin32rootless.c
xorg-server/hw/xwin/winwin32rootlesswindow.c
xorg-server/hw/xwin/winwin32rootlesswndproc.c
xorg-server/hw/xwin/winwindow.c
xorg-server/hw/xwin/winwindow.h
xorg-server/hw/xwin/winwindowswm.c
xorg-server/hw/xwin/winwndproc.c
xorg-server/include/callback.h
xorg-server/include/dixstruct.h
xorg-server/include/misc.h
xorg-server/include/os.h
xorg-server/include/scrnintstr.h
xorg-server/mi/micmap.c
xorg-server/mi/miinitext.c
xorg-server/mi/mioverlay.c
xorg-server/mi/misprite.c
xorg-server/mi/mivaltree.c
xorg-server/mi/miwindow.c
xorg-server/miext/damage/damage.c
xorg-server/miext/rootless/rootlessGC.c
xorg-server/miext/rootless/rootlessWindow.c
xorg-server/os/WaitFor.c
xorg-server/os/access.c
xorg-server/os/connection.c
xorg-server/os/io.c
xorg-server/os/log.c
xorg-server/os/osinit.c
xorg-server/os/utils.c
xorg-server/os/xdmcp.c
xorg-server/os/xprintf.c
xorg-server/os/xstrans.c
xorg-server/render/mipict.c
xorg-server/xkb/xkbActions.c
xorg-server/xkb/xkbInit.c
xorg-server/xkeyboard-config/compat/default.in
Diffstat (limited to 'xorg-server/hw/xwin/winwin32rootlesswindow.c')
-rw-r--r-- | xorg-server/hw/xwin/winwin32rootlesswindow.c | 578 |
1 files changed, 284 insertions, 294 deletions
diff --git a/xorg-server/hw/xwin/winwin32rootlesswindow.c b/xorg-server/hw/xwin/winwin32rootlesswindow.c index bcfb2798e..19478ad60 100644 --- a/xorg-server/hw/xwin/winwin32rootlesswindow.c +++ b/xorg-server/hw/xwin/winwin32rootlesswindow.c @@ -42,345 +42,333 @@ */ void -winMWExtWMReorderWindows (ScreenPtr pScreen) +winMWExtWMReorderWindows(ScreenPtr pScreen) { - winScreenPriv(pScreen); - HWND hwnd = NULL; - win32RootlessWindowPtr pRLWin = NULL; - win32RootlessWindowPtr pRLWinSib = NULL; - DWORD dwCurrentProcessID = GetCurrentProcessId (); - DWORD dwWindowProcessID = 0; - XID vlist[2]; + winScreenPriv(pScreen); + HWND hwnd = NULL; + win32RootlessWindowPtr pRLWin = NULL; + win32RootlessWindowPtr pRLWinSib = NULL; + DWORD dwCurrentProcessID = GetCurrentProcessId(); + DWORD dwWindowProcessID = 0; + XID vlist[2]; #if CYGMULTIWINDOW_DEBUG && FALSE - winDebug ("winMWExtWMReorderWindows\n"); + winDebug("winMWExtWMReorderWindows\n"); #endif - pScreenPriv->fRestacking = TRUE; + pScreenPriv->fRestacking = TRUE; - if (pScreenPriv->fWindowOrderChanged) - { + if (pScreenPriv->fWindowOrderChanged) { #if CYGMULTIWINDOW_DEBUG - winDebug ("winMWExtWMReorderWindows - Need to restack\n"); + winDebug("winMWExtWMReorderWindows - Need to restack\n"); #endif - hwnd = GetTopWindow (NULL); - - while (hwnd) - { - GetWindowThreadProcessId (hwnd, &dwWindowProcessID); - - if ((dwWindowProcessID == dwCurrentProcessID) - && GetProp (hwnd, WIN_WINDOW_PROP)) - { - pRLWinSib = pRLWin; - pRLWin = (win32RootlessWindowPtr)GetProp (hwnd, WIN_WINDOW_PROP); - - if (pRLWinSib) - { - vlist[0] = pRLWinSib->pFrame->win->drawable.id; - vlist[1] = Below; - - ConfigureWindow (pRLWin->pFrame->win, CWSibling | CWStackMode, - vlist, wClient(pRLWin->pFrame->win)); - } - else - { - /* 1st window - raise to the top */ - vlist[0] = Above; - - ConfigureWindow (pRLWin->pFrame->win, CWStackMode, - vlist, wClient(pRLWin->pFrame->win)); - } - } - hwnd = GetNextWindow (hwnd, GW_HWNDNEXT); - } + hwnd = GetTopWindow(NULL); + + while (hwnd) { + GetWindowThreadProcessId(hwnd, &dwWindowProcessID); + + if ((dwWindowProcessID == dwCurrentProcessID) + && GetProp(hwnd, WIN_WINDOW_PROP)) { + pRLWinSib = pRLWin; + pRLWin = + (win32RootlessWindowPtr) GetProp(hwnd, WIN_WINDOW_PROP); + + if (pRLWinSib) { + vlist[0] = pRLWinSib->pFrame->win->drawable.id; + vlist[1] = Below; + + ConfigureWindow(pRLWin->pFrame->win, + CWSibling | CWStackMode, vlist, + wClient(pRLWin->pFrame->win)); + } + else { + /* 1st window - raise to the top */ + vlist[0] = Above; + + ConfigureWindow(pRLWin->pFrame->win, CWStackMode, + vlist, wClient(pRLWin->pFrame->win)); + } + } + hwnd = GetNextWindow(hwnd, GW_HWNDNEXT); + } } - pScreenPriv->fRestacking = FALSE; - pScreenPriv->fWindowOrderChanged = FALSE; + pScreenPriv->fRestacking = FALSE; + pScreenPriv->fWindowOrderChanged = FALSE; } #endif - /* * winMWExtWMMoveXWindow */ void -winMWExtWMMoveXWindow (WindowPtr pWin, int x, int y) +winMWExtWMMoveXWindow(WindowPtr pWin, int x, int y) { - CARD32 *vlist = malloc(sizeof(CARD32)*2); + CARD32 *vlist = malloc(sizeof(CARD32) * 2); - vlist[0] = x; - vlist[1] = y; - ConfigureWindow (pWin, CWX | CWY, vlist, wClient(pWin)); - free(vlist); + vlist[0] = x; + vlist[1] = y; + ConfigureWindow(pWin, CWX | CWY, vlist, wClient(pWin)); + free(vlist); } - /* * winMWExtWMResizeXWindow */ void -winMWExtWMResizeXWindow (WindowPtr pWin, int w, int h) +winMWExtWMResizeXWindow(WindowPtr pWin, int w, int h) { - CARD32 *vlist = malloc(sizeof(CARD32)*2); + CARD32 *vlist = malloc(sizeof(CARD32) * 2); - vlist[0] = w; - vlist[1] = h; - ConfigureWindow (pWin, CWWidth | CWHeight, vlist, wClient(pWin)); - free(vlist); + vlist[0] = w; + vlist[1] = h; + ConfigureWindow(pWin, CWWidth | CWHeight, vlist, wClient(pWin)); + free(vlist); } - /* * winMWExtWMMoveResizeXWindow */ void -winMWExtWMMoveResizeXWindow (WindowPtr pWin, int x, int y, int w, int h) +winMWExtWMMoveResizeXWindow(WindowPtr pWin, int x, int y, int w, int h) { - CARD32 *vlist = malloc(sizeof(long)*4); + CARD32 *vlist = malloc(sizeof(long) * 4); - vlist[0] = x; - vlist[1] = y; - vlist[2] = w; - vlist[3] = h; + vlist[0] = x; + vlist[1] = y; + vlist[2] = w; + vlist[3] = h; - ConfigureWindow (pWin, CWX | CWY | CWWidth | CWHeight, vlist, wClient(pWin)); - free(vlist); + ConfigureWindow(pWin, CWX | CWY | CWWidth | CWHeight, vlist, wClient(pWin)); + free(vlist); } - /* * winMWExtWMUpdateIcon * Change the Windows window icon */ void -winMWExtWMUpdateIcon (Window id) +winMWExtWMUpdateIcon(Window id) { - WindowPtr pWin; - HICON hIcon, hiconOld; + WindowPtr pWin; + HICON hIcon, hiconOld; - dixLookupResourceByType((pointer) &pWin, id, RT_WINDOW, NullClient, DixUnknownAccess); - hIcon = winOverrideIcon ((unsigned long)pWin); + dixLookupResourceByType((pointer) &pWin, id, RT_WINDOW, NullClient, + DixUnknownAccess); + hIcon = winOverrideIcon((unsigned long) pWin); - if (!hIcon) - hIcon = winXIconToHICON (pWin, GetSystemMetrics(SM_CXICON)); + if (!hIcon) + hIcon = winXIconToHICON(pWin, GetSystemMetrics(SM_CXICON)); - if (hIcon) - { - win32RootlessWindowPtr pRLWinPriv - = (win32RootlessWindowPtr) RootlessFrameForWindow (pWin, FALSE); + if (hIcon) { + win32RootlessWindowPtr pRLWinPriv + = (win32RootlessWindowPtr) RootlessFrameForWindow(pWin, FALSE); - if (pRLWinPriv->hWnd) - { + if (pRLWinPriv->hWnd) { - hiconOld = (HICON) SendMessage (pRLWinPriv->hWnd, - WM_SETICON, ICON_BIG, (LPARAM) hIcon); - winDestroyIcon(hiconOld); - } - hIcon=NULL; + hiconOld = (HICON) SendMessage(pRLWinPriv->hWnd, + WM_SETICON, ICON_BIG, + (LPARAM) hIcon); + winDestroyIcon(hiconOld); + } + hIcon = NULL; } } - /* * winMWExtWMDecorateWindow - Update window style. Called by EnumWindows. */ wBOOL CALLBACK -winMWExtWMDecorateWindow (HWND hwnd, LPARAM lParam) +winMWExtWMDecorateWindow(HWND hwnd, LPARAM lParam) { - win32RootlessWindowPtr pRLWinPriv = NULL; - ScreenPtr pScreen = NULL; - winPrivScreenPtr pScreenPriv = NULL; - winScreenInfo *pScreenInfo = NULL; - - /* Check if the Windows window property for our X window pointer is valid */ - if ((pRLWinPriv = (win32RootlessWindowPtr)GetProp (hwnd, WIN_WINDOW_PROP)) != NULL) - { - if (pRLWinPriv != NULL && pRLWinPriv->pFrame != NULL && pRLWinPriv->pFrame->win != NULL) - pScreen = pRLWinPriv->pFrame->win->drawable.pScreen; - if (pScreen) pScreenPriv = winGetScreenPriv(pScreen); - if (pScreenPriv) pScreenInfo = pScreenPriv->pScreenInfo; - if (pRLWinPriv && pScreenInfo) winMWExtWMUpdateWindowDecoration (pRLWinPriv, pScreenInfo); + win32RootlessWindowPtr pRLWinPriv = NULL; + ScreenPtr pScreen = NULL; + winPrivScreenPtr pScreenPriv = NULL; + winScreenInfo *pScreenInfo = NULL; + + /* Check if the Windows window property for our X window pointer is valid */ + if ((pRLWinPriv = + (win32RootlessWindowPtr) GetProp(hwnd, WIN_WINDOW_PROP)) != NULL) { + if (pRLWinPriv != NULL && pRLWinPriv->pFrame != NULL && + pRLWinPriv->pFrame->win != NULL) + pScreen = pRLWinPriv->pFrame->win->drawable.pScreen; + if (pScreen) + pScreenPriv = winGetScreenPriv(pScreen); + if (pScreenPriv) + pScreenInfo = pScreenPriv->pScreenInfo; + if (pRLWinPriv && pScreenInfo) + winMWExtWMUpdateWindowDecoration(pRLWinPriv, pScreenInfo); } - return TRUE; + return TRUE; } - /* * winMWExtWMUpdateWindowDecoration - Update window style. */ void -winMWExtWMUpdateWindowDecoration (win32RootlessWindowPtr pRLWinPriv, - winScreenInfoPtr pScreenInfo) +winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv, + winScreenInfoPtr pScreenInfo) { - Bool fDecorate = FALSE; - DWORD dwExStyle = 0; - DWORD dwStyle = 0; - WINDOWPLACEMENT wndPlace; - UINT showCmd = 0; + Bool fDecorate = FALSE; + DWORD dwExStyle = 0; + DWORD dwStyle = 0; + WINDOWPLACEMENT wndPlace; + UINT showCmd = 0; - wndPlace.length = sizeof (WINDOWPLACEMENT); + wndPlace.length = sizeof(WINDOWPLACEMENT); - /* Get current window placement */ - GetWindowPlacement (pRLWinPriv->hWnd, &wndPlace); + /* Get current window placement */ + GetWindowPlacement(pRLWinPriv->hWnd, &wndPlace); #ifdef XWIN_MULTIWINDOWINTWM - if (winIsInternalWMRunning(pScreenInfo)) - { - if (!pRLWinPriv->pFrame->win->overrideRedirect) - fDecorate = TRUE; + if (winIsInternalWMRunning(pScreenInfo)) { + if (!pRLWinPriv->pFrame->win->overrideRedirect) + fDecorate = TRUE; } #endif - if (wndPlace.showCmd == SW_HIDE) - return; - - if (IsWindowVisible (pRLWinPriv->hWnd)) - showCmd = SWP_SHOWWINDOW; - - showCmd |= SWP_NOMOVE | SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOZORDER; - - winDebug ("winMWExtWMUpdateWindowDecoration %08x %s\n", - (int)pRLWinPriv, fDecorate?"Decorate":"Bare"); - - /* Get the standard and extended window style information */ - dwExStyle = GetWindowLongPtr (pRLWinPriv->hWnd, GWL_EXSTYLE); - dwStyle = GetWindowLongPtr (pRLWinPriv->hWnd, GWL_STYLE); - - if (fDecorate) - { - RECT rcNew; - int iDx, iDy; - winWMMessageRec wmMsg; - winScreenPriv(pScreenInfo->pScreen); - - /* */ - if (!(dwExStyle & WS_EX_APPWINDOW)) - { - winDebug ("\tBare=>Decorate\n"); - /* Setup a rectangle with the X window position and size */ - SetRect (&rcNew, - pRLWinPriv->pFrame->x, - pRLWinPriv->pFrame->y, - pRLWinPriv->pFrame->x + pRLWinPriv->pFrame->width, - pRLWinPriv->pFrame->y + pRLWinPriv->pFrame->height); + if (wndPlace.showCmd == SW_HIDE) + return; + + if (IsWindowVisible(pRLWinPriv->hWnd)) + showCmd = SWP_SHOWWINDOW; + + showCmd |= SWP_NOMOVE | SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOZORDER; + + winDebug("winMWExtWMUpdateWindowDecoration %08x %s\n", + (int) pRLWinPriv, fDecorate ? "Decorate" : "Bare"); + + /* Get the standard and extended window style information */ + dwExStyle = GetWindowLongPtr(pRLWinPriv->hWnd, GWL_EXSTYLE); + dwStyle = GetWindowLongPtr(pRLWinPriv->hWnd, GWL_STYLE); + + if (fDecorate) { + RECT rcNew; + int iDx, iDy; + winWMMessageRec wmMsg; + + winScreenPriv(pScreenInfo->pScreen); + + /* */ + if (!(dwExStyle & WS_EX_APPWINDOW)) { + winDebug("\tBare=>Decorate\n"); + /* Setup a rectangle with the X window position and size */ + SetRect(&rcNew, + pRLWinPriv->pFrame->x, + pRLWinPriv->pFrame->y, + pRLWinPriv->pFrame->x + pRLWinPriv->pFrame->width, + pRLWinPriv->pFrame->y + pRLWinPriv->pFrame->height); #ifdef CYGMULTIWINDOW_DEBUG - winDebug("\tWindow extend {%d, %d, %d, %d}, {%d, %d}\n", - rcNew.left, rcNew.top, rcNew.right, rcNew.bottom, - rcNew.right - rcNew.left, rcNew.bottom - rcNew.top); + winDebug("\tWindow extend {%d, %d, %d, %d}, {%d, %d}\n", + rcNew.left, rcNew.top, rcNew.right, rcNew.bottom, + rcNew.right - rcNew.left, rcNew.bottom - rcNew.top); #endif - /* */ - AdjustWindowRectEx (&rcNew, - WS_POPUP | WS_SIZEBOX | WS_OVERLAPPEDWINDOW, - FALSE, - WS_EX_APPWINDOW); + /* */ + AdjustWindowRectEx(&rcNew, + WS_POPUP | WS_SIZEBOX | WS_OVERLAPPEDWINDOW, + FALSE, WS_EX_APPWINDOW); #ifdef CYGMULTIWINDOW_DEBUG - winDebug("\tAdjusted {%d, %d, %d, %d}, {%d, %d}\n", - rcNew.left, rcNew.top, rcNew.right, rcNew.bottom, - rcNew.right - rcNew.left, rcNew.bottom - rcNew.top); + winDebug("\tAdjusted {%d, %d, %d, %d}, {%d, %d}\n", + rcNew.left, rcNew.top, rcNew.right, rcNew.bottom, + rcNew.right - rcNew.left, rcNew.bottom - rcNew.top); #endif - /* Calculate position deltas */ - iDx = pRLWinPriv->pFrame->x - rcNew.left; - iDy = pRLWinPriv->pFrame->y - rcNew.top; + /* Calculate position deltas */ + iDx = pRLWinPriv->pFrame->x - rcNew.left; + iDy = pRLWinPriv->pFrame->y - rcNew.top; - /* Calculate new rectangle */ - rcNew.left += iDx; - rcNew.right += iDx; - rcNew.top += iDy; - rcNew.bottom += iDy; + /* Calculate new rectangle */ + rcNew.left += iDx; + rcNew.right += iDx; + rcNew.top += iDy; + rcNew.bottom += iDy; - /* Set the window extended style flags */ - SetWindowLongPtr (pRLWinPriv->hWnd, GWL_EXSTYLE, WS_EX_APPWINDOW); + /* Set the window extended style flags */ + SetWindowLongPtr(pRLWinPriv->hWnd, GWL_EXSTYLE, WS_EX_APPWINDOW); - /* Set the window standard style flags */ - SetWindowLongPtr (pRLWinPriv->hWnd, GWL_STYLE, - WS_POPUP | WS_SIZEBOX | WS_OVERLAPPEDWINDOW); + /* Set the window standard style flags */ + SetWindowLongPtr(pRLWinPriv->hWnd, GWL_STYLE, + WS_POPUP | WS_SIZEBOX | WS_OVERLAPPEDWINDOW); #ifdef CYGMULTIWINDOW_DEBUG - winDebug("\tWindowStyle: %08x %08x\n", - WS_POPUP | WS_SIZEBOX | WS_OVERLAPPEDWINDOW, - WS_EX_APPWINDOW); + winDebug("\tWindowStyle: %08x %08x\n", + WS_POPUP | WS_SIZEBOX | WS_OVERLAPPEDWINDOW, + WS_EX_APPWINDOW); #endif - /* Position the Windows window */ + /* Position the Windows window */ #ifdef CYGMULTIWINDOW_DEBUG - winDebug("\tMoved {%d, %d, %d, %d}, {%d, %d}\n", - rcNew.left, rcNew.top, rcNew.right, rcNew.bottom, - rcNew.right - rcNew.left, rcNew.bottom - rcNew.top); + winDebug("\tMoved {%d, %d, %d, %d}, {%d, %d}\n", + rcNew.left, rcNew.top, rcNew.right, rcNew.bottom, + rcNew.right - rcNew.left, rcNew.bottom - rcNew.top); #endif - SetWindowPos (pRLWinPriv->hWnd, NULL, - rcNew.left, rcNew.top, - rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, - showCmd); - - - wmMsg.hwndWindow = pRLWinPriv->hWnd; - wmMsg.iWindow = (Window)pRLWinPriv->pFrame->win->drawable.id; - wmMsg.msg = WM_WM_NAME_EVENT; - winSendMessageToWM (pScreenPriv->pWMInfo, &wmMsg); - - winMWExtWMReshapeFrame ((RootlessFrameID)pRLWinPriv , - wBoundingShape(pRLWinPriv->pFrame->win)); - } + SetWindowPos(pRLWinPriv->hWnd, NULL, + rcNew.left, rcNew.top, + rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, + showCmd); + + wmMsg.hwndWindow = pRLWinPriv->hWnd; + wmMsg.iWindow = (Window) pRLWinPriv->pFrame->win->drawable.id; + wmMsg.msg = WM_WM_NAME_EVENT; + winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg); + + winMWExtWMReshapeFrame((RootlessFrameID) pRLWinPriv, + wBoundingShape(pRLWinPriv->pFrame->win)); + } } - else - { - RECT rcNew; - - /* */ - if (dwExStyle & WS_EX_APPWINDOW) - { - winDebug ("\tDecorate=>Bare\n"); - /* Setup a rectangle with the X window position and size */ - SetRect (&rcNew, - pRLWinPriv->pFrame->x, - pRLWinPriv->pFrame->y, - pRLWinPriv->pFrame->x + pRLWinPriv->pFrame->width, - pRLWinPriv->pFrame->y + pRLWinPriv->pFrame->height); + else { + RECT rcNew; + + /* */ + if (dwExStyle & WS_EX_APPWINDOW) { + winDebug("\tDecorate=>Bare\n"); + /* Setup a rectangle with the X window position and size */ + SetRect(&rcNew, + pRLWinPriv->pFrame->x, + pRLWinPriv->pFrame->y, + pRLWinPriv->pFrame->x + pRLWinPriv->pFrame->width, + pRLWinPriv->pFrame->y + pRLWinPriv->pFrame->height); #if 0 - /* */ - AdjustWindowRectEx (&rcNew, - WS_POPUP | WS_CLIPCHILDREN, - FALSE, - WS_EX_TOOLWINDOW); - - /* Calculate position deltas */ - iDx = pRLWinPriv->pFrame->x - rcNew.left; - iDy = pRLWinPriv->pFrame->y - rcNew.top; - - /* Calculate new rectangle */ - rcNew.left += iDx; - rcNew.right += iDx; - rcNew.top += iDy; - rcNew.bottom += iDy; + /* */ + AdjustWindowRectEx(&rcNew, + WS_POPUP | WS_CLIPCHILDREN, + FALSE, WS_EX_TOOLWINDOW); + + /* Calculate position deltas */ + iDx = pRLWinPriv->pFrame->x - rcNew.left; + iDy = pRLWinPriv->pFrame->y - rcNew.top; + + /* Calculate new rectangle */ + rcNew.left += iDx; + rcNew.right += iDx; + rcNew.top += iDy; + rcNew.bottom += iDy; #endif - /* Hide window temporary to remove from taskbar. */ - ShowWindow( pRLWinPriv->hWnd, SW_HIDE ); + /* Hide window temporary to remove from taskbar. */ + ShowWindow(pRLWinPriv->hWnd, SW_HIDE); - /* Set the window extended style flags */ - SetWindowLongPtr (pRLWinPriv->hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW); + /* Set the window extended style flags */ + SetWindowLongPtr(pRLWinPriv->hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW); - /* Set the window standard style flags */ - SetWindowLongPtr (pRLWinPriv->hWnd, GWL_STYLE, - WS_POPUP | WS_CLIPCHILDREN); + /* Set the window standard style flags */ + SetWindowLongPtr(pRLWinPriv->hWnd, GWL_STYLE, + WS_POPUP | WS_CLIPCHILDREN); - /* Position the Windows window */ - SetWindowPos (pRLWinPriv->hWnd, NULL, - rcNew.left, rcNew.top, - rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, - showCmd); + /* Position the Windows window */ + SetWindowPos(pRLWinPriv->hWnd, NULL, + rcNew.left, rcNew.top, + rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, + showCmd); - winMWExtWMReshapeFrame ((RootlessFrameID)pRLWinPriv , - wBoundingShape(pRLWinPriv->pFrame->win)); - } + winMWExtWMReshapeFrame((RootlessFrameID) pRLWinPriv, + wBoundingShape(pRLWinPriv->pFrame->win)); + } } } @@ -389,84 +377,86 @@ winMWExtWMUpdateWindowDecoration (win32RootlessWindowPtr pRLWinPriv, * winIsInternalWMRunning (winScreenInfoPtr pScreenInfo) */ Bool -winIsInternalWMRunning (winScreenInfoPtr pScreenInfo) +winIsInternalWMRunning(winScreenInfoPtr pScreenInfo) { - return pScreenInfo->fInternalWM && !pScreenInfo->fAnotherWMRunning; + return pScreenInfo->fInternalWM && !pScreenInfo->fAnotherWMRunning; } #endif - /* * winMWExtWMRestackWindows */ void -winMWExtWMRestackWindows (ScreenPtr pScreen) +winMWExtWMRestackWindows(ScreenPtr pScreen) { - winScreenPriv(pScreen); - WindowPtr pRoot = pScreen->root; - WindowPtr pWin = NULL; - WindowPtr pWinPrev = NULL; - win32RootlessWindowPtr pRLWin = NULL; - win32RootlessWindowPtr pRLWinPrev = NULL; - int nWindow = 0; - HDWP hWinPosInfo = NULL; + winScreenPriv(pScreen); + WindowPtr pRoot = pScreen->root; + WindowPtr pWin = NULL; + WindowPtr pWinPrev = NULL; + win32RootlessWindowPtr pRLWin = NULL; + win32RootlessWindowPtr pRLWinPrev = NULL; + int nWindow = 0; + HDWP hWinPosInfo = NULL; #if CYGMULTIWINDOW_DEBUG - winDebug ("winMWExtWMRestackWindows\n"); + winDebug("winMWExtWMRestackWindows\n"); #endif - pScreenPriv->fRestacking = TRUE; + pScreenPriv->fRestacking = TRUE; - if (pRoot != NULL) - { - for (pWin = pRoot->firstChild; pWin; pWin = pWin->nextSib) - nWindow ++; + if (pRoot != NULL) { + for (pWin = pRoot->firstChild; pWin; pWin = pWin->nextSib) + nWindow++; - hWinPosInfo = BeginDeferWindowPos(nWindow); + hWinPosInfo = BeginDeferWindowPos(nWindow); - for (pWin = pRoot->firstChild; pWin; pWin = pWin->nextSib) - { - if (pWin->realized) - { - UINT uFlags; + for (pWin = pRoot->firstChild; pWin; pWin = pWin->nextSib) { + if (pWin->realized) { + UINT uFlags; - pRLWin = (win32RootlessWindowPtr) RootlessFrameForWindow (pWin, FALSE); - if (pRLWin == NULL) continue; + pRLWin = + (win32RootlessWindowPtr) RootlessFrameForWindow(pWin, + FALSE); + if (pRLWin == NULL) + continue; - if (pWinPrev) - pRLWinPrev = (win32RootlessWindowPtr) RootlessFrameForWindow (pWinPrev, FALSE); + if (pWinPrev) + pRLWinPrev = + (win32RootlessWindowPtr) + RootlessFrameForWindow(pWinPrev, FALSE); - uFlags = SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW; - if (pRLWinPrev != NULL) uFlags |= SWP_NOACTIVATE; + uFlags = SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW; + if (pRLWinPrev != NULL) + uFlags |= SWP_NOACTIVATE; #if CYGMULTIWINDOW_DEBUG - winDebug ("winMWExtWMRestackWindows - DeferWindowPos (%08x, %08x)\n", - pRLWin->hWnd, - pRLWinPrev ? pRLWinPrev->hWnd : HWND_TOP); + winDebug + ("winMWExtWMRestackWindows - DeferWindowPos (%08x, %08x)\n", + pRLWin->hWnd, pRLWinPrev ? pRLWinPrev->hWnd : HWND_TOP); #endif - hWinPosInfo = DeferWindowPos (hWinPosInfo, pRLWin->hWnd, - pRLWinPrev ? pRLWinPrev->hWnd : HWND_TOP, - 0, 0, 0, 0, - uFlags); - if (hWinPosInfo == NULL) - { - ErrorF ("winMWExtWMRestackWindows - DeferWindowPos () failed: %d\n", - (int) GetLastError ()); - return; - } - pWinPrev = pWin; - } - } - if (!EndDeferWindowPos (hWinPosInfo)) - { - ErrorF ("winMWExtWMRestackWindows - EndDeferWindowPos () failed: %d\n", - (int) GetLastError ()); - return; - } + hWinPosInfo = DeferWindowPos(hWinPosInfo, pRLWin->hWnd, + pRLWinPrev ? pRLWinPrev-> + hWnd : HWND_TOP, 0, 0, 0, 0, + uFlags); + if (hWinPosInfo == NULL) { + ErrorF + ("winMWExtWMRestackWindows - DeferWindowPos () failed: %d\n", + (int) GetLastError()); + return; + } + pWinPrev = pWin; + } + } + if (!EndDeferWindowPos(hWinPosInfo)) { + ErrorF + ("winMWExtWMRestackWindows - EndDeferWindowPos () failed: %d\n", + (int) GetLastError()); + return; + } } #if CYGMULTIWINDOW_DEBUG - winDebug ("winMWExtWMRestackWindows - done\n"); + winDebug("winMWExtWMRestackWindows - done\n"); #endif - pScreenPriv->fRestacking = FALSE; + pScreenPriv->fRestacking = FALSE; } |