2012-01-28 23 views
5

मैं निम्नलिखित करना चाहता हूं: एक पूर्णस्क्रीन बनाएं, हमेशा एक वेबस्किट विजेट के साथ एक शीर्षस्क्रीन बनाएं, जिसमें कुछ HTML प्रदर्शित होता है, लेकिन एक बॉक्स के साथ यह पूरी तरह पारदर्शी है, ताकि नीचे दी गई खिड़कियां दिखाई दे सकें। (यह संभव हो रहा है: Is it possible to render web content over a clear background using WebKit?)बॉक्स के साथ pygtk खिड़की जो सभी एक्स (माउस) घटनाओं को अनदेखा करता है (उन्हें पास करता है)

क्या मैं करना चाहते हैं, (कभी कभी) सभी माउस की घटनाओं है कि मेरे आवेदन की खिड़की से नीचे खिड़कियों के नीचे पारदर्शी बॉक्स में पाए जाते हैं पारित करने के लिए है, इसलिए है कि मैं उनके साथ सामान्य रूप से बातचीत कर सकते हैं । तो न केवल दृष्टिहीन पारदर्शी, बल्कि माउस घटनाओं के लिए भी पारदर्शी।

सैद्धांतिक रूप से, मुझे लगता है कि मैं उन सभी घटनाओं को पकड़ सकता हूं जिनमें मुझे एक पीईजीटीके इवेंटबॉक्स के साथ दिलचस्पी है, सीधे मेरे नीचे खिड़की के साथ खिड़की पाएं, और इस घटना को पायथन-एक्सलिब के साथ पास करें।

यह बिल्कुल सबसे सुरुचिपूर्ण समाधान की तरह प्रतीत नहीं होता है; क्या कोई बेहतर तरीका है?

उत्तर

5

घटनाओं को अग्रेषित करना ठीक से काम नहीं करेगा जैसा आपने अनुमान लगाया था; यह कई दौड़ की स्थिति बनाता है, और कुछ ऐप्स XSendEvent से सामान को अनदेखा कर देंगे।

आप क्या कर सकते हैं इनपुट आकार मुखौटा सेट है। http://www.x.org/releases/current/doc/xextproto/shape.html देखें और फिर पर /usr/include/X11/extensions/Xfixes.h पर देखें जो आपको एक प्रकार "प्रकार" निर्दिष्ट करने देता है (यहां आप ShapeInput चाहते हैं)।

कुछ की तरह:

XRectangle rect; 
XserverRegion region = XFixesCreateRegion(display, &rect, 1); 
XFixesSetWindowShapeRegion(display, window, ShapeInput, 0, 0, region); 
XFixesDestroyRegion(display, region); 

ShapeInput निर्धारित करने की क्षमता "केवल" 5-6 साल तो पुराने यदि आप X11 की वास्तव में भद्दा पुराने संस्करणों के बारे में परवाह, तुम hosed हो सकता है।

+0

आह, धन्यवाद हावोक! – Rumex

+0

इसके अलावा, सही शब्दों को गुगल करने पर, मैं कुछ इसी तरह से आया: http://stackoverflow.com/questions/4326534/x11-xlib-create-glasspane- विन्डो – Rumex