From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25346 invoked by alias); 5 Jan 2004 19:29:23 -0000 Mailing-List: contact cygwin-xfree-help@cygwin.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-xfree-owner@cygwin.com Mail-Followup-To: cygwin-xfree@cygwin.com Reply-To: cygwin-xfree@cygwin.com Received: (qmail 25317 invoked from network); 5 Jan 2004 19:29:21 -0000 Received: from unknown (HELO central.ixn.com) (65.19.132.2) by sources.redhat.com with SMTP; 5 Jan 2004 19:29:21 -0000 Received: from msu.edu (office.ixn.com [68.23.74.57]) (authenticated bits=0) by central.ixn.com (8.12.10/8.12.10) with ESMTP id i05JTFMN068682 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 5 Jan 2004 14:29:16 -0500 (EST) Message-ID: <3FF9BB03.4010903@msu.edu> Date: Mon, 05 Jan 2004 19:29:00 -0000 From: Harold L Hunt II User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4 MIME-Version: 1.0 To: cygwin-xfree@cygwin.com Subject: Re: New clipboard handling notes (XFree86-xserv-4.3.0-31) References: <3FF914DD.7070100@msu.edu> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=5.5 tests=none autolearn=no version=2.60 X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) X-SW-Source: 2004-01/txt/msg00086.txt.bz2 List-Id: Alexander, Good, thanks for reviewing the notes. Harold Alexander Gottwald wrote: > On Mon, 5 Jan 2004, Harold L Hunt II wrote: > > >>Here are my notes that I put together to convince myself that the new >>clipboard handling was complete and would not cause infinite loops. >>Please examine the notes if you are interested in the new code or if you >>would like to double-check my logic for errors. >> >>Please review the steps and post to the list if you think you have found >>an error. Also, if you find a bug or a crash, look at these steps and >>try to identify the approximate location of your problem so that we can >>do a better job of debugging. >> >>Harold >> >> >>Copy in X11 >>=========== >>1) winProcSetSelectionOwner gets called and takes ownership of the Win32 >>clipboard (OpenClipboard, EmptyClipboard, SetClipboardData (foo, NULL)). >> >>2) Selection is owned by another X11 client (the one that called >>XSetSelectionOwner). >> >>3) EmptyClipboard() in step #1 files WM_DRAWCLIPBOARD message, which is >>ignored since hwnd == GetClipboardOwner (). >> >>4) Paste in X11 >> a) Owning X11 client handles SelectionRequest events. >> >> b) Item is pasted within X11 without round-trip to Win32. >> >>5) Paste in Win32 >> a) WM_RENDERFORMAT fires. >> >> b) SelectionRequest is sent, conversion from X11 to Win32 is done. >> >> c) SetClipboardData is called, passing converted text. >> >>6) Copy in X11 (different app) >> a) Goto Step #1. >> >>7) Copy in Win32 >> a) Clipboard is emptied and owned by the other application. >> >> b) WM_DRAWCLIPBOARD fires, XSetSelectionOwner is called, owning the >> selection for the clipboard integration manager. >> >> >>Copy in Win32 >>============= >>1) WM_DRAWCLIPBOARD fires, calls XSetSelectionOwner for itself. >> >>2) winProcSetSelectionOwner gets called, does nothing since clipboard >>X11 window is the window that is taking ownership. >> >>3) Paste in Win32 >> a) Clipboard owning Win32 app handles GetClipboardData call. >> >> b) Item is pasted without round-trip to X11. >> >>4) Paste in X11 >> a) Clipboard integration manager receives SelectionRequest. >> >> b) GetClipboardData is called, returning Win32 clipboard contents. >> >> c) Conversion from Win32 to X11 is done and text is pasted. >> >>5) Copy in X11 >> a) winProcSetSelectionOwner is called. >> >> b) Clipboard integration manager takes ownership of Win32 clipboard. >> >> c) WM_DRAWCLIPBOARD fires and is ignored since hwnd == >> GetClipboardOwner (). >> >>6) Copy in Win32 (different app) >> a) Goto Step #1. >> > > > Looks good to me. > > bye > ago >