Merge remote-tracking branch 'jturney/master'
This commit is contained in:
		
						commit
						f6d4e75ec5
					
				| 
						 | 
				
			
			@ -49,7 +49,7 @@ from The Open Group.
 | 
			
		|||
#endif
 | 
			
		||||
#ifdef RELOCATE_PROJECTROOT
 | 
			
		||||
#include <shlobj.h>
 | 
			
		||||
typedef HRESULT (*SHGETFOLDERPATHPROC)(
 | 
			
		||||
typedef WINAPI HRESULT (*SHGETFOLDERPATHPROC)(
 | 
			
		||||
    HWND hwndOwner,
 | 
			
		||||
    int nFolder,
 | 
			
		||||
    HANDLE hToken,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,7 +67,7 @@ The default behaviour is to create a single screen 0 that is roughly the
 | 
			
		|||
size of useful area of the primary monitor (allowing for any window
 | 
			
		||||
decorations and the task-bar).
 | 
			
		||||
 | 
			
		||||
Screen specific parameters, such as \fB\-fullscreen\fP, can be applied as a
 | 
			
		||||
Screen specific parameters can be applied as a
 | 
			
		||||
default to all screens by placing those screen specific parameters
 | 
			
		||||
before any \fB\-screen\fP parameter.  Screen specific parameters placed after
 | 
			
		||||
the first \fB\-screen\fP parameter will apply only to the immediately
 | 
			
		||||
| 
						 | 
				
			
			@ -108,6 +108,7 @@ in \fB-multiwindow\fP or \fB-rootless\fP mode.
 | 
			
		|||
.B "\-fullscreen"
 | 
			
		||||
The X server window takes the full screen, covering completely the
 | 
			
		||||
\fIWindows\fP desktop.
 | 
			
		||||
Currently \fB\-fullscreen\fP may only be applied to one X screen.
 | 
			
		||||
.TP 8
 | 
			
		||||
.B \-nodecoration
 | 
			
		||||
Do not give the Cygwin/X window a \fIWindows\fP window border, title bar,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -636,11 +636,14 @@ winClipboardFlushXEvents (HWND hwnd,
 | 
			
		|||
		case XNoMemory:
 | 
			
		||||
		  ErrorF ("XNoMemory\n");
 | 
			
		||||
		  break;
 | 
			
		||||
		case XLocaleNotSupported:
 | 
			
		||||
		  ErrorF ("XLocaleNotSupported\n");
 | 
			
		||||
		  break;
 | 
			
		||||
		case XConverterNotFound:
 | 
			
		||||
		  ErrorF ("XConverterNotFound\n");
 | 
			
		||||
		  break;
 | 
			
		||||
		default:
 | 
			
		||||
		  ErrorF ("%d", iReturn);
 | 
			
		||||
		  ErrorF ("%d\n", iReturn);
 | 
			
		||||
		  break;
 | 
			
		||||
		}
 | 
			
		||||
	      pszReturnData = malloc (1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ wBOOL CALLBACK getMonitorInfo(HMONITOR hMonitor, HDC hdc, LPRECT rect, LPARAM _d
 | 
			
		|||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef wBOOL (*ENUMDISPLAYMONITORSPROC)(HDC,LPCRECT,MONITORENUMPROC,LPARAM);
 | 
			
		||||
typedef WINAPI wBOOL (*ENUMDISPLAYMONITORSPROC)(HDC,LPCRECT,MONITORENUMPROC,LPARAM);
 | 
			
		||||
ENUMDISPLAYMONITORSPROC _EnumDisplayMonitors;
 | 
			
		||||
 | 
			
		||||
wBOOL CALLBACK getMonitorInfo(HMONITOR hMonitor, HDC hdc, LPRECT rect, LPARAM _data);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -622,6 +622,7 @@ void winSelectIcons(WindowPtr pWin, HICON *pIcon, HICON *pSmallIcon)
 | 
			
		|||
    *pIcon = hIcon;
 | 
			
		||||
  else
 | 
			
		||||
    winDestroyIcon(hIcon);
 | 
			
		||||
 | 
			
		||||
  if (pSmallIcon)
 | 
			
		||||
    *pSmallIcon = hSmallIcon;
 | 
			
		||||
  else
 | 
			
		||||
| 
						 | 
				
			
			@ -630,7 +631,7 @@ void winSelectIcons(WindowPtr pWin, HICON *pIcon, HICON *pSmallIcon)
 | 
			
		|||
 | 
			
		||||
void winDestroyIcon(HICON hIcon)
 | 
			
		||||
{
 | 
			
		||||
  /* Delete the icon if its not the default */
 | 
			
		||||
  /* Delete the icon if its not one of the application defaults or an override */
 | 
			
		||||
  if (hIcon &&
 | 
			
		||||
      hIcon != g_hIconX &&
 | 
			
		||||
      hIcon != g_hSmallIconX &&
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -506,12 +506,16 @@ winCreateWindowsWindow (WindowPtr pWin)
 | 
			
		|||
  iWidth = pWin->drawable.width;
 | 
			
		||||
  iHeight = pWin->drawable.height;
 | 
			
		||||
 | 
			
		||||
  /* ensure window actually ends up somewhere visible */
 | 
			
		||||
  if (iX > GetSystemMetrics (SM_CXVIRTUALSCREEN))
 | 
			
		||||
    iX = CW_USEDEFAULT;
 | 
			
		||||
  /* If it's an InputOutput window, and so is going to end up being made visible,
 | 
			
		||||
     make sure the window actually ends up somewhere where it will be visible */
 | 
			
		||||
  if (pWin->drawable.class != InputOnly)
 | 
			
		||||
    {
 | 
			
		||||
      if ((iX < GetSystemMetrics (SM_XVIRTUALSCREEN)) || (iX > GetSystemMetrics (SM_CXVIRTUALSCREEN)))
 | 
			
		||||
        iX = CW_USEDEFAULT;
 | 
			
		||||
 | 
			
		||||
  if (iY > GetSystemMetrics (SM_CYVIRTUALSCREEN))
 | 
			
		||||
    iY = CW_USEDEFAULT;
 | 
			
		||||
      if ((iY < GetSystemMetrics (SM_YVIRTUALSCREEN)) || (iY > GetSystemMetrics (SM_CYVIRTUALSCREEN)))
 | 
			
		||||
        iY = CW_USEDEFAULT;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (winMultiWindowGetTransientFor (pWin, &pDaddy))
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -592,7 +596,9 @@ winDestroyWindowsWindow (WindowPtr pWin)
 | 
			
		|||
  MSG			msg;
 | 
			
		||||
  winWindowPriv(pWin);
 | 
			
		||||
  BOOL			oldstate = winInDestroyWindowsWindow;
 | 
			
		||||
  
 | 
			
		||||
  HICON hIcon;
 | 
			
		||||
  HICON hIconSm;
 | 
			
		||||
 | 
			
		||||
#if CYGMULTIWINDOW_DEBUG
 | 
			
		||||
  ErrorF ("winDestroyWindowsWindow\n");
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -603,13 +609,22 @@ winDestroyWindowsWindow (WindowPtr pWin)
 | 
			
		|||
 | 
			
		||||
  winInDestroyWindowsWindow = TRUE;
 | 
			
		||||
 | 
			
		||||
  /* Store the info we need to destroy after this window is gone */
 | 
			
		||||
  hIcon = (HICON)SendMessage(pWinPriv->hWnd, WM_GETICON, ICON_BIG, 0);
 | 
			
		||||
  hIconSm = (HICON)SendMessage(pWinPriv->hWnd, WM_GETICON, ICON_SMALL, 0);
 | 
			
		||||
 | 
			
		||||
  SetProp (pWinPriv->hWnd, WIN_WINDOW_PROP, NULL);
 | 
			
		||||
 | 
			
		||||
  /* Destroy the Windows window */
 | 
			
		||||
  DestroyWindow (pWinPriv->hWnd);
 | 
			
		||||
 | 
			
		||||
  /* Null our handle to the Window so referencing it will cause an error */
 | 
			
		||||
  pWinPriv->hWnd = NULL;
 | 
			
		||||
 | 
			
		||||
  /* Destroy any icons we created for this window */
 | 
			
		||||
  winDestroyIcon(hIcon);
 | 
			
		||||
  winDestroyIcon(hIconSm);
 | 
			
		||||
 | 
			
		||||
  /* Process all messages on our queue */
 | 
			
		||||
  while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			@ -655,7 +670,8 @@ winUpdateWindowsWindow (WindowPtr pWin)
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
      /* Display the window without activating it */
 | 
			
		||||
      ShowWindow (pWinPriv->hWnd, SW_SHOWNOACTIVATE);
 | 
			
		||||
      if (pWin->drawable.class != InputOnly)
 | 
			
		||||
        ShowWindow (pWinPriv->hWnd, SW_SHOWNOACTIVATE);
 | 
			
		||||
 | 
			
		||||
      /* Send first paint message */
 | 
			
		||||
      UpdateWindow (pWinPriv->hWnd);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1114,6 +1114,30 @@ winMultiWindowXMsgProc (void *pArg)
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
      else if (event.type == ConfigureNotify)
 | 
			
		||||
        {
 | 
			
		||||
          if (!event.xconfigure.send_event)
 | 
			
		||||
            {
 | 
			
		||||
              /*
 | 
			
		||||
                Java applications using AWT on JRE 1.6.0 break with non-reparenting WMs AWT
 | 
			
		||||
                doesn't explicitly know about (See sun bug #6434227)
 | 
			
		||||
 | 
			
		||||
                XDecoratedPeer.handleConfigureNotifyEvent() only processes non-synthetic
 | 
			
		||||
                ConfigureNotify events to update window location if it's identified the
 | 
			
		||||
                WM as a non-reparenting WM it knows about (compiz or lookingglass)
 | 
			
		||||
 | 
			
		||||
                Rather than tell all sorts of lies to get XWM to recognize us as one of
 | 
			
		||||
                those, simply send a synthetic ConfigureNotify for every non-synthetic one
 | 
			
		||||
               */
 | 
			
		||||
              XEvent event_send = event;
 | 
			
		||||
              event_send.xconfigure.send_event = TRUE;
 | 
			
		||||
              event_send.xconfigure.event = event.xconfigure.window;
 | 
			
		||||
              XSendEvent(event.xconfigure.display,
 | 
			
		||||
                         event.xconfigure.window,
 | 
			
		||||
                         True, StructureNotifyMask,
 | 
			
		||||
                         &event_send);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
      else if (event.type == PropertyNotify
 | 
			
		||||
	       && event.xproperty.atom == atmWmName)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -1552,7 +1576,6 @@ winApplyHints (Display *pDisplay, Window iWindow, HWND hWnd, HWND *zstyle)
 | 
			
		|||
  Atom			type, *pAtom = NULL;
 | 
			
		||||
  int			format;
 | 
			
		||||
  unsigned long		hint = 0, maxmin = 0, style, nitems = 0 , left = 0;
 | 
			
		||||
  WindowPtr		pWin = GetProp (hWnd, WIN_WINDOW_PROP);
 | 
			
		||||
  MwmHints              *mwm_hint = NULL;
 | 
			
		||||
 | 
			
		||||
  if (!hWnd) return;
 | 
			
		||||
| 
						 | 
				
			
			@ -1645,7 +1668,26 @@ winApplyHints (Display *pDisplay, Window iWindow, HWND hWnd, HWND *zstyle)
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  /* Override hint settings from above with settings from config file */
 | 
			
		||||
  style = winOverrideStyle((unsigned long)pWin);
 | 
			
		||||
  {
 | 
			
		||||
    XClassHint class_hint = {0,0};
 | 
			
		||||
    char *window_name = 0;
 | 
			
		||||
 | 
			
		||||
    if (XGetClassHint(pDisplay, iWindow, &class_hint))
 | 
			
		||||
      {
 | 
			
		||||
        XFetchName(pDisplay, iWindow, &window_name);
 | 
			
		||||
 | 
			
		||||
        style = winOverrideStyle(class_hint.res_name, class_hint.res_class, window_name);
 | 
			
		||||
 | 
			
		||||
        if (class_hint.res_name) XFree(class_hint.res_name);
 | 
			
		||||
        if (class_hint.res_class) XFree(class_hint.res_class);
 | 
			
		||||
        if (window_name) XFree(window_name);
 | 
			
		||||
      }
 | 
			
		||||
    else
 | 
			
		||||
      {
 | 
			
		||||
        style = STYLE_NONE;
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (style & STYLE_TOPMOST) *zstyle = HWND_TOPMOST;
 | 
			
		||||
  else if (style & STYLE_MAXIMIZE) maxmin = (hint & ~HINT_MIN) | HINT_MAX;
 | 
			
		||||
  else if (style & STYLE_MINIMIZE) maxmin = (hint & ~HINT_MAX) | HINT_MIN;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -294,7 +294,8 @@ winCloseScreenPrimaryDD (int nIndex, ScreenPtr pScreen)
 | 
			
		|||
 | 
			
		||||
  /* Call the wrapped CloseScreen procedure */
 | 
			
		||||
  WIN_UNWRAP(CloseScreen);
 | 
			
		||||
  fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
  if (pScreen->CloseScreen)
 | 
			
		||||
    fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
 | 
			
		||||
  /* Delete the window property */
 | 
			
		||||
  RemoveProp (pScreenPriv->hwndScreen, WIN_SCR_PROP);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -813,40 +813,20 @@ LoadPreferences (void)
 | 
			
		|||
 * STYLES{} section in the prefs file, and return the style type
 | 
			
		||||
 */
 | 
			
		||||
unsigned long
 | 
			
		||||
winOverrideStyle (unsigned long longpWin)
 | 
			
		||||
winOverrideStyle (char *res_name, char *res_class, char *wmName)
 | 
			
		||||
{
 | 
			
		||||
  WindowPtr pWin = (WindowPtr) longpWin;
 | 
			
		||||
  char *res_name, *res_class;
 | 
			
		||||
  int i;
 | 
			
		||||
  char *wmName;
 | 
			
		||||
 | 
			
		||||
  if (pWin==NULL)
 | 
			
		||||
    return STYLE_NONE;
 | 
			
		||||
 | 
			
		||||
  /* If we can't find the class, we can't override from default! */
 | 
			
		||||
  if (!winMultiWindowGetClassHint (pWin, &res_name, &res_class))
 | 
			
		||||
    return STYLE_NONE;
 | 
			
		||||
 | 
			
		||||
  winMultiWindowGetWMName (pWin, &wmName);
 | 
			
		||||
 | 
			
		||||
  for (i=0; i<pref.styleItems; i++) {
 | 
			
		||||
    if (!strcmp(pref.style[i].match, res_name) ||
 | 
			
		||||
	!strcmp(pref.style[i].match, res_class) ||
 | 
			
		||||
    if ((res_name && !strcmp(pref.style[i].match, res_name)) ||
 | 
			
		||||
	(res_class && !strcmp(pref.style[i].match, res_class)) ||
 | 
			
		||||
	(wmName && strstr(wmName, pref.style[i].match)))
 | 
			
		||||
      {
 | 
			
		||||
	free (res_name);
 | 
			
		||||
	free (res_class);
 | 
			
		||||
	free(wmName);
 | 
			
		||||
 | 
			
		||||
	if (pref.style[i].type)
 | 
			
		||||
	  return pref.style[i].type;
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* Didn't find the style, fail gracefully */
 | 
			
		||||
  free (res_name);
 | 
			
		||||
  free (res_class);
 | 
			
		||||
  free(wmName);
 | 
			
		||||
 | 
			
		||||
  return STYLE_NONE;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -180,7 +180,7 @@ HICON
 | 
			
		|||
winOverrideIcon (unsigned long longpWin);
 | 
			
		||||
 | 
			
		||||
unsigned long
 | 
			
		||||
winOverrideStyle (unsigned long longpWin);
 | 
			
		||||
winOverrideStyle (char *res_name, char *res_class, char *wmName);
 | 
			
		||||
 | 
			
		||||
HICON
 | 
			
		||||
winTaskbarIcon(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -220,6 +220,10 @@ winScreenInit (int index,
 | 
			
		|||
  if (!((*pScreenPriv->pwinFinishScreenInit) (index, pScreen, argc, argv)))
 | 
			
		||||
    {
 | 
			
		||||
      ErrorF ("winScreenInit - winFinishScreenInit () failed\n");
 | 
			
		||||
 | 
			
		||||
      /* call the engine dependent screen close procedure to clean up from a failure */
 | 
			
		||||
      pScreenPriv->pwinCloseScreen(index, pScreen);
 | 
			
		||||
 | 
			
		||||
      return FALSE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -728,7 +728,8 @@ winCloseScreenShadowDD (int nIndex, ScreenPtr pScreen)
 | 
			
		|||
 | 
			
		||||
  /* Call the wrapped CloseScreen procedure */
 | 
			
		||||
  WIN_UNWRAP(CloseScreen);
 | 
			
		||||
  fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
  if (pScreen->CloseScreen)
 | 
			
		||||
    fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
 | 
			
		||||
  winFreeFBShadowDD(pScreen);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -802,7 +802,8 @@ winCloseScreenShadowDDNL (int nIndex, ScreenPtr pScreen)
 | 
			
		|||
 | 
			
		||||
  /* Call the wrapped CloseScreen procedure */
 | 
			
		||||
  WIN_UNWRAP(CloseScreen);
 | 
			
		||||
  fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
  if (pScreen->CloseScreen)
 | 
			
		||||
    fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
 | 
			
		||||
  winFreeFBShadowDDNL(pScreen);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -636,7 +636,8 @@ winCloseScreenShadowGDI (int nIndex, ScreenPtr pScreen)
 | 
			
		|||
 | 
			
		||||
  /* Call the wrapped CloseScreen procedure */
 | 
			
		||||
  WIN_UNWRAP(CloseScreen);
 | 
			
		||||
  fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
  if (pScreen->CloseScreen)
 | 
			
		||||
    fReturn = (*pScreen->CloseScreen) (nIndex, pScreen);
 | 
			
		||||
 | 
			
		||||
  /* Delete the window property */
 | 
			
		||||
  RemoveProp (pScreenPriv->hwndScreen, WIN_SCR_PROP);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -366,8 +366,8 @@ void
 | 
			
		|||
winMWExtWMDestroyFrame (RootlessFrameID wid)
 | 
			
		||||
{
 | 
			
		||||
  win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
 | 
			
		||||
  HICON			hiconClass;
 | 
			
		||||
  HICON			hiconSmClass;
 | 
			
		||||
  HICON			hIcon;
 | 
			
		||||
  HICON			hIconSm;
 | 
			
		||||
  HMODULE		hInstance;
 | 
			
		||||
  int			iReturn;
 | 
			
		||||
  char			pszClass[CLASS_NAME_LENGTH];
 | 
			
		||||
| 
						 | 
				
			
			@ -398,8 +398,8 @@ winMWExtWMDestroyFrame (RootlessFrameID wid)
 | 
			
		|||
 | 
			
		||||
  /* Store the info we need to destroy after this window is gone */
 | 
			
		||||
  hInstance = (HINSTANCE) GetClassLongPtr (pRLWinPriv->hWnd, GCLP_HMODULE);
 | 
			
		||||
  hiconClass = (HICON) GetClassLongPtr (pRLWinPriv->hWnd, GCLP_HICON);
 | 
			
		||||
  hiconSmClass = (HICON) GetClassLongPtr (pRLWinPriv->hWnd, GCLP_HICONSM);
 | 
			
		||||
  hIcon = (HICON)SendMessage(pRLWinPriv->hWnd, WM_GETICON, ICON_BIG, 0);
 | 
			
		||||
  hIconSm = (HICON)SendMessage(pRLWinPriv->hWnd, WM_GETICON, ICON_SMALL, 0);
 | 
			
		||||
  iReturn = GetClassName (pRLWinPriv->hWnd, pszClass, CLASS_NAME_LENGTH);
 | 
			
		||||
 | 
			
		||||
  pRLWinPriv->fClose = TRUE;
 | 
			
		||||
| 
						 | 
				
			
			@ -415,15 +415,15 @@ winMWExtWMDestroyFrame (RootlessFrameID wid)
 | 
			
		|||
      winDebug ("winMWExtWMDestroyFrame - Unregistering %s: ", pszClass);
 | 
			
		||||
#endif
 | 
			
		||||
      iReturn = UnregisterClass (pszClass, hInstance);
 | 
			
		||||
      
 | 
			
		||||
#if CYGMULTIWINDOW_DEBUG
 | 
			
		||||
      winDebug ("winMWExtWMDestroyFramew - %d Deleting Icon: ", iReturn);
 | 
			
		||||
#endif
 | 
			
		||||
      
 | 
			
		||||
      winDestroyIcon(hiconClass);
 | 
			
		||||
      winDestroyIcon(hiconSmClass);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if CYGMULTIWINDOW_DEBUG
 | 
			
		||||
  winDebug ("winMWExtWMDestroyFramew - Deleting Icon\n");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  winDestroyIcon(hIcon);
 | 
			
		||||
  winDestroyIcon(hIconSm);
 | 
			
		||||
 | 
			
		||||
#if CYGMULTIWINDOW_DEBUG
 | 
			
		||||
  winDebug ("winMWExtWMDestroyFrame - done\n");
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue