(vedi modifiche)Come posso impedire a Gnome di mostrare due finestre quando si esegue alt-tab? (C++ qt app)
sto sviluppando a/C++ applicazione QT sotto gnome.
L'applicazione una finestra principale e una finestra secondaria QListBox.
Entrambe queste finestre si presentano come finestre principali separate quando si disabilita l'alt-tab dall'applicazione.
Come posso fare in modo che venga visualizzata una sola finestra quando I (o successivo utente) utilizza alt-tab?
Sto indovinando che questo comportamento deriva dal fatto che una finestra principale non ritaglia la sottofinestra - la sottofinestra estende il limite della finestra principale. Gnome ha un cattivo comportamento di alt-tab anche per un certo numero di altre applicazioni, mostrando finestre di dialogo modali separatamente dalle finestre principali. Ma nel caso della mia app, questo è davvero fastidioso.
Sto pensando di creare una finestra trasparente gigante che includa entrambe le finestre esistenti. Ma sarebbe più bello trovare una soluzione "pulita".
(. L'ipotesi più logica è, infatti, che ha qualcosa a che fare con le bandiere delle finestre Ho provato ogni ragionevole combinazione di bandiere riuscivo a pensare a I tipi di finestre sono descritte here.)
Edit: La l'app ha un QWidget come finestra principale (Not QMainWindow), QListView è contenuto nell'oggetto QWidget e creato passando un punto alla finestra principale. è in stile con Qt :: Tool | Qt :: FramelessWindowHint.
Edit2: Il Qt :: stile X11BypassWindowManagerHint fa lavoro per rimuovere la finestra dalla lista alt-tab. Il problema è che rende anche la finestra "non gestita" in modo che copra le altre finestre. Potrei nascondermi man mano ogni volta che perdo la concentrazione: premia ora per una soluzione migliore.
Immagino che abbia qualcosa a che fare con i flag delle finestre ... per esempio, se hai fatto una finestra degli strumenti, afferrerebbe entrambi allora? Quando uso ufficio aperto, ad esempio, gnome non passa attraverso le sue finestre degli strumenti mobili, ma solo quelle principali. –
Suppongo che QListBox abbia impostato il puntatore della finestra principale su QMainWindow? Qualche possibilità su uno scheletro di codice minimo richiesto per generare questo problema? – sleepynate