* of the cursor. Note we cannot do this inside
* dispatch() itself, because that's called recursively.
*/
- if (available()) {
- screen().prepareCursor();
- cursor_timeout.setTimeout(100);
- cursor_timeout.restart();
- cursor_timeout.setTimeout(400);
- }
+ if (available())
+ screen().showCursor(*bv_);
}
CoordCache backup;
std::swap(theCoords, backup);
-
+
// This, together with doneUpdating(), verifies (using
- // asserts) that screen redraw is not called from
+ // asserts) that screen redraw is not called from
// within itself.
theCoords.startUpdating();
case LFUN_FONT_STATE:
case LFUN_INSERT_LABEL:
case LFUN_BOOKMARK_SAVE:
- case LFUN_LABEL_GOTO:
case LFUN_GOTO_PARAGRAPH:
case LFUN_GOTOERROR:
case LFUN_GOTONOTE:
flag.enabled(true);
break;
+ case LFUN_LABEL_GOTO: {
+ flag.enabled(!cmd.argument.empty()
+ || getInsetByCode<InsetRef>(cursor_, InsetBase::REF_CODE));
+ break;
+ }
+
case LFUN_BOOKMARK_GOTO:
flag.enabled(isSavedPosition(convert<unsigned int>(cmd.argument)));
break;