Peter Van Eynde <[EMAIL PROTECTED]>

> Took a while, but I found it.
>
> in requests.lisp it should be:
>
> (defun input-focus (display)
>   (declare (type display display))
>   (declare (clx-values focus revert-to))
>   (with-buffer-request-and-reply (display *x-getinputfocus* 16 :sizes (8 32))
>        ()
>     (values
>       (or-get 8 window (member :none :pointer-root))
>       (member8-get 1 :none :pointer-root :parent))))


This seems to be right.  I'm impressed! :-)

What got me confused was that the function seemed to give reasonable
answers in an xterm:

* (let ((dpy (ext:open-clx-display)))
   (nth-value 0 (xlib:input-focus dpy)))

:POINTER-ROOT
* (let ((dpy (ext:open-clx-display)))
   (nth-value 1 (xlib:input-focus dpy)))

:POINTER-ROOT
*

but trying the old version in emacs does, in fact, give the wrong
output.  Your fix makes it work the same way in both emacs and xterm.

> Why oh why (SVREF '#(:NONE :POINTER-ROOT) 31457282) returns 0 in :xlib is a 
>mystery...

A strange bug indeed.

-- 
Fred Gilham                     [EMAIL PROTECTED]
We have yet to find the Galileo who will question
our me-centred universe. --- Christina Odone

Reply via email to