Quiero evitar que el "primer" clic en un marco en una ventana X inactiva tenga algún efecto, aparte de activar el marco. Específicamente, no quiero que vuelva a colocar el punto.
El problema es que parece que no puedo detectar que el marco estaba inactivo cuando hago clic con el mouse. Entonces el siguiente código siempre muestra "y"
:
;; detect if frame is active when clicking
(defun my/mouse-drag-region (event)
(interactive "e")
(mouse-minibuffer-check event)
(let* ((window (caadr event))
(frame (window-frame window)))
(if (eql frame (selected-frame))
(print "y")
(print "n"))))
(global-set-key [down-mouse-1] 'my/mouse-drag-region)
¿Cómo detecto que el marco estaba previamente inactivo?
O, ¿alguien ya ha logrado lo que estoy tratando de hacer en otro lugar?
Nota: estoy pidiendo algo diferente a esta otra pregunta , que se trata de ventanas inactivas, no de marcos inactivos.
mouse-set-point
y crear su propia función para hacer lo que quiera. HagaC-h k
clic con el mouse y vea las dos (2) funciones que se enumeran allí.