I trie adding these methods:
```
int Sudoku::handle(int event) {
if (event == FL_KEYBOARD) {
// ...
}
return Fl_Widget::handle(event);
}
```
The result is that the _only_ keyboard events that are
recognized are Home, End, PageUp, PageDown: none of the normal
arrow key and numbers etc., nor the menus work anymore!
int Sudoku::handle(int event) {
if (event == FL_SHORTCUT) { // needs FL_SHORTCUT
int j, k;
if (Fl::event_key(FL_Home)) {
find_focus_cell(&j, &k);
printf("home %d %d\n", j, k);
grid_cells_[j][0]->take_focus(); // ADDED
return 1;
} else if (Fl::event_key(FL_End)) {
find_focus_cell(&j, &k);
printf("end %d %d\n", j, k);
grid_cells_[j][8]->take_focus(); // ADDED
return 1;
} else if (Fl::event_key(FL_Page_Down)) {
find_focus_cell(&j, &k);
printf("pg down %d %d\n", j, k);
grid_cells_[8][k]->take_focus(); // ADDED
return 1;
} else if (Fl::event_key(FL_Page_Up)) {
find_focus_cell(&j, &k);
printf("pg up %d %d\n", j, k);
grid_cells_[0][k]->take_focus(); // ADDED
return 1;
}
}
return Fl_Double_Window::handle(event); // needs Fl_[Double_]Window::
}