मैं लिख रहा हूँ और लिनक्स पर ओपन आवेदन (उबंटू 11.10) Xlib (X11) का उपयोग कर। विंडो और पूर्णस्क्रीन मोड के बीच टॉगल को लागू करने का सबसे आसान तरीका क्या है?X11 पूर्ण स्क्रीन खिड़की (ओपन)
6
A
उत्तर
4
प्रोटोकॉल स्तर पर
, ग्राहक संदेश और फुलस्क्रीन राज्य ध्वज के साथ साथ _NET_WM_STATE संपत्ति देखते हैं। यह ईडब्ल्यूएमएच स्पेक में निर्दिष्ट है। यदि डब्ल्यूएम आधिकारिक संकेत के लिए समर्थन की रिपोर्ट नहीं करता है तो बोनस प्वाइंट्स के लिए आप मैन्युअल रूप से पूर्णस्क्रीन को कार्यान्वित करना चाहते हैं, ईडब्लूएमएच समर्थित है कि क्या समर्थित है जांचने का एक तरीका है। यदि आप नहीं चाहते हैं कि लोग गलती से पूर्णस्क्रीन छोड़ दें तो आप माउस पॉइंटर और/या कीबोर्ड को भी पकड़ना चाहेंगे।
या, निम्न स्तर एक्स gunge सीखने से बचने के लिए, बस एसडीएल या जीटीके या क्यूटी या कुछ का उपयोग करें और वे सब पूर्णस्क्रीन टॉगल करने के लिए एक सरल विधि कॉल होना चाहिए।
8
यहाँ what Havoc P suggested के एक कार्यान्वयन है, अगले व्यक्ति को बचाने के लिए प्रयास:
void fullscreen(Display* dpy, Window win) {
Atom atoms[2] = { XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False), None };
XChangeProperty(
dpy,
win,
XInternAtom(dpy, "_NET_WM_STATE", False),
XA_ATOM, 32, PropModeReplace, atoms, 1
);
}
कृपया बताएं कि बजाय सिर्फ जवाब – ArtB
उम देने का यह काम, जीसीसी जब मैं इस कोड का उपयोग करते शिकायत कर रहा है। 'XChangeProperty' मैनपेज के अनुसार, उपर्युक्त फ़ंक्शन का दूसरा-से-अंतिम तर्क नहीं होना चाहिए, परमाणुओं की सरणी नहीं? – fouric
'XChangeProperty' शायद गुमराह' लेता अहस्ताक्षरित चार * डेटा' लेकिन यह वास्तव में ऊपर स्निपेट में तरह परमाणुओं की एक सरणी के लिए सूचक करने के लिए है। जीसीसी की शिकायत क्या है? यदि आप इसे C++ कोड के रूप में संकलित करने का प्रयास कर रहे हैं, तो आपको '(हस्ताक्षरित char *) परमाणुओं जैसे स्पष्ट कलाकारों का उपयोग करने की आवश्यकता है। –