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() {