Improve status check of LFUN_BUFFER_ZOOM_{OUT,IN}

buffer-zoom-out can actually zoom in (by giving a positive number as
the argument), so it should only be disabled at the minimum zoom
level if it is indeed zooming out.

Similarly, buffer-zoom-in can zoom out, so it should be disabled if
the user is at the minimum zoom and it is called to zoom out.

This commit amends 8884c404.
This commit is contained in:
Scott Kostyshak 2016-07-19 01:44:39 -04:00
parent a9a45344b8
commit 03684ae05e

View File

@ -1993,15 +1993,19 @@ bool GuiView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
break;
case LFUN_BUFFER_ZOOM_OUT:
enable = doc_buffer && lyxrc.zoom > 10;
if (lyxrc.zoom <= 10)
case LFUN_BUFFER_ZOOM_IN: {
// only diff between these two is that the default for ZOOM_OUT
// is a neg. number
bool const neg_zoom =
convert<int>(cmd.argument()) < 0 ||
(cmd.action() == LFUN_BUFFER_ZOOM_OUT && cmd.argument().empty());
if (lyxrc.zoom <= 10 && neg_zoom) {
flag.message(_("Zoom level cannot be less than 10%."));
enable = false;
} else
enable = doc_buffer;
break;
case LFUN_BUFFER_ZOOM_IN:
enable = doc_buffer != 0;
break;
}
case LFUN_BUFFER_MOVE_NEXT:
case LFUN_BUFFER_MOVE_PREVIOUS:
// we do not cycle when moving