(xem chỉnh sửa)Làm cách nào để ngăn Gnome hiển thị hai cửa sổ khi thực hiện alt-tab? (C++ qt app)
Tôi đang phát triển ứng dụng QT/C++ dưới gnome.
Ứng dụng cửa sổ chính và cửa sổ con QListBox.
Cả hai cửa sổ này đều hiển thị dưới dạng các cửa sổ chính riêng biệt khi tôi bỏ tab giữa ứng dụng.
Tôi làm cách nào để chỉ hiển thị một cửa sổ khi tôi (hoặc sau này người dùng) sử dụng tab alt?
Tôi đoán hành vi này xảy ra vì một cửa sổ chính không cắt cửa sổ phụ - cửa sổ con mở rộng ranh giới của cửa sổ chính. Gnome cũng có hành vi tab alt xấu đối với một số ứng dụng khác, hiển thị hộp thoại phương thức riêng biệt với cửa sổ chính. Nhưng trong trường hợp ứng dụng của tôi, điều này thực sự gây phiền nhiễu.
Tôi nghĩ tôi có thể tạo một cửa sổ trong suốt khổng lồ bao gồm cả hai cửa sổ hiện có. Nhưng nó sẽ là đẹp hơn để tìm một giải pháp "sạch".
(. Đoán hợp lý nhất thực sự là nó có một cái gì đó để làm với lá cờ window Tôi đã thử mọi sự kết hợp hợp lý của cờ tôi có thể nghĩ về Các loại cửa sổ được mô tả here.)
Edit: Các ứng dụng có QWidget làm cửa sổ chính của nó (Không phải QMainWindow), QListView được chứa trong đối tượng QWidget và được tạo bằng cách chuyển một điểm đến cửa sổ chính. được tạo kiểu với Qt :: Tool | Qt :: FramelessWindowHint.
Edit2: Các Qt :: X11BypassWindowManagerHint phong cách không làm việc để loại bỏ các cửa sổ trong danh sách alt-tab. Vấn đề là nó cũng làm cho cửa sổ "không được quản lý" để nó bao gồm các cửa sổ khác. Tôi có thể manaully ẩn bất cứ khi nào tôi mất tập trung - giải thưởng ngay bây giờ cho một giải pháp tốt hơn.
Tôi đoán nó có liên quan gì đó với cờ cửa sổ ... ví dụ, nếu bạn đặt nó thành cửa sổ công cụ, nó sẽ lấy cả hai? Ví dụ: khi tôi sử dụng văn phòng mở, gnome không duyệt qua các cửa sổ công cụ nổi của nó, nhưng chỉ có các cửa sổ chính. –
Tôi giả định QListBox có con trỏ cửa sổ cha mẹ được đặt thành QMainWindow? Bất kỳ cơ hội nào tại một bộ xương của mã yêu cầu tối thiểu để tạo ra vấn đề này? – sleepynate