2012-03-21 5 views
3

GUI 툴킷 (예 : Qt, GTK)을 창 관리자와 함께 작동시키는 기본 메커니즘은 무엇입니까?GUI 도구 키트는 Linux의 창 관리자와 어떻게 통신합니까?

필자가 이해 한대로 GUI 툴킷은 창 관리자를 필요로하지 않고도 자신의 기본 창을 그릴 수 있습니다. 그러나 저를 혼란스럽게하는 점은 창 관리자가 x-server에서 "새 창 요청"을 감지하고이 창 주위에 프레임, 제목 등을 그릴시기 및 방법입니다. 분명히 일종의 암묵적인 조정이 필요합니다. 그러나 코딩의 관점에서, 창 관리자 초기화는 GUI 툴킷에 완전히 투명하게 보입니다.

GUI 툴킷과 창 관리자가 모두 x 창의 2 피어 클라이언트라고 말하는 것이 사실입니까? 창 관리자에게 새 창 만들기 프로세스에 참여하도록 (알리는) X 서버 책임이 있습니까? 이 경우 창 관리자가 없을 때 누가 "응용 프로그램 창"의 위치를 ​​결정합니까?

+1

X 터미널이 "로컬"창을 열면 WM에 의해 장식 된 것처럼 보입니다. –

답변

2

주요 통신 mechani sm은 windows 속성을 통해입니다. 그것을보기위한 출발점은 ICCCM이고, 특히 Chapter 4입니다. 여기에는 창 장식 및 단추와 같은 것들이 포함됩니다.

최신 데스크톱은 ICCCM에 설명 된 규칙을 확장합니다. 자세한 내용은 standards/freedesktop.org/wm-spec을 참조하십시오. 이러한 확장 기능은 호출기 및 작업 표시 줄과 같은 항목을 포함합니다.

또한 창 관리자는 특별한 권한을가집니다. 즉, 모든 창 구성, 크기 조정 및 매핑 요청을보고 가로 챌 수 있습니다. 이를 리디렉션이라고합니다 (예 : here. 나는 당신이 주로 이런 종류의 의사 소통에 관심이 있다고 생각합니다.

한 번에 하나의 클라이언트 만 리디렉션을 수행 할 수 있지만이 클라이언트는 으로 정의되어 있으며 창 관리자는입니다. 다른 모든면에서 고객은 동료입니다.

모든 창 생성/구성 요청에는 창 좌표가 포함됩니다. 창 관리자는이 좌표를 가로 채고 수정할 수 있습니다. 창 관리자가없는 경우 응용 프로그램이 요청을 보내는 것처럼 X 서버에서 요청을 실행합니다.