2014-10-02 6 views
0

새 선택 소유자가 있다는 알림을받을 수 있습니까? XSetSelectionOwner 메서드로 인해 이벤트 브로드 캐스트가 발생합니까? x2x가 어떻게 작동하는지 궁금합니다. 새 선택 소유자가 있음을 알리는 방법이 없다면 x2x는 선택 소유자 인 루프에서 X 서버에 요청해야합니다.XSetSelectionOwner 수신 대기

다음과 같이 의심됩니다. x2x는 XGetSelectionOwner을 사용하여 현재 소유자에 대한 두 가지 디스플레이를 모두 요청합니다. 소유자가 Display 1으로 변경된 경우 x2x는 XSetSelectionOwner을 사용하여 Display 2의 선택 소유자가됩니다. 디스플레이 2에 붙여 넣기 데이터를 원할 경우 display 2의 x2x는 중간으로 작동하고 수신 된 모든 요청을 원래 클라이언트 Display 1에 보냅니다. 내가 맞습니까?

답변

3

예, 당신은 선택의 소유권 이전 소유자가 SelectionClear 이벤트 수신받을 때

SelectionClear을

소유자 : WINDOW

선택 : ATOM

시간 : TIMESTAMP

이 이벤트가 선택 항목의 현재 소유자에게보고되고 0123입니다. 새 소유자가 SetSelectionOwner를 통해 정의 될 때이 생성됩니다. 타임 스탬프는 에 대해 기록 된 마지막 변경 시간입니다. owner 인수는 에 의해 SetSelectionOwner 요청의 현재 소유자로 지정된 창입니다.

업데이트 :

6. Selection Tracking 

Applications wishing to monitor the contents of current selections must 
poll for selection changes. XFIXES improves this by providing an event 
delivered whenever the selection ownership changes. 

6.2 Requests 

SelectSelectionInput 

     window:    Window 
     selection:   Atom 
     event-mask:   SETofSELECTIONEVENT 

    Selects for events to be delivered to window when various causes of 
    ownership of selection occur. Subtype indicates the cause of the 
    selection ownership change. Owner is set to the current selection 
    owner, or None. Timestamp indicates the time the event was 
    generated while selection-timestamp indicates the timestamp used to 
    own the selection. 
+0

SelectionClear 만 선택의 현재 소유자에보고됩니다 : 당신이없는 자신의 선택을 할 경우, 당신은 선택 XFixes extension을 사용하여 변경 사항에 대한 알림을받을 수 있습니다. 내 고객이 현재 소유자인지 여부에 관계없이 내 고객에게 새 선택 소유자에 대한 알림을 받고 싶습니다. – Mariusz

+0

XFixes에서 가능합니다 (업데이트 참조). –