Как я могу запретить Gnome показывать два окна при выполнении alt-tab ? (c ++ qt app)

(см. Правку)

Я разрабатываю приложение QT / c ++ под gnome.

Приложение главное окно и дочернее окно QListBox.

Оба этих окна отображаются как отдельные главные окна, когда я покидаю приложение.

Как я могу сделать так, чтобы отображалось только одно окно, когда я (или позже пользователь) использовал alt-tab?

Я предполагаю, что это происходит потому, что одно главное окно не обрезает подокно - подокно расширяет границу главного окна. Gnome имеет плохое поведение alt-tab и для ряда других приложений, показывая модальные диалоговые окна отдельно от основных окон. Но в случае моего приложения это действительно раздражает.

Я думаю, я мог бы сделать гигантское прозрачное окно, которое включает в себя оба существующих окна. Но было бы лучше найти «чистое» решение.

(самое логичное предположение, действительно, в том, что оно как-то связано с флагами окна. Я попробовал каждую разумную комбинацию флагов, о которой мог подумать. Типы окон описаны здесь )

Редактировать: • обрезать подокно - подокно расширяет границы основного окна. Gnome имеет плохое поведение alt-tab и для ряда других приложений, показывая модальные диалоговые окна отдельно от основных окон. Но в случае моего приложения это действительно раздражает.

Я думаю, я мог бы сделать гигантское прозрачное окно, которое включает в себя оба существующих окна. Но было бы лучше найти «чистое» решение.

(самое логичное предположение, действительно, в том, что оно как-то связано с флагами окна. Я попробовал каждую разумную комбинацию флагов, о которой мог подумать. Типы окон описаны здесь )

Редактировать: • обрезать подокно - подокно расширяет границы основного окна. Gnome имеет плохое поведение alt-tab и для ряда других приложений, показывая модальные диалоговые окна отдельно от основных окон. Но в случае моего приложения это действительно раздражает.

Я думаю, я мог бы сделать гигантское прозрачное окно, которое включает в себя оба существующих окна. Но было бы лучше найти «чистое» решение.

(самое логичное предположение, действительно, в том, что оно как-то связано с флагами окна. Я попробовал каждую разумную комбинацию флагов, о которой мог подумать. Типы окон описаны здесь )

Редактировать: Но в случае моего приложения это действительно раздражает.

Я думаю, я мог бы сделать гигантское прозрачное окно, которое включает в себя оба существующих окна. Но было бы лучше найти «чистое» решение.

(самое логичное предположение, действительно, в том, что оно как-то связано с флагами окна. Я попробовал каждую разумную комбинацию флагов, о которой мог подумать. Типы окон описаны здесь )

Редактировать: Но в случае моего приложения это действительно раздражает.

Я думаю, я мог бы сделать гигантское прозрачное окно, которое включает в себя оба существующих окна. Но было бы лучше найти «чистое» решение.

(самое логичное предположение, действительно, в том, что оно как-то связано с флагами окна. Я попробовал каждую разумную комбинацию флагов, о которой мог подумать. Типы окон описаны здесь )

Редактировать: Приложение имеет QWidget в качестве основного окна (не QMainWindow), QListView содержится в объекте QWidget и создается путем передачи точки в главное окно. стилизован с помощью Qt :: Tool | Qt :: FramelessWindowHint.

Edit2: Стиль Qt :: X11BypassWindowManagerHint работает для удаления окна из списка alt-tab. Проблема в том, что оно также делает окно «неуправляемым», поэтому оно закрывает другие окна. Я мог бы спрятаться всякий раз, когда терял фокус - теперь приз за лучшее решение.

6
задан Joe Soul-bringer 31 August 2010 в 21:17
поделиться