Ben pencereli ya da ben Alt + Tab gibi herhangi WM klavye kısayolları engellemeden, olmadan fare yakaladı ancak sahip tam ekran ya, ben bir pencerede çizmek bir uygulama oluşturmak istiyor ve ben de haberdar olmak için ihtiyaç Kullanıcı ne zaman girerse odak/odağı bırakır. Google Chrome, Firefox veya gnome-terminal gibiLinux'ta Alt + Tab dostu tam ekran programlar (oyunlar gibi) nasıl oluşturulur?
yaygın uygulamalar işleyebilir bu gayet (F11 ile tam ekran olacak, ama yine de Alt + Tab olan), ancak fareyi yakala yoktur.
SDL bu kullanım şeklini bir azılı kötü kullanımı vardır: SDL_WM_GrabInput fareyi yakalar ama aynı zamanda WM kısayolları yakaladığını; ve SDL_FULLSCREEN kendi başına bir çeşit otomatik yakalamaya sahip gibi görünüyor (bana neden sorma).
bir çözüm Alt + Tab kendim için kod yazmak olabilir, ama bu berbat (ve başka bir çalışma alanına değiştirme gibi diğer WM kısayollar için yardımcı olmuyor).
Başka bir çözüm SDL_WM_GrabInput'u çağırmamaktır, ancak bunun yerine bir kepçe kullanmanız yeterlidir: sadece fare işaretçisini (SDL_ShowCursor ile) gizleyin ve kullanıcı hareket ettiğinde tekrar merkeze taşıyın. Çirkin olan, ama pratikte çalışır - SDL_FULLSCREEN için elbette, çünkü otomatik olarak (aklı başında uygulamaların aksine) yakalar. Tam ekran özellikli bir SDL çözümü budur, ancak bu hala istediğim şey değil. Kepçe etkinleştirmek ve devre dışı bırakmak için hack sahip olmak istemiyorum, fare kapmak istiyorum ama klavye kapmak değil.
Yani ML ile deli değilim ve alternatifleri görmek istiyorum. I , SDL'yi kullanmak için'u ister ancak bu gerekli değildir.
neyi SDL aslında yok XGrabKeyboard kullanmak olduğunu işaret gibi görünüyor. Adam sayfasını okuyarak, klavyeyi kaptırmadan fareyi kapıp kapamayacağınızı hemen anlayamıyorum (Xlib'i kendim kullanmadım). Ben (yani Alt + Tab dostu, gnome-terminal çeşitli olduğunu) GTK ile "sahte tam ekran" yapmak için biliyorum. Bunu yapmak, fare gizleme ve merkeze ("sahte kapma") geri hareket ettirme ile birleştiğinde, hile yapmak olabilir, ama bu çok fazla koli bandı gibi geliyor. Daha basit bir yol olmalı. (Ayrıca GTK'yı bir bağımlılık olarak eklemek istemiyorum; ancak ham Xlib çağrıları yapmanın iyi bir fikir olup olmadığından emin değilim).Bunun için iyi bir çözüm nedir?
Linux/X11 çözümüne ihtiyacım var ama çapraz platform olması güzel olurdu - bunun Windows üzerinde sorunsuzca çözülebileceğini biliyorum, bu yüzden tam olarak bunu yapan bir kütüphane var. (Ayrıca, OpenGL ile işlemek ama bu alakasız)
PS: Belki bu konuda kötü bir anlayış yaşıyorum ve ben doğru soruyu sormuyorum, bu nedenle işaret çekinmeyin ben sığınak' yaklaşımları t dikkate alındı.
Ben [I anılan soru] (http://stackoverflow.com/questions/10916997/alt-tab-from-fullscreen-sdl), bence, yinelenen, gerçekten değil aramıyorum çünkü Özellikle bir SDL çözümü için. SDL sadece şu anda kullanıyorum * kütüphanesi *. – darque
Sadece Xlib gördüğümüz [XGrabPointer] (http://tronche.com/gui/x/xlib/input/XGrabPointer.html) işlevini API. Yani, görünüşe göre, Xlib klavye kapmak zorunda kalmadan * sadece * fare * kapmak için yeterli işlevselliğe sahiptir. – darque