Swing 라이브러리를 사용하는 Java 그래픽 응용 프로그램이 있습니다. 응용 프로그램이 최소화되고 그래픽 내용(색상 등)이 변경되면 창이 복원될 때 수정 사항이 표시됩니다. 그러나 창이 업데이트되지 않고 이전과 동일하게 유지됩니다. 창 크기를 조정하거나 이동하면 새로 고쳐집니다.
저는 X11 1.17.2와 Mutter 3.14.4를 창 관리자로 사용하여 Linux 시스템에서 이 프로그램을 실행하고 있습니다. 프로그램이 X11 1.10.4 및 Metacity 2.28.0을 사용하는 다른 시스템에서 실행되고 있기 때문에 X11에서 보낸 메시지 또는 Mutter 구성에서 문제가 발생한다는 것을 알고 있습니다.
Deiconify에서 앱을 업데이트하고 크기를 조정할 수 있도록 Mutter를 어떻게 구성합니까? 아니면 X11을 구성해야 합니까? 이 문제를 해결하는 방법을 전혀 모르겠습니다 ...
답변1
Mutter는 복합 창 관리자입니다. 아이콘화가 해제되더라도 창 버퍼는 유지될 수 있습니다. 이는 창 전환 기능에 유용합니다. 예를 들어, GNOME3 개요는 아이콘화된 창을 포함하여 모든 창의 전체 내용을 표시합니다. Metacity는 합성을 수행하지 않으므로 오프스크린 버퍼를 사용하지 않습니다.
귀하가 설명하는 상황은 Mutter 및/또는 X11 클라이언트 프로그램의 버그일 수 있습니다. 즉, 이것이 구성 문제가 아니라고 가정해야 합니다.
코드나 Java/Swing에 오류가 있을 수 있습니다. 공평하게 말하자면, 창이 아이콘화되었는지 수동으로 감지한 다음 다시 그리기 요청을 피했다면 그것이 문제라는 것을 깨달았을 것입니다 :-).
GNOME3을 고려하면, 스톡 GNOME3에는 창 제목 표시줄에 "최소화" 버튼이 없기 때문에 이것이 잘 테스트되지 않았다고 상상할 수 있습니다.
코드에서 시도해 볼 수 있는 해결 방법이 있습니다. 나는 이것이 매우 명백하다고 생각합니다 :-). 즉, 청취 창이 아이콘 해제된 후 다시 그려지도록 요청됩니다.