`return Widget::nextFocusedWidget(dir, this);` could be moved out of `if else`