xlib 창 관리자에서 작업 표시줄은 어떻게 작동합니까?

xlib 창 관리자에서 작업 표시줄은 어떻게 작동합니까?

(취미 프로젝트로) 창 관리자를 만들려고 합니다. 기본 작업 표시줄을 화면 하단에 창으로 구현했습니다. 하지만 그 위에 다른 창문을 올릴 수도 있습니다. 이상적으로는 작업 표시줄이 무슨 일이 있어도 상단에 유지되는 것입니다. 맨 위에 있지 않을 때마다 간단히 올리면 문제가 해결될 것이라고 생각했지만 두 개의 창이 맨 위 위치를 놓고 경쟁하는 데 문제가 발생할 수 있다는 내용을 읽었습니다.

작업 표시줄이 최상위 위치에 유지되도록 하고 드래그할 때 모든 창을 그 뒤에 유지하는 데 선호되는 xlib 방법이 있습니까?

답변1

이 문제를 해결하기 위해 다른 창들이 스스로 올라가는 것을 비활성화하기로 결정했습니다. 그들이 이 작업을 수행할 때 나는 그들이 올라가는지 확인하고 그 후에 즉시 작업 표시줄이 올라갑니다. 그들이 중복 요청을 보내면(맨 위에 머물려고 노력하면서) 나는 그 요청을 무시합니다.

최대화 및 기타 사항을 처리하기 위해 display_width 및 display_height 변수를 사용하여 사용 가능한 디스플레이의 너비와 높이를 나타냅니다. 예전에는 화면이었던 것이 이제는 모니터로 사용 가능합니다. 사용 가능한 모니터는 모니터 높이에서 작업 표시줄 높이를 빼서 하단 작업 표시줄을 보완합니다.

관련 정보