CVS: rdesktop proto.h, 1.110, 1.111 seamless.c, 1.8, 1.9 xwin.c, 1.227, 1.228

Peter Åstrand <[email protected]> Fri, 07 Mar 2008 03:26:31 -0800
Newsgroups gmane.network.rdesktop.cvs
Message-ID <[email protected]>
Update of /cvsroot/rdesktop/rdesktop
In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv10219

Modified Files:
	proto.h seamless.c xwin.c 
Log Message:
Applied patch:

[ 1715358 ] seamlessrdp window close



Index: proto.h
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/proto.h,v
retrieving revision 1.110
retrieving revision 1.111
diff -C2 -d -r1.110 -r1.111
*** proto.h	5 Jan 2008 05:43:02 -0000	1.110
--- proto.h	7 Mar 2008 11:26:28 -0000	1.111
***************
*** 310,313 ****
--- 310,314 ----
  unsigned int seamless_send_zchange(unsigned long id, unsigned long below, unsigned long flags);
  unsigned int seamless_send_focus(unsigned long id, unsigned long flags);
+ unsigned int seamless_send_destroy(unsigned long id);
  /* scard.c */
  void scard_lock(int lock);

Index: seamless.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/seamless.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** seamless.c	18 Jun 2007 12:00:33 -0000	1.8
--- seamless.c	7 Mar 2008 11:26:29 -0000	1.9
***************
*** 510,511 ****
--- 510,518 ----
  	return seamless_send("FOCUS", "0x%08lx,0x%lx", id, flags);
  }
+ 
+ /* Send client-to-server message to destroy process on the server. */
+ unsigned int
+ seamless_send_destroy(unsigned long id)
+ {
+ 	return seamless_send("DESTROY", "0x%08lx", id);
+ }

Index: xwin.c
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/xwin.c,v
retrieving revision 1.227
retrieving revision 1.228
diff -C2 -d -r1.227 -r1.228
*** xwin.c	6 Mar 2008 15:39:21 -0000	1.227
--- xwin.c	7 Mar 2008 11:26:29 -0000	1.228
***************
*** 2029,2034 ****
  				if ((xevent.xclient.message_type == g_protocol_atom)
  				    && ((Atom) xevent.xclient.data.l[0] == g_kill_atom))
! 					/* Quit */
! 					return 0;
  				break;
  
--- 2029,2042 ----
  				if ((xevent.xclient.message_type == g_protocol_atom)
  				    && ((Atom) xevent.xclient.data.l[0] == g_kill_atom))
! 				{
! 					/* When killing a seamless window, close the window on the
! 					   serverside instead of terminating rdesktop */
! 					sw = sw_get_window_by_wnd(xevent.xclient.window);
! 					if (!sw)
! 						/* Otherwise, quit */
! 						return 0;
! 					/* send seamless destroy process message */
! 					seamless_send_destroy(sw->id);
! 				}
  				break;
  
***************
*** 3466,3472 ****
  	XSelectInput(g_display, wnd, input_mask);
  
! 	/* handle the WM_DELETE_WINDOW protocol. FIXME: When killing a
! 	   seamless window, we could try to close the window on the
! 	   serverside, instead of terminating rdesktop */
  	XSetWMProtocols(g_display, wnd, &g_kill_atom, 1);
  
--- 3474,3478 ----
  	XSelectInput(g_display, wnd, input_mask);
  
! 	/* handle the WM_DELETE_WINDOW protocol. */
  	XSetWMProtocols(g_display, wnd, &g_kill_atom, 1);
  


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/