(취미 프로젝트로) 창 관리자를 만들려고 합니다. 기본 작업 표시줄을 화면 하단에 창으로 구현했습니다. 하지만 그 위에 다른 창문을 올릴 수도 있습니다. 이상적으로는 작업 표시줄이 무슨 일이 있어도 상단에 유지되는 것입니다. 맨 위에 있지 않을 때마다 간단히 올리면 문제가 해결될 것이라고 생각했지만 두 개의 창이 맨 위 위치를 놓고 경쟁하는 데 문제가 발생할 수 있다는 내용을 읽었습니다.
작업 표시줄이 최상위 위치에 유지되도록 하고 드래그할 때 모든 창을 그 뒤에 유지하는 데 선호되는 xlib 방법이 있습니까?
답변1
이 문제를 해결하기 위해 다른 창들이 스스로 올라가는 것을 비활성화하기로 결정했습니다. 그들이 이 작업을 수행할 때 나는 그들이 올라가는지 확인하고 그 후에 즉시 작업 표시줄이 올라갑니다. 그들이 중복 요청을 보내면(맨 위에 머물려고 노력하면서) 나는 그 요청을 무시합니다.
최대화 및 기타 사항을 처리하기 위해 display_width 및 display_height 변수를 사용하여 사용 가능한 디스플레이의 너비와 높이를 나타냅니다. 예전에는 화면이었던 것이 이제는 모니터로 사용 가능합니다. 사용 가능한 모니터는 모니터 높이에서 작업 표시줄 높이를 빼서 하단 작업 표시줄을 보완합니다.