I had been meaning to look at Keith Packard's XFIXES extension that was added to the XFree86 CVS last November and was subsequently removed before 4.3.0 was released. Tonight I looked through the pieces that of that patch that added a new type of callback function for selection changes. Callbacks for this can be registered by calling AddCallback...
Tonight I applied those few pieces of Keith's code for the selection callback to our SourceForge CVS tree. I also added a file to hw/xwin called winclipboardcallback.c and I added a call in winscrinit.c that registers a callback. Forgive the poor function names... but it is past bed time (you'll know what I mean if you look at the CVS).
The code compiles and runs. When the selection changes, it prints a message to the log file via ErrorF. So, we are at least able to detect when the selection changes now.
There are two steps that I will be taking next (or appreciating help from others on):
1) Make a few simple changes to the -clipboard functionality that registers a callback for the selection change events. Stop stealing the selection when something in X is copied. This would immediately improve -clipboard since it would no longer steal the selection and it would still support wonderful things like non-ANSI text conversion.
2) Change the clipboard functionality from an X Client to just another set of functions in the X Server. This is possible because we no longer have to wait for the X Client SelectionNotify events, etc., but it may prove difficult to find the X Server interface to the functions that convert selections into the desired format. On the other hand, this may be really easy.
I would *really* like to do (1) first, even if (2) were to follow as soon as later the same day. I think that (1) is achievable within 8 hours. I may have something tomorrow. I would appreciate if others would look into (2) in the mean time.
Good night,
Harold
-------- Original Message -------- Subject: [Xoncygwin-cvs] CVS Update: xc (branch: trunk) Date: Tue, 03 Jun 2003 22:06:38 -0700 From: Harold Hunt <[EMAIL PROTECTED]> Reply-To: [EMAIL PROTECTED] To: [EMAIL PROTECTED]
CVSROOT: /cvsroot/xoncygwin Module name: xc Repository: xc/programs/Xserver/include/ Changes by: [EMAIL PROTECTED] 03/06/03 22:06:38
Log message:
Add parts of Keith Packard's XFIXES used to notify clients when the selection changes. Only built when __CYGWIN__ is defined.
Modified files: xc/programs/Xserver/dix/: dispatch.c xc/programs/Xserver/hw/xwin/: Imakefile winscrinit.c xc/programs/Xserver/include/: dix.h
Revision Changes Path 1.2 +40 -20 xc/programs/Xserver/dix/dispatch.c 1.3 +2 -0 xc/programs/Xserver/hw/xwin/Imakefile 1.2 +267 -53 xc/programs/Xserver/hw/xwin/winscrinit.c 1.2 +28 -4 xc/programs/Xserver/include/dix.h
------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ Xoncygwin-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xoncygwin-cvs