Considerare un'applicazione in cui è preferibile afferrare la tastiera quando è focalizzata per acquisire tutti i comandi di gestione finestre (Alt + F4 e quant'altro) per l'elaborazione. Ora, questo ha il rovescio della medaglia che l'utente non ha modo di passare a un'altra applicazione o desktop virtuale tramite la tastiera quando viene afferrata la tastiera. Mi piacerebbe avere una whitelist definita dall'utente della combinazione di tasti (ad esempio, le combinazioni di tasti per la commutazione di desktop virtuali) che sono esclusi dalla cattura.Esclusione di alcune chiavi da XGrabKeyboard
Posso pensare a due possibili approcci. Quando arriva un evento chiave nella whitelist, sia
- In qualche modo dire a X di continuare a processarlo come al solito. Sembra un modo più naturale di farlo ma non riesco a trovare un modo per farlo, oppure
- Annulla la tastiera e invia nuovamente l'evento a mano al gestore di finestre per l'elaborazione, tuttavia non so dove spedirlo (la finestra radice?) o se funzionerebbe anche.
Qualcuno può compilare gli spazi vuoti su quelli? Qualche altro suggerimento?
Se non c'è modo di escludere chiavi da una presa, suppongo che dovrò accontentarmi di avere una "chiave di escape" che sblocca la tastiera quando viene premuto. L'utente dovrà premere sia quello che il comando di gestione della finestra, che però non è così bello.
Avevo paura di ottenere una risposta come questa. Sono sicuro che avrei visto un software che lo fa se è possibile.Comunque, grazie per avermi indirizzato verso XInput 2, lo sto guardando in questo momento e sembra che abbia nuovi modi per afferrare i dispositivi di input. Eseguendo alcuni test per vedere se è possibile ciò è possibile –
È risultato che qualcosa di simile è "possibilmente programmato per XI2.1", che non sembra nemmeno esistere ancora secondo Google. I nuovi suggerimenti di WM non sembrano una cattiva idea, quindi ho iniziato a discuterne sulla lista delle specifiche wm di freedesktop.org. http://mail.gnome.org/archives/wm-spec-list/2010-September/thread.html –