anchor.diff:           (character (gdk:gdk-keyval-to-unicode keyval))
            (printable-value (printable-p sender event))
            (key-string (or printable-value
  -                         (derive-keyval keyval-name)))
  +                         (derive-key-string keyval-name character)))
            (modifiers (funcall (modifier-translator *browser*)
                                (gdk:gdk-event-key-state event)
                                event)))
  
positive.code: (defmethod ipc-window-unfullscreen ((window gtk-window))
    (gtk:gtk-window-unfullscreen (gtk-object window)))
  
  (defun derive-keyval (keyval)
    "Return string representation of a keyval.
  Return nil when key must be discarded, e.g. for modifiers."
    (let ((result
  
negative.code:              nil)
              ((guard s (str:contains? "KP_" s))
               (str:replace-all "KP_" "keypad" s))
              ;; In most cases, return character and not keyval for punctuation.
              ;; For instance, C-[ is not printable but the keyval is "bracketleft".
              ;; Control characters like Escape, Left or BackSpace have a
              ;; non-printable character in the 0-#\space ASCII range, so we use the
              ;; keyval in this case.
              (_ (if (char< character #\space)
                     keyval
                     (string character))))))
      (if (< 1 (length result))
          (str:replace-all "_" "" (string-downcase result))
          result)))
  