मेरे बफर की दृश्यमान / केंद्रित स्थिति को कैसे जानें?


16

मैं एक विस्तार लिख रहा हूं जो एक बाहरी प्रक्रिया से बात करता है, इसलिए यह 'हे व्हाट्स अप' अनुरोधों की मात्रा को कम करने के लिए दिया जाता है जब मेरा बफर केंद्रित नहीं होता है।

तो, पहचानने का सबसे अच्छा तरीका क्या है:

  1. जब मेरा बफर दिखाई और केंद्रित है
  2. जब मेरा बफर दिखाई दे रहा है लेकिन केंद्रित नहीं है
  3. जब मेरा बफर न तो दिखाई देता है और न ही केंद्रित होता है

स्पष्ट करने वाला प्रश्न: क्या आपका मतलब "इन विशेषताओं को बाहरी प्रक्रिया कैसे पहचानती है"?
दान

@ मुझे लगता है कि उनके पास एक समारोह है जो एक निष्क्रिय टाइमर के रूप में चलाया जा रहा है, और इस फ़ंक्शन से जानने की आवश्यकता है।
मालाबार

जवाबों:


24
  • window-buffer वर्तमान में दिए गए विंडो द्वारा प्रदर्शित बफर को लौटाता है।

  • get-buffer-window, इसके विपरीत, वर्तमान में दिए गए बफर को प्रदर्शित करने वाली एक विंडो लौटाती है (या nilअगर ऐसी कोई खिड़की नहीं है, तो वैकल्पिक 2 तर्क के साथ यह बताएं कि उन मामलों में कैसे व्यवहार करें, जहां आपके पास कई फ़्रेम हैं)।

इन दो सामग्रियों के साथ, आपको अपने सभी मामलों में भेदभाव करने में सक्षम होना चाहिए:

;; my-buffer is supposed to be the buffer you are looking for
(cond ((eq my-buffer (window-buffer (selected-window)))
       (message "Visible and focused"))
      ((get-buffer-window my-buffer)
       (message "Visible and unfocused")) 
      (t
       (message "Not visible")))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.