Arabelleğimin görünür / odaklanmış durumunu nasıl bilebilirim?


16

Ben dışarıdan bir süreç konuşan bir uzantı yazıyorum, bu yüzden arabellek odaklanmadığında 'hey whats up' istekleri miktarını azaltmak için verilir.

Peki, tanımanın en iyi yolu nedir:

  1. Arabelleğim görünür ve odaklandığında
  2. Arabelleğim görünür ancak odaklanmadığında
  3. Arabelleğim ne görünür ne de odaklandığında

Açıklayıcı soru: Bu özellikleri " dış süreç nasıl tanır?"
Dan

@Bence boş bir zamanlayıcı olarak çalıştırılan bir işlevi var ve bu işlevden bilmesi gerekiyor.
Malabarba

Yanıtlar:


24
  • window-buffer geçerli bir pencere tarafından görüntülenen arabelleği döndürür.

  • get-buffer-windowaksine, o anda verilen arabelleği görüntüleyen bir pencere döndürür (ya nilda böyle bir pencere yoksa; birden çok karenizin olduğu durumlarda nasıl davranacağını söylemek için isteğe bağlı 2. bağımsız değişkenle oynayın).

Bu iki içerikle, tüm durumlarınızı ayırt edebilmelisiniz:

;; 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")))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.