मैं या तो विंडोड या पूर्ण स्क्रीन है, जहां मैं Alt + टैब की तरह किसी भी WM कुंजीपटल शॉर्टकट, अवरोध डालने के बिना माउस पकड़ लिया लेकिन है, एक आवेदन जहां मैं एक खिड़की पर आकर्षित बनाना चाहते हैं, और मैं भी सूचना प्राप्त करने की जरूरत है जब भी उपयोगकर्ता फोकस करता है/छोड़ देता है। गूगल क्रोम, Firefox या GNOME टर्मिनल की तरहलिनक्स में Alt + Tab अनुकूल पूर्णस्क्रीन प्रोग्राम (जैसे गेम) कैसे बनाएं?
आम अनुप्रयोगों संभाल कर सकते हैं यह सिर्फ ठीक (F11 के साथ पूर्ण स्क्रीन जा रहा है, लेकिन अभी भी होने Alt + टैब), लेकिन वे माउस हड़पने नहीं है।
एसडीएल उपयोग के इस मामले के एक कुख्यात गरीब हैंडलिंग है: SDL_WM_GrabInput माउस पकड़ लेता है, लेकिन यह भी WM शॉर्टकट को बीच में रोक; और SDL_FULLSCREEN के पास स्वयं से कुछ प्रकार का स्वचालित हड़पने लगता है (मुझे क्यों नहीं पूछें)।
एक समाधान Alt + टैब खुद के लिए कोड लिखने के लिए हो सकता है, लेकिन यह बेकार है (और अन्य कार्य-स्थल को बदलने जैसे अन्य WM शॉर्टकट के लिए मदद नहीं करता है)।
एक और समाधान एसडीएल_डब्ल्यूएम_ग्राब इनपुट को कॉल नहीं करना है, बल्कि इसके बजाय नकली एक पकड़ है: बस माउस पॉइंटर (एसडीएल_शो कर्सर के साथ) को छुपाएं और जब भी उपयोगकर्ता चलता है तो इसे केंद्र में वापस ले जाएं। जो बदसूरत है, लेकिन अभ्यास में काम करता है - एसडीएल_फुलस्क्रीन के लिए पाठ्यक्रम को छोड़कर, क्योंकि यह स्वचालित रूप से पकड़ता है (सायन कार्यान्वयन के विपरीत)। एक पूर्णस्क्रीन-सक्षम एसडीएल समाधान यह है, लेकिन यह अभी भी नहीं है जो मैं चाहता हूं। मैं हैक को सक्षम और अक्षम करने के लिए हैक नहीं करना चाहता, मैं माउस को पकड़ना चाहता हूं लेकिन कीबोर्ड को नहीं पकड़ना चाहता हूं।
तो मैं एसडीएल के साथ पागल हूं और विकल्पों को देखना चाहता हूं। मैं एसडीएल का उपयोग करने के लिए पसंद करूंगा लेकिन यह आवश्यक नहीं है।
This question करते रहे कि क्या एसडीएल लेकिन वास्तव में ऐसा XGrabKeyboard उपयोग करने के लिए है लगता है। मैन पेज को पढ़कर यह मुझे तुरंत स्पष्ट नहीं करता है कि क्या आप कीबोर्ड को पकड़ने के बिना माउस को पकड़ सकते हैं (मैंने कभी एक्सलिब का उपयोग नहीं किया)।
मुझे पता है कि जीटीके साथ "नकली फुलस्क्रीन" बनाने के लिए (कि Alt + टैब के अनुकूल, GNOME टर्मिनल किस्म की, है)। मुझे कल्पना है कि ऐसा करने के साथ-साथ माउस छिपाने के साथ-साथ इसे केंद्र में ले जाना ("नकली हथियाने") चाल कर सकता है, लेकिन यह बहुत अधिक नली टेप की तरह लगता है। एक आसान तरीका होना चाहिए। (इसके अलावा मैं एक निर्भरता के रूप में जीटीके नहीं जोड़ना चाहता हूं, लेकिन मुझे यह भी यकीन नहीं है कि कच्चे एक्सलिब कॉल करना एक अच्छा विचार है)।
इसके लिए क्या अच्छा समाधान है?
मुझे एक लिनक्स/एक्स 11 समाधान की आवश्यकता है, लेकिन यह क्रॉस-प्लेटफॉर्म होने के लिए अच्छा होगा - मुझे पता है कि इसे आसानी से विंडोज़ पर हल किया जा सकता है, इसलिए शायद एक लाइब्रेरी है जो वास्तव में ऐसा करती है। (यह भी, मैं ओपन के साथ प्रस्तुत करना है, लेकिन यह अप्रासंगिक है)
पुनश्च: शायद मैं इस मुद्दे का एक बुरा समझ कर रहा हूँ और मैं सही सवाल नहीं पूछ रहा हूँ, इसलिए बाहर बिंदु के लिए स्वतंत्र महसूस दृष्टिकोण मैं हेवन ' टी माना जाता है।
[प्रश्न मैंने उद्धृत किया है] (http://stackoverflow.com/questions/10916997/alt-tab-from-fullscreen-sdl), मेरी राय में, वास्तव में एक डुप्लिकेट नहीं है, क्योंकि मैं नहीं देख रहा हूं विशेष रूप से एक एसडीएल समाधान के लिए। एसडीएल केवल लाइब्रेरी है जिसका मैं उपयोग कर रहा हूं * अभी *। – darque
मैंने अभी एक्सएलआईबी एपीआई [XGrabPointer] (http://tronche.com/gui/x/xlib/input/XGrabPointer.html) फ़ंक्शन पर देखा था। तो जाहिर है, Xlib कीबोर्ड को पकड़ने के बिना * केवल * माउस को हथियाने के लिए पर्याप्त कार्यक्षमता है। – darque