anchor.diff:  ;;         (str:replace-all "_" "" (string-downcase result))
   ;;         result)))
   
  -;; (declaim (ftype (function (list &optional gdk:gdk-event) list) translate-modifiers))
  -;; (defun translate-modifiers (modifier-state &optional event)
  -;;   "Return list of modifiers fit for `keymap:make-key'.
  -;; See `gobject-gtk-browser's `modifier-translator' slot."
  -;;   (declare (ignore event))
  -;;   (let ((plist '(:control-mask "control"
  -;;                  :mod1-mask "meta"
  -;;                  :shift-mask "shift"
  -;;                  :super-mask "super"
  -;;                  :hyper-mask "hyper")))
  -;;     (delete nil (mapcar (lambda (mod) (getf plist mod)) modifier-state))))
  +(defun translate-modifiers (modifier-state &optional event)
  +  "Return list of modifiers fit for `keymap:make-key'.
  +See `gobject-gtk-browser's `modifier-translator' slot."
  +  (declare (ignore event))
  +  (let ((plist '(:control-mask "control"
  +                 :mod1-mask "meta"
  +                 :shift-mask "shift"
  +                 :super-mask "super"
  +                 :hyper-mask "hyper")))
  +    (delete nil (mapcar (lambda (mod) (getf plist mod)) modifier-state))))
   
   ;; (defun key-event-modifiers (key-event)
   ;;   (gdk:gdk-event-key-state key-event))
  
positive.code: ;;       (setf (slot-value *browser* 'web-context) 
  ;;             (make-instance 'webkit:webkit-web-context)))) ; TASK
  
  ;; (defmethod ffi-within-renderer-thread ((browser gobject-gtk-browser) thunk)
  ;;   (declare (ignore browser))
  ;;   (funcall thunk))
  
  (defmacro define-ffi-method (name args &body body)
    (let* ((docstring (when (stringp (first body))
  
negative.code: ;; (defun scroll-event-modifiers (scroll-event)
  ;;   (gdk:gdk-event-scroll-state scroll-event))
  
  (defmethod printable-p ((window gobject-gtk-window) event)
    "Return the printable value of EVENT."
    ;; Generate the result of the current keypress into a dummy
    ;; (invisible) key-string-buffer so that we can collect the printed
    ;; representation of composed keypress, such as dead keys.
    (gir:invoke ((key-string-buffer window) 'im-context-filter-keypress) event)
    (when (<= 1 (gir:invoke ((key-string-buffer window) 'get-text-length)))
       (prog1
           (match (gir:invoke ((key-string-buffer window) 'get-text))
             (" " "space")
             ("-" "hyphen")
             (character character))
         (gir:invoke ((key-string-buffer window) 'set-text) ""))))
  
  (define-ffi-method on-signal-key-press-event ((sender gobject-gtk-window) event)
    (let* ((event (gir::build-struct-ptr (gir:nget (gir-gdk *browser*) "EventKey") event))
           (keycode (gir:field event "hardware_keycode"))
           (keyval (gir:field event "keyval"))
           (keyval-name (gir:invoke ((gir-gdk *browser*) 'keyval-name) keyval))
           (character (gir:invoke ((gir-gdk *browser*) 'keyval-to-unicode) keyval))
           (printable-value (printable-p sender event))
           ;; (key-string (or printable-value
           ;;                 (derive-key-string keyval-name character)))
           ;; (modifiers (funcall (modifier-translator *browser*)
           ;;                     (key-event-modifiers event)
           ;;                     event))
           )
      (print character)
      (print printable-value)
  
      ;; (if modifiers
      ;;     (log:debug key-string keycode character keyval-name modifiers)
      ;;     (log:debug key-string keycode character keyval-name))
      ;; (if key-string
      ;;     (progn
      ;;       (alex:appendf (key-stack sender)
      ;;                     (list (keymap:make-key :code keycode
      ;;                                            :value key-string
      ;;                                            :modifiers modifiers
      ;;                                            :status :pressed)))
      ;;       (funcall (input-dispatcher sender) event (active-buffer sender) sender printable-value))
      ;;     ;; Do not forward modifier-only to renderer.
      ;;     t)
      ))
  
  (define-ffi-method on-signal-key-release-event ((sender gobject-gtk-window) event)
    "Don't handle key release events."
    (declare (ignore event))
    (if (active-minibuffers sender) t nil))
  
  ;; (define-ffi-method on-signal-button-press-event ((sender gobject-gtk-buffer) event)
  ;;   (let* ((button (gdk:gdk-event-button-button event))
  