La pàgina respon
El render era la meitat visible del problema. L'entrada és la meitat que en fa un navegador, i fins que això no va entrar, rumb tenia una pàgina que podies mirar i fer scroll, i res més.
Ara el teclat va a la pàgina per defecte. Sembla obvi, i aquí hi ha tota la decisió: la barra d'adreces s'empassava totes les pulsacions perquè era l'única cosa que n'havia demanat mai cap. Ara només edita mentre té el focus —Cmd/Ctrl+L, o un clic a sobre—, amb Enter per carregar i Escape per tornar el focus. A tota la resta, les tecles es tradueixen a esdeveniments de teclat de Servo i s'entreguen al WebView. Escriure en un camp de text d'una pàgina funciona. Un quadre de cerca també, i és el primer cop que rumb es pot fer servir per buscar alguna cosa i no només per mostrar allò que ja havíem decidit carregar.
Els cursors van venir amb això. El WebViewDelegate de Servo té un hook notify_cursor_changed que es dispara amb la forma que vol per a allò que hi ha sota el punter; el mapem al CursorStyle de GPUI i ajustem el punter del sistema. Els enllaços semblen enllaços, el text sembla seleccionable. És molt poc codi per la diferència que fa en la sensació d'ús — abans, qualsevol part de la pàgina era igual d'inerta.
També la pantalla completa, amb F11 i un botó de la barra d'eines.
Res d'això no és difícil en el sentit de ser enginyós. És difícil en el sentit de ser delicat: el focus ha de tenir exactament un propietari, les coordenades del punter han de ser en píxels físics respecte als límits de l'element correcte, i cadascuna d'aquestes coses està malament en silenci fins que t'hi asseus una estona.