diff --git a/qt/aqt/reviewer.py b/qt/aqt/reviewer.py
index c63c9a668..15045dc59 100644
--- a/qt/aqt/reviewer.py
+++ b/qt/aqt/reviewer.py
@@ -201,9 +201,7 @@ class Reviewer:
self._drawFlag()
self._drawMark()
self._showAnswerButton()
- # if we have a type answer field, focus main web
- if self.typeCorrect:
- self.mw.web.setFocus()
+ self.mw.web.setFocus()
# user hook
gui_hooks.reviewer_did_show_question(c)
@@ -242,6 +240,7 @@ class Reviewer:
# render and update bottom
self.web.eval("_showAnswer(%s);" % json.dumps(a))
self._showEaseButtons()
+ self.mw.web.setFocus()
# user hook
gui_hooks.reviewer_did_show_answer(c)
@@ -574,11 +573,9 @@ time = %(time)d;
)
def _showAnswerButton(self) -> None:
- if not self.typeCorrect:
- self.bottom.web.setFocus()
middle = """
%s
-""" % (
+""" % (
self._remaining(),
_("Shortcut key: %s") % _("Space"),
_("Show Answer"),
@@ -596,7 +593,6 @@ time = %(time)d;
self.bottom.web.adjustHeightToFit()
def _showEaseButtons(self) -> None:
- self.bottom.web.setFocus()
middle = self._answerButtons()
self.bottom.web.eval("showAnswer(%s);" % json.dumps(middle))
@@ -648,7 +644,7 @@ time = %(time)d;
def but(i, label):
if i == default:
- extra = "id=defease"
+ extra = """id="defease" class="focus" """
else:
extra = ""
due = self._buttonTime(i)
diff --git a/qt/ts/scss/reviewer-bottom.scss b/qt/ts/scss/reviewer-bottom.scss
index 92c9d4d57..8d4788f86 100644
--- a/qt/ts/scss/reviewer-bottom.scss
+++ b/qt/ts/scss/reviewer-bottom.scss
@@ -33,7 +33,21 @@ button {
white-space: nowrap;
}
-#ansbut { margin-bottom: 1em; }
+#ansbut {
+ margin-bottom: 1em;
+}
+
+.focus {
+ outline: 5px auto rgba(0, 103, 244, 0.247);
+
+ #innertable:focus-within & {
+ outline: unset;
+
+ &:focus {
+ outline: 5px auto rgba(0, 103, 244, 0.247);
+ }
+ }
+}
.nobold {
font-weight: normal;
diff --git a/qt/ts/src/reviewer-bottom.ts b/qt/ts/src/reviewer-bottom.ts
index 8bb5e014f..5b8219bbb 100644
--- a/qt/ts/src/reviewer-bottom.ts
+++ b/qt/ts/src/reviewer-bottom.ts
@@ -36,14 +36,12 @@ let updateTime = function () {
function showQuestion(txt, maxTime_) {
// much faster than jquery's .html()
$("#middle")[0].innerHTML = txt;
- $("#ansbut").focus();
time = 0;
maxTime = maxTime_;
}
function showAnswer(txt) {
$("#middle")[0].innerHTML = txt;
- $("#defease").focus();
}
function selectedAnswerButton() {