      (interactive "e")
      (with-selected-window (posn-window (event-start event))
        ,@body)))
-
-(defun my-make-mode-line-mouse-map (&rest args)
-  (let ((map (make-sparse-keymap)))
-    (while args
-      (define-key map (vector 'mode-line (pop args)) (pop args)))
-    map))
 
 (defmacro def-modeline-var (name &rest body)
   `(progn

	    'mouse-face 'mode-line-highlight
	    'help-echo "mouse-1: goto line")))))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Put it all  together


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Buffer modified
(def-with-selected-window my-save-buffer ()
  (save-buffer))

(defvar my-mode-line-buffer-modified-p-keymap
  (let ((map (make-sparse-keymap)))
    (define-key map [mode-line mouse-1] 'my-save-buffer)
    (define-key map [mode-line down-mouse-1] 'ignore)
    (define-key map [mode-line S-mouse-1] 'my-unsaved-changes)
    map))
