비활성 X 윈도우의 프레임을 "처음으로"클릭하면 프레임을 활성화하는 것 외에 다른 효과가 발생하지 않도록하고 싶습니다. 특히, 나는 포인트를 재배치하고 싶지 않습니다.
문제는 마우스 클릭을받을 때 프레임 이 비활성 상태 임을 감지 할 수 없다는 것 입니다. 따라서 다음 코드는 항상 보여줍니다 "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)
프레임이 이전에 비활성 상태인지 어떻게 알 수 있습니까?
아니면 누군가 내가 이미 다른 곳에서하려고하는 것을 달성 했습니까?
프레임에 제목 표시 줄과 테두리가 없습니까? 버퍼를 클릭하는 대신 그냥 클릭하지 않겠습니까?
—
Drew
@ lawlist : up 이벤트가 나중에 발생하기 때문에 이것이 도움이되지 않는다고 생각합니다. 다운 이벤트 중에 프레임이 비활성화되었다고 말할 수도 없습니다!
—
edam
@ 드류 : 글쎄, 할 수 있지만, 어리석은 일입니다. 이맥스가 터미널에서 실행될 때처럼 X 윈도우를 클릭하는 것을 선호합니다.
—
edam 2018 년
이것은 실제로 매우 성가신 행동입니다. 마우스를 전혀 사용하지 않아서 방지합니다. Alt + Tab 및 co. 프레임 사이를 전환합니다.
—
GergelyPolonkai 2016 년
mouse-set-point
기능을 수행하는 고유 한 기능을 만들고 싶습니다. 할 일C-h k
마우스 클릭 일을하고 볼 이 (2) 기능 이 나열되어 있습니다.