2009-08-13 21 views
5

मैं एक धीमी नेटवर्क कनेक्शन में एक्स चला रहा हूं। जब मैं एक खिड़की दिखाई दे रहा हूं तो मैं कैसे बता सकता हूं? मुझे प्रतीक्षा करने की ज़रूरत है ताकि मैं दृश्यमान विंडो पर एक और ऑपरेशन कर सकूं।एक्स 11: खिड़की दिखाई देने तक प्रतीक्षा कर रहा है?

xterm -T foo & 
# how to flush the display, or wait until the window is visible? 
# polling the visibility would be acceptable as well 
xmovewindow foo 10 20 

अद्यतन: जिम लुईस के लिए धन्यवाद, यहां एक त्वरित खोल कार्य है जो चाल करता है।

function xwait() { 
    while ! xwininfo -name $1|grep 'Map State: IsViewable';do sleep 1;done 
} 
xterm -T foo & 
xwait foo 
xmovewindow foo 10 20 
+1

आईआईआरसी, सोलारिस के पास 'टूलवाइट' नाम के साथ एक कमांड है जो इसे कम या ज्यादा करने का प्रयास करता है। हालांकि, आईस्ट्रैस्ट ने पाया कि जब बच्चे की प्रक्रिया ने खिड़की बनाई, तो यह आवश्यक नहीं था कि यह प्रदर्शित हो। –

उत्तर

6

शायद आप जानना चाहते हैं कि दूरस्थ एक्स सर्वर ने आपके एप्लिकेशन की मुख्य विंडो मैप की है। Xwininfo कमांड आपको एक्स सर्वर से विंडो नाम से पूछने देगा - मुझे लगता है कि यह मानक X11 इंस्टॉल का हिस्सा है। लेकिन आपको खुद को मतदान करना होगा, "मैप स्टेट" संपत्ति वापस आने तक कमांड को दोबारा करना होगा "IsViewable"

जोनाथन लेफ्लर ने सूर्य की टूलवाइट उपयोगिता (दस्तावेज़ीकरण here) का भी उल्लेख किया। टूलवाइट एक प्रक्रिया शुरू करता है (इस मामले में, आपके xterm कमांड), और जब एप्लिकेशन ने शीर्ष-स्तरीय विंडो मैप की है तो लौटाता है ... यह आपके लिए मतदान करता है। एक पैकेज है जो www.ibiblio.org (here) पर X11/xutils निर्देशिका में टूलवेट का लिनक्स क्लोन होने का दावा करता है।

टूलवाइट ओपनविंडोज़ पर सभी तरह से वापस आता है - अब यह पुराना स्कूल एक्स विंडो प्रोग्रामिंग, आदमी है! मेरे सामने 1 99 4 का एक सोलारिस मैन पेज है, जिसमें कहा गया है "ओपनविंडोज पर्यावरण को अब भविष्य में रिलीज में समर्थित नहीं किया जा सकता है। आप सीडीई, सामान्य डेस्कटॉप पर्यावरण में माइग्रेट करना चाहते हैं ..."

+0

बस मुझे जो चाहिए, धन्यवाद! और ओपनविंडोज़, जो मुझे वापस ले जाता है ... :-) –

संबंधित मुद्दे