anchor.diff:                                            (gir:nget gir-gtk "Orientation" :vertical) 0))
         (setf status-container (gir:invoke (gir-gtk "Box" 'new)
                                            (gir:nget gir-gtk "Orientation" :vertical) 0))
  +      ;; Create a pseudo text entry widget to render special keys
  +      (setf key-string-buffer (gir:invoke (gir-gtk "Entry" 'new)))
         ;; Create a temporary active buffer
         (setf active-buffer (make-dummy-buffer))
         ;; Add the views to the box layout and to the window
  
positive.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 the dummy
  ;;   ;; key-string-buffer (a Gobject-GtkEntry that's never shown on screen) so that we
  ;;   ;; can collect the printed representation of composed keypress, such as dead
  ;;   ;; keys.
  ;;   (gobject-gtk:gobject-gtk-entry-im-context-filter-keypress (key-string-buffer window) event)
  ;;   (when (<= 1 (gobject-gtk:gobject-gtk-entry-text-length (key-string-buffer window)))
  ;;     (prog1
  ;;         (match (gobject-gtk:gobject-gtk-entry-text (key-string-buffer window))
  ;;           ;; Special cases: these characters are not supported as is for keyspecs.
  ;;           ;; See `self-insert' for the reverse translation.
  ;;           (" " "space")
  ;;           ("-" "hyphen")
  ;;           (character character))
  ;;       (setf (gobject-gtk:gobject-gtk-entry-text (key-string-buffer window)) ""))))
  
  (define-ffi-method on-signal-key-press-event ((sender gobject-gtk-window) event)
    (print "PRESS EVENT")
    ;; (let* ((keycode (gdk:gdk-event-key-hardware-keycode event))
    ;;        (keyval (gdk:gdk-event-key-keyval event))
    ;;        (keyval-name (gdk:gdk-keyval-name keyval))
    ;;        (character (gdk:gdk-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)))
    ;;   (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)
    "We don't handle key release events."
    (declare (ignore event))
    (if (active-minibuffers sender)
        ;; Do not forward release event when minibuffer is up.
        t
        ;; Forward release event to the web view.
        nil))
  
  ;; (define-ffi-method on-signal-button-press-event ((sender gobject-gtk-buffer) event)
  ;;   (let* ((button (gdk:gdk-event-button-button event))
  
negative.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))
  