File: wm-delete.scm

package info (click to toggle)
elk 3.99.6-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 5,292 kB
  • ctags: 3,323
  • sloc: ansic: 22,255; sh: 8,333; lisp: 6,208; makefile: 1,143; awk: 154; cpp: 92
file content (23 lines) | stat: -rw-r--r-- 686 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;;; -*-Scheme-*-
;;;
;;; Demonstrate use of the WM_DELETE_WINDOW protocol.

(require 'xlib)

(let* ((dpy (open-display))
       (del-atom (intern-atom dpy 'WM_DELETE_WINDOW))
       (prot-atom (intern-atom dpy 'WM_PROTOCOLS))
       (win (create-window
	      'parent (display-root-window dpy)
	      'width 100 'height 100
	      'background-pixel (white-pixel dpy))))
  (set-wm-name! win '(fine))
  (set-wm-protocols! win (vector del-atom))
  (map-window win)
  (unwind-protect
    (handle-events dpy #t #f
      (client-message
	(lambda (event w type data)
	    (and (eq? type prot-atom) (vector? data)
		 (eq? (make-atom (vector-ref data 0)) del-atom)))))
    (close-display dpy)))