[mcclim-cvs] CVS update: mcclim/package.lisp mcclim/text-selection.lisp

Christophe Rhodes crhodes at common-lisp.net
Tue Mar 22 12:31:22 UTC 2005


Update of /project/mcclim/cvsroot/mcclim
In directory common-lisp.net:/tmp/cvs-serv31416

Modified Files:
	package.lisp text-selection.lisp 
Log Message:
I think this is a slightly more ICCCMly correct implementation of sending
selections to requestors.  We support all the required targets except
MULTIPLE, select an appropriate property if TEXT is requested, refuse to
send bad characters to a STRING target, and avoid printing to *trace-output*
to deal with the fact that Klipper, at least, polls the TIMESTAMP property
to find out if the selection has changed.

Requesting PRIMARY from selection owners is moderately broken, unfortunately;
it works for ASCII but not for much else.

Date: Tue Mar 22 13:31:19 2005
Author: crhodes

Index: mcclim/package.lisp
diff -u mcclim/package.lisp:1.48 mcclim/package.lisp:1.49
--- mcclim/package.lisp:1.48	Tue Feb 22 04:14:26 2005
+++ mcclim/package.lisp	Tue Mar 22 13:31:18 2005
@@ -1988,6 +1988,7 @@
    #:text-style-width
    ;; Text selection protocol
    #:selection-owner
+   #:selection-timestamp
    #:selection-event
    #:selection-clear-event
    #:selection-notify-event


Index: mcclim/text-selection.lisp
diff -u mcclim/text-selection.lisp:1.5 mcclim/text-selection.lisp:1.6
--- mcclim/text-selection.lisp:1.5	Mon Feb 28 00:07:36 2005
+++ mcclim/text-selection.lisp	Tue Mar 22 13:31:18 2005
@@ -244,7 +244,8 @@
                                            :sheet owner
                                            :selection :primary))))
       (when (bind-selection (port pane) pane (event-timestamp event))
-	(setf (selection-owner (port pane)) pane)))))
+	(setf (selection-owner (port pane)) pane)
+	(setf (selection-timestamp (port pane)) (event-timestamp event))))))
 
 (defun repaint-markings (pane old-markings new-markings)
   (let ((old-region (reduce #'region-union (mapcar #'(lambda (x) (marking-region pane x)) old-markings)




More information about the Mcclim-cvs mailing list