[X2Go-Commits] nx-libs.git - build-main (branch) updated: redist-server/3.5.0.7-4-g5027f1e

X2Go dev team git-admin at x2go.org
Fri Aug 30 16:23:14 CEST 2013


The branch, build-main has been updated
       via  5027f1e8b5d0a3571272e3eff4aa86bb8cae55f0 (commit)
      from  a05b56038d0154b3e4f0ce7facbb770e2a97063d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 debian/changelog                                   |    2 +
 .../fix-fprintf-usage.patch                        |   31 ++
 .../fix-icon-and-clipboard.patch                   |  566 ++++++++++++++++++++
 3 files changed, 599 insertions(+)
 create mode 100644 debian/patches-pending-evaluation/fix-fprintf-usage.patch
 create mode 100644 debian/patches-pending-evaluation/fix-icon-and-clipboard.patch

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 984f6eb..ebf996c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,8 @@ nx-libs (2:3.5.0.8-0) UNRELEASED; urgency=low
   * Update patch: 001_add-main-makefile.full+lite.patch, only build, install,
     clean etc. NX subprojects if the folder exists.
   * Package x2goagent is an ,,all'' package, not ,,any''.
+  * Add folder /debian/patches-pending-evaluation with two newly discovered
+    patches from git.etersoft.ru (AltLinux packaging repository for NX).
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Mon, 16 Jan 2012 22:28:13 +0100
 
diff --git a/debian/patches-pending-evaluation/fix-fprintf-usage.patch b/debian/patches-pending-evaluation/fix-fprintf-usage.patch
new file mode 100644
index 0000000..4abda60
--- /dev/null
+++ b/debian/patches-pending-evaluation/fix-fprintf-usage.patch
@@ -0,0 +1,31 @@
+From: Vitaly Lipatov <lav at etersoft.ru>
+Date: Wed, 3 Jun 2009 00:49:01 +0000 (+0400)
+Subject: fix fprintf using
+X-Git-Tag: 3.3.0-alt16.1~1^2
+X-Git-Url: http://git.etersoft.ru?p=rx%2Fnx.git;a=commitdiff_plain;h=f68888aab5c92e99f398f5fe7407edf09e2c86ce
+
+ fix fprintf using
+
++--- a/nx-X11/config/imake/imake.c
+++++ b/nx-X11/config/imake/imake.c
++@@ -1015,7 +1015,7 @@ get_libc_version(FILE *inFile)
++     abort ();
++ 
++   while (fgets (command, len, fp))
++-    fprintf (inFile, command);
+++    fwrite (command, strlen(command), 1, inFile);
++ 
++   len = pclose (fp);
++   remove (aout);
++
++--- a/nx-X11/extras/rman/rman.c.orig	2009-06-03 04:29:39 +0400
+++++ b/nx-X11/extras/rman/rman.c	2009-06-03 05:19:07 +0400
++@@ -1432,7 +1432,7 @@ HTML(enum command cmd)
++ 		break;
++ 	   case BEGINSECTION:	break;
++ 	   case ENDSECTION:
++-		if (sectheadid==NAME && message!=NULL) printf(message);
+++		if (sectheadid==NAME && message!=NULL) printf("%s",message);
++ 		break;
++ 	   case BEGINSUBSECTION:	break;
++ 	   case ENDSUBSECTION:	break;
diff --git a/debian/patches-pending-evaluation/fix-icon-and-clipboard.patch b/debian/patches-pending-evaluation/fix-icon-and-clipboard.patch
new file mode 100644
index 0000000..e4faef0
--- /dev/null
+++ b/debian/patches-pending-evaluation/fix-icon-and-clipboard.patch
@@ -0,0 +1,566 @@
+From: Boris Savelev <boris at altlinux.org>
+Date: Fri, 11 Jul 2008 13:50:46 +0000 (+0400)
+Subject: fix icons and clipboard (thanks to dimbor)
+X-Git-Tag: 3.3.0-alt2~24
+X-Git-Url: http://git.etersoft.ru?p=rx%2Fnx.git;a=commitdiff_plain;h=c51ec5f4afcbf6199da5343f52241f6ef8edbbfb
+
+fix icons and clipboard (thanks to dimbor)
+---
+
+diff --git a/nxwin/programs/Xserver/hw/nxwin/wincutpaste.c b/nxwin/programs/Xserver/hw/nxwin/wincutpaste.c
+index 862f75a..5405568 100644
+--- a/nxwin/programs/Xserver/hw/nxwin/wincutpaste.c
++++ b/nxwin/programs/Xserver/hw/nxwin/wincutpaste.c
+@@ -78,6 +78,8 @@
+ 
+ #define MIN(a,b) ((a) < (b) ? (a) : (b))
+ 
++/*#define NXWIN_CLIPBOARD_DEBUG*/
++
+ extern          WindowPtr *WindowTable;
+ extern          Selection *CurrentSelections;
+ extern int      NumCurrentSelections;
+@@ -96,6 +98,8 @@ Atom            clientTARGETS;
+ Atom            clientTEXT;
+ Atom            clientCutProperty;
+ Atom            clientCLIPBOARD;
++Atom		UTF8_STRING;
++Atom		COMPOUND_TEXT;
+ 
+ Bool            windowsOwner = FALSE;
+ Bool            clientOwner  = FALSE;
+@@ -119,7 +123,7 @@ void nxwinClearSelection(void)
+      return;
+ 
+ #ifdef NXWIN_CLIPBOARD_DEBUG
+-   ErrorF("ClearSelection\n");
++   ErrorF("%d nxwinClearSelection: ClearSelection\n",GetTickCount());
+ #endif
+ 
+ for (i = 0; i < MIN(MaxSelections, NumCurrentSelections); i++)
+@@ -155,8 +159,16 @@ void nxwinInitSelection(HWND hwnd)
+    clientTEXT           = MakeAtom("TEXT", strlen("TEXT"), TRUE);
+    clientCutProperty    = MakeAtom("NX_CUT_BUFFER_CLIENT", strlen("NX_CUT_BUFFER_CLIENT"), TRUE);
+    clientCLIPBOARD      = MakeAtom("CLIPBOARD", strlen("CLIPBOARD"), TRUE);
++/* */
++   UTF8_STRING		= MakeAtom("UTF8_STRING", strlen("UTF8_STRING"), TRUE);
++   COMPOUND_TEXT        = MakeAtom("COMPOUND_TEXT", strlen("COMPOUND_TEXT"), TRUE);
++/* */
+    nxwinClipboardStatus = TRUE;
+    windowsOwner         = TRUE;
++#ifdef NXWIN_CLIPBOARD_DEBUG
++/*   ErrorF("%d nxwinInitSelection\n",GetTickCount()); 
++*/
++#endif
+ /*   nxwinSetWindowClipboard(" ");*/
+ }
+ 
+@@ -165,15 +177,17 @@ void nxwinSetSelectionOwner(Selection *pSelection)
+    if (!nxwinClipboardStatus)
+      return;
+ 
+-#ifdef NXWIN_CLIPBOARD_DEBUG
+-   ErrorF("SetSelectionOwner\n");
+-#endif
+ 
+    lastOwnerWindowPtr = pSelection->pWin;
+    lastOwnerWindow    = pSelection->window;
+    lastOwnerClientPtr = pSelection->client;
+    
+    nxwinSelection = TRUE;
++
++#ifdef NXWIN_CLIPBOARD_DEBUG
++/*   ErrorF("%d nxwinSetSelectionOwner:  window [%p], pWin [%p]\n",GetTickCount(),pSelection->window,pSelection->pWin);
++*/
++#endif
+ /*
+     if (pSelection->selection == XA_PRIMARY)
+     {
+@@ -194,21 +208,67 @@ void nxwinSetSelectionOwner(Selection *pSelection)
+                                 NoEventMask, NoEventMask ,
+                                 NullGrab);
+ #ifdef NXWIN_CLIPBOARD_DEBUG
+-       ErrorF("SetSelectionOwner XA_PRIMARY \n");
++       ErrorF(" nxwinSetSelectionOwner: SetSelectionOwner XA_PRIMARY \n");
+ #endif
+ 
+        windowsOwner = FALSE;   
+      }
+ */
++
++}
++
++/* ------------------ My  ------------------------------------------- */
++char * unicode_to_some_cp(wchar_t *unicode_string, int CP)
++{
++	int err;
++	char * res;
++	int res_len = WideCharToMultiByte(
++		CP,				// Code page
++		0,					// Default replacement of illegal chars
++		unicode_string,		// Multibyte characters string
++		-1,					// Number of unicode chars is not known
++		NULL,				// No buffer yet, allocate it later
++		0,					// No buffer
++		NULL,				// Use system default
++		NULL				// We are not interested whether the default char was used
++		);
++	if (res_len == 0) 
++	{
++		return NULL;
++	}
++	res = malloc(res_len);
++	if (res == NULL) 
++	{
++		return NULL;
++	}
++	err = WideCharToMultiByte(
++		CP,				// Code page
++		0,					// Default replacement of illegal chars
++		unicode_string,		// Multibyte characters string
++		-1,					// Number of unicode chars is not known
++		res,				// Output buffer
++		res_len,			// buffer size
++		NULL,				// Use system default
++		NULL				// We are not interested whether the default char was used
++		);
++	if (err == 0)
++	{
++		free(res);
++		return NULL;
++	}
++	return res;
+ }
+ 
++
++/* ------------------ My ------------------------------------------- */
++
+ Bool nxwinConvertSelection(ClientPtr client ,WindowPtr pWin, Atom selection, Window requestor, Atom property, Atom target, Time time)
+ {
+    if (!nxwinClipboardStatus)
+      return 0;
+ 
+ #ifdef NXWIN_CLIPBOARD_DEBUG
+-   ErrorF("ConvertSelection\n");
++   ErrorF("%d nxwinConvertSelection: pWin [%p], selection [%s], target [%s]\n",GetTickCount(),pWin,NameForAtom(selection),NameForAtom(target));
+ #endif
+ 
+    if (!windowsOwner) /* there is a X client owner, let normal stuff happens */
+@@ -236,20 +296,25 @@ Bool nxwinConvertSelection(ClientPtr client ,WindowPtr pWin, Atom selection, Win
+       return 1;
+    }
+ 
+-#ifdef NXWIN_CLIPBOARD_DEBUG
+-   ErrorF("ConvertSelection converting...\n");
+-#endif
+ 
+-   if ((target == clientTEXT) || (target == XA_STRING))
++   if ((target == clientTEXT) || (target == XA_STRING) || (target == UTF8_STRING))
+    {
+       HGLOBAL hGlobal;
+       char *pszGlobalData;
+       xEvent x;
+ 
++      char *pszData=NULL;
++
+       /* Access the clipboard */
+       if (!OpenClipboard (lastHwnd)) return 0;
+-
+-      hGlobal = GetClipboardData (CF_TEXT);
++      if (target == UTF8_STRING)
++      {
++        hGlobal = GetClipboardData (CF_UNICODETEXT);
++      }
++      else
++      {
++        hGlobal = GetClipboardData (CF_TEXT);
++      }
+       if (!hGlobal)
+       {
+         CloseClipboard();
+@@ -264,10 +329,29 @@ Bool nxwinConvertSelection(ClientPtr client ,WindowPtr pWin, Atom selection, Win
+         return 1;
+       }
+       pszGlobalData = (char *) GlobalLock (hGlobal);
+-
+-      /* Convert DOS string to UNIX string */
+-      DOStoUNIX (pszGlobalData, strlen (pszGlobalData));
+-
++			
++      if (target == UTF8_STRING)
++      {
++         /* Convert DOS string to UNIX string */
++         DOStoUNIX (pszGlobalData, strlen (pszGlobalData));
++         pszData = unicode_to_some_cp((wchar_t *) pszGlobalData,CP_UTF8);
++#ifdef NXWIN_CLIPBOARD_DEBUG
++        ErrorF("  Set sel [%s], target [%s], prop [%s] to UTF-8 string [%s]\n",NameForAtom(selection),NameForAtom(target),NameForAtom(property),pszData);
++#endif
++      /* Copy the clipboard text to the requesting window */
++        ChangeWindowProperty(pWin,
++                             property,
++                             target,
++                             8,
++                             PropModeReplace,
++                             strlen(pszData),
++                             pszData, 1);
++      }
++      else
++      {
++#ifdef NXWIN_CLIPBOARD_DEBUG
++      ErrorF("  Set sel [%s], target [%s], prop [%s] to CP-1251 string [%s]\n",NameForAtom(selection),NameForAtom(target),NameForAtom(property),pszGlobalData);
++#endif
+       /* Copy the clipboard text to the requesting window */
+       ChangeWindowProperty(pWin,
+                            property,
+@@ -276,12 +360,16 @@ Bool nxwinConvertSelection(ClientPtr client ,WindowPtr pWin, Atom selection, Win
+                            PropModeReplace,
+                            strlen(pszGlobalData),
+                            pszGlobalData, 1);
++      }
+ 
+       /* Release the clipboard data */
+       GlobalUnlock (hGlobal);
+       pszGlobalData = NULL;
+       CloseClipboard ();
+ 
++      if (pszData != NULL)
++	free (pszData);
++
+       x.u.u.type = SelectionNotify;
+       x.u.selectionNotify.time = time;
+       x.u.selectionNotify.requestor = requestor;
+@@ -370,6 +458,7 @@ UNIXtoDOS (char **ppszData, int iLength)
+ }
+ 
+ 
++
+ void
+ DOStoUNIX (char *pszSrc, int iLength)
+ {
+@@ -401,8 +490,11 @@ void nxwinSetWindowClipboard(char *text, int iLength)
+   char          *pszGlobalData;
+   char          *pszTemp;
+ 
++
+   if (!nxwinClipboardStatus)
++  {
+      return;
++  }
+ 
+   if (OpenClipboard(lastHwnd))
+   {
+@@ -440,6 +532,9 @@ void nxwinSetWindowClipboard(char *text, int iLength)
+       /* free the allocated memory */
+       xfree(pszTemp);
+ 
++#ifdef NXWIN_CLIPBOARD_DEBUG
++   ErrorF("%d nxwinSetWindowClipboard: [%s].\n",GetTickCount(),pszGlobalData);
++#endif
+       /* Release the pointer to the global memory */
+       GlobalUnlock (hGlobal);
+       pszGlobalData = NULL;
+@@ -466,10 +561,14 @@ Bool nxwinSendNotify(xEvent* x)
+  int iReturn;
+ 
+ #ifdef NXWIN_CLIPBOARD_DEBUG
+-  ErrorF("SendNotify\n");
++  ErrorF("%d nxwinSendNotify: pwin [%p];",GetTickCount(),lastOwnerWindowPtr);
++  ErrorF(" x->u.u.type [%s]; x->u.selectionNotify: property [%s]; target [%s]; selection [%s]",NameForAtom(x->u.u.type),NameForAtom(x->u.selectionNotify.property),NameForAtom(x->u.selectionNotify.target),NameForAtom(x->u.selectionNotify.selection)); 
+ #endif
+   if (x->u.selectionNotify.property == clientCutProperty)
+   {
++#ifdef NXWIN_CLIPBOARD_DEBUG
++     ErrorF("\n");
++#endif
+      Atom       atomReturnType;
+      int     iReturnFormat;
+      unsigned long   ulReturnItems;
+@@ -479,13 +578,26 @@ Bool nxwinSendNotify(xEvent* x)
+                                 AnyPropertyType, &atomReturnType, &iReturnFormat,
+                                 &ulReturnItems, &ulReturnBytesLeft, &pszReturnData);
+ 
++/*
++#ifdef NXWIN_CLIPBOARD_DEBUG
++     ErrorF("nxwinSendNotify: called 1-st GetWindowProperty - status = %d, ulReturnBytesLeft = %d\n",Success,ulReturnBytesLeft);
++#endif
++*/
+      if ((iReturn == Success) && (ulReturnBytesLeft > 0))
+      {
+         iReturn = GetWindowProperty(lastOwnerWindowPtr,clientCutProperty,0,ulReturnBytesLeft, FALSE,
+                                         AnyPropertyType, &atomReturnType, &iReturnFormat,
+                                         &ulReturnItems, &ulReturnBytesLeft, &pszReturnData);
++/*
++#ifdef NXWIN_CLIPBOARD_DEBUG
++	ErrorF("nxwinSendNotify: called 2-nd GetWindowProperty - status=%d, ulReturnItems=%d\n",Success,ulReturnItems);
++#endif
++*/
+         if ((iReturn == Success) && (ulReturnItems > 0))
+         {
++#ifdef NXWIN_CLIPBOARD_DEBUG
++  	  ErrorF("  AtomReturnType [%s]\n",NameForAtom(atomReturnType));
++#endif
+           nxwinSetWindowClipboard(pszReturnData, ulReturnItems);
+ 
+           clientOwner = TRUE;
+@@ -495,6 +607,9 @@ Bool nxwinSendNotify(xEvent* x)
+         }
+      }
+   }
++#ifdef NXWIN_CLIPBOARD_DEBUG
++  else ErrorF(" !! MISSED !!\n");
++#endif
+   return FALSE;
+ }
+ 
+@@ -512,19 +627,27 @@ void nxwinLostFocus(void)
+    if (lastOwnerWindowPtr)
+    {
+       xEvent x;
++#ifdef NXWIN_CLIPBOARD_DEBUG
++   ErrorF("%d nxwinLostFocus: lastOwnerWindow [%p]; pWin [%p]; target [%s]; prop [%s]\n",GetTickCount(),lastOwnerWindow,lastOwnerWindowPtr,NameForAtom(XA_STRING),NameForAtom(clientCutProperty));
++#endif
+ 
+       x.u.u.type = SelectionRequest;
+       x.u.selectionRequest.time = GetTimeInMillis();
+       x.u.selectionRequest.owner = lastOwnerWindow;
+       x.u.selectionRequest.requestor = WindowTable[0]->drawable.id;
+-      x.u.selectionRequest.selection = XA_PRIMARY;
++/* My changes */
++/*
++      x.u.selectionRequest.selection =  XA_PRIMARY; 
++*/
++      x.u.selectionRequest.selection = clientCLIPBOARD;  
++/* My changes */
+       x.u.selectionRequest.target = XA_STRING;
+       x.u.selectionRequest.property = clientCutProperty;
+-
+       (void) TryClientEvents (lastOwnerClientPtr, &x, 1,
+                                NoEventMask, NoEventMask /* CantBeFiltered */,
+                                NullGrab);
+       SetCriticalOutputPending();
++
+    }
+ }
+ 
+diff --git a/nxwin/programs/Xserver/hw/nxwin/winmultiwindowwm.c b/nxwin/programs/Xserver/hw/nxwin/winmultiwindowwm.c
+index e8149c7..a09d227 100644
+--- a/nxwin/programs/Xserver/hw/nxwin/winmultiwindowwm.c
++++ b/nxwin/programs/Xserver/hw/nxwin/winmultiwindowwm.c
+@@ -408,7 +408,9 @@ privateGetWindowName(void *pWin, char **ppName, Atom atom)
+    if( (retValue = GetWindowProperty(pWin, atom, 0L, 0L, False,
+                         AnyPropertyType, &retType, &retFormat, 
+                         &nItems, &bytesLeft, (unsigned char**)NULL)) != Success){
+-       ErrorF("GetWindowName: GetWindowProperty failed\n");
++#ifdef NXWIN_MULTIWINDOW_DEBUG
++       ErrorF("GetWindowName: GetWindowProperty /length/ failed\n");
++#endif
+        return retValue; 
+    }
+    origLen = bytesLeft;
+@@ -417,7 +419,9 @@ privateGetWindowName(void *pWin, char **ppName, Atom atom)
+    if( (retValue = GetWindowProperty(pWin, atom, 0L, bytesLeft, False,
+                         AnyPropertyType, &retType, &retFormat, 
+                         &nItems, &bytesLeft, (unsigned char**)ppName)) != Success){
+-       ErrorF("GetWindowName: GetWindowProperty failed\n");
++#ifdef NXWIN_MULTIWINDOW_DEBUG
++       ErrorF("GetWindowName: GetWindowProperty /value/ failed\n");
++#endif
+        free(strName);
+        return retValue;
+    }
+@@ -448,8 +452,16 @@ GetWindowName (void *pWin, char **ppName)
+ 
+    /* TRY with ATOM WM_NAME */
+    reqAtom = XA_WM_NAME;
+-   if( privateGetWindowName(pWin, ppName, reqAtom) == Success )
++   if( privateGetWindowName(pWin, ppName, reqAtom) == Success ) 
++/* ------------------ My crooked additions ------------------------------------------- */
++/* sometimes *ppName is present and zero length - anyway need to try second atom */
++   { if (strlen(*ppName) > 0)
++     {
+       return;
++     }
++     else free(*ppName);
++   }
++/* ------------------ My crooked additions ------------------------------------------- */
+    reqAtom = MakeAtom(atom_NET_WM_NAME, sizeof(atom_NET_WM_NAME) - 1, True);
+    privateGetWindowName(pWin, ppName, reqAtom);
+ }
+@@ -537,6 +549,98 @@ winMultStackWindow(pWin, val)
+     return 1;
+ }
+ 
++/* ------------------ My crooked additions ------------------------------------------- */
++wchar_t * utf8_to_unicode(char *utf8_string)
++{
++	int err;
++	wchar_t * res;
++	int res_len = 1000;
++	res = malloc(res_len);
++	err = MultiByteToWideChar(
++		CP_UTF8,		// Code page
++		0,			// No flags
++		utf8_string,		// Multibyte characters string
++		-1,			// The string is NULL terminated
++		res,			// Output buffer
++		res_len			// buffer size
++		);
++	if (err == 0)
++	{
++//		printf("Failed to convert to unicode\n");
++		free(res);
++		return NULL;
++	}
++	return res;
++}
++
++void 
++winSetWinName (WMMsgNodePtr pNode)
++{
++  {
++    /*XWindowAttributes		attr;*/
++    char			*pszName;
++    wchar_t 			*pszWName;
++#if 0
++    XWMHints			*pHints;
++#endif
++    /* Get the window attributes */
++    /*
++    XGetWindowAttributes (pWMInfo->pDisplay,
++			  pNode->msg.iWindow,
++			  &attr);
++    */
++    if (!winGetOverrideRedirectPriv(pNode->msg.pWin))
++     {
++#ifdef NXWIN_MULTIWINDOW
++#ifdef NXWIN_MULTIWINDOW_DEBUG
++	if(nxwinMultiwindow)
++             ErrorF("winMultiWindowWMProc: LOCK before GetWindowName\n");
++	else
++	     ErrorF("winMultiWindowWMProc: before GetWindowName\n");	
++#endif
++             if(nxwinMultiwindow && pthread_mutex_lock(&nxwinMultiwindowMutex))
++                     ErrorF("winMultiWindowWMProc: pthread_mutex_lock failed\n");
++#endif
++	/* Set the Windows window name */
++	GetWindowName(pNode->msg.pWin, &pszName);
++#ifdef NXWIN_MULTIWINDOW
++#ifdef NXWIN_MULTIWINDOW_DEBUG
++	if(nxwinMultiwindow)
++             ErrorF("winMultiWindowWMProc: UNLOCK after GetWindowName\n");
++	else
++	     ErrorF("winMultiWindowWMProc: after GetWindowName\n");
++#endif
++        if(nxwinMultiwindow && pthread_mutex_unlock(&nxwinMultiwindowMutex) != 0)
++             ErrorF("winMultiWindowWMProc: !!! pthread_mutex_unlock failed\n");
++#endif
++	if(!pszName){
++	     ErrorF("winMultiWindowWMProc: GetWindowName failed\n");	
++	     return;
++		}
++
++#ifdef NXWIN_MULTIWINDOW_DEBUG
++	ErrorF("winMultiWindowWMProc!!!: Window title before converting - %s\n",pszName);
++#endif
++/* if you know, how to get system charset from server, tell me about them */
++	pszWName = utf8_to_unicode(pszName);
++#ifdef NXWIN_MULTIWINDOW_DEBUG
++	ErrorF("winMultiWindowWMProc!!!: Window title after converting  - %s\n",pszWName);
++#endif
++	SetWindowTextW (pNode->msg.hwndWindow, pszWName); 
++//	SetWindowText (pNode->msg.hwndWindow, pszName);
++
++#ifdef NXWIN_MULTIWINDOW_DEBUG
++	ErrorF("winMultiWindowWMProc: Insert here LoadIcon\n");
++#endif
++	free (pszName);
++        if (pszWName != NULL)
++		free (pszWName);
++      }
++  }
++}
++/* -----------End of my crooked additions ------------------------------------------- */
++
++
+ static void *
+ winMultiWindowWMProc (void *pArg)
+ {
+@@ -599,6 +703,10 @@ winMultiWindowWMProc (void *pArg)
+      /*
+      XRaiseWindow (pWMInfo->pDisplay, pNode->msg.iWindow);
+      */
++
++/* ------------------ My crooked additions ------------------------------------------- */
++	  winSetWinName (pNode);
++/* -----------End of my crooked additions ------------------------------------------- */
+      break;
+ 
+    case WM_WM_LOWER:
+@@ -617,54 +725,9 @@ winMultiWindowWMProc (void *pArg)
+ #if CYGMULTIWINDOW_DEBUG
+      ErrorF ("\tWM_WM_MAP\n");
+ #endif
+-	  {
+-	    /*XWindowAttributes		attr;*/
+-	    char			*pszName;
+-#if 0
+-	    XWMHints			*pHints;
+-#endif
+-
+-	    /* Get the window attributes */
+-	    /*
+-	    XGetWindowAttributes (pWMInfo->pDisplay,
+-				  pNode->msg.iWindow,
+-				  &attr);
+-             */
+-	    if (!winGetOverrideRedirectPriv(pNode->msg.pWin))
+-	      {
+-#ifdef NXWIN_MULTIWINDOW
+-#ifdef NXWIN_MULTIWINDOW_DEBUG
+-		if(nxwinMultiwindow)
+-	             ErrorF("winMultiWindowWMProc: LOCK before GetWindowName\n");
+-		else
+-		     ErrorF("winMultiWindowWMProc: before GetWindowName\n");	
+-#endif
+-                if(nxwinMultiwindow && pthread_mutex_lock(&nxwinMultiwindowMutex))
+-	                     ErrorF("winMultiWindowWMProc: pthread_mutex_lock failed\n");
+-#endif
+-		/* Set the Windows window name */
+-		GetWindowName(pNode->msg.pWin, &pszName);
+-#ifdef NXWIN_MULTIWINDOW
+-#ifdef NXWIN_MULTIWINDOW_DEBUG
+-		if(nxwinMultiwindow)
+-	             ErrorF("winMultiWindowWMProc: UNLOCK after GetWindowName\n");
+-		else
+-		     ErrorF("winMultiWindowWMProc: after GetWindowName\n");
+-#endif
+-                if(nxwinMultiwindow && pthread_mutex_unlock(&nxwinMultiwindowMutex) != 0)
+-	             ErrorF("winMultiWindowWMProc: !!! pthread_mutex_unlock failed\n");
+-#endif
+-		if(!pszName){
+-		     ErrorF("winMultiWindowWMProc: GetWindowName failed\n");	
+-		     break;
+-		}
+-		SetWindowText (pNode->msg.hwndWindow, pszName);
+-#ifdef NXWIN_MULTIWINDOW_DEBUG
+-		ErrorF("winMultiWindowWMProc: Insert here LoadIcon\n");
+-#endif
+-		free (pszName);
+-	      }
+-	  }
++/* ------------------ My crooked additions ------------------------------------------- */
++	  winSetWinName (pNode);
++/* -----------End of my crooked additions ------------------------------------------- */
+      break;
+ 
+    case WM_WM_UNMAP:
+@@ -904,6 +967,9 @@ winMultiWindowWMProc (void *pArg)
+      if(nxwinMultiwindow && pthread_mutex_unlock(&nxwinMultiwindowMutex))
+                ErrorF("!!! pthread_mutex_unlock failed\n");
+ #endif
++/* ------------------ My crooked additions ------------------------------------------- */
++	  winSetWinName (pNode);
++/* -----------End of my crooked additions ------------------------------------------- */
+      break;
+ #if 0
+    case WM_WM_X_EVENT:


hooks/post-receive
-- 
nx-libs.git (NX (redistributed))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "nx-libs.git" (NX (redistributed)).




More information about the x2go-commits mailing list