Ich möchte verhindern, dass der "erste" Klick auf einen Frame in einem inaktiven X-Fenster andere Auswirkungen hat, als den Frame zu aktivieren. Insbesondere möchte ich nicht, dass der Punkt neu positioniert wird.
Das Problem ist , dass ich nicht zu erkennen scheinen , dass er Rahmen war inaktiv , wenn ich die Maus - Klick erhalten. Der folgende Code zeigt also immer"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)
Wie erkenne ich, dass der Frame zuvor inaktiv war?
Oder hat jemand bereits erreicht, was ich anderswo zu tun versuche?
Hinweis: Ich frage nach etwas anderem als dieser anderen Frage , bei der es um inaktive Fenster geht, nicht um inaktive Frames.
mouse-set-point
und eine eigene Funktion erstellen, um zu tun, was Sie wollen. Machen Sie denC-h k
Mausklick und sehen Sie sich die beiden (2) Funktionen an , die dort aufgelistet sind.