X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfunc.C;h=b74ad0e369fee3580d5d2dcd0d38b8762fa5a2a8;hb=5d3718cad2a2ef6a4d6a495054ab0705ba27b6b5;hp=df11e09024ccad5b34af39db75f6cfe47880216d;hpb=2b2c661f84feaf3d84eca173353fc4245af361cd;p=lyx.git diff --git a/src/lyxfunc.C b/src/lyxfunc.C index df11e09024..b74ad0e369 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -10,10 +10,6 @@ #include -#ifdef __GNUG__ -#pragma implementation -#endif - #include "lyxfunc.h" #include "version.h" #include "kbmap.h" @@ -124,7 +120,7 @@ void LyXFunc::moveCursorUpdate(bool flag, bool selecting) { if (selecting || TEXT(flag)->selection.mark()) { TEXT(flag)->setSelection(view()); - if (TEXT(flag)->bv_owner) + if (TEXT(flag)->isTopLevel()) view()->toggleToggle(); } view()->update(TEXT(flag), BufferView::SELECT|BufferView::FITCUR); @@ -221,7 +217,7 @@ void LyXFunc::processKeySym(LyXKeySymPtr keysym, owner->message(keyseq.print()); } - + // Maybe user can only reach the key via holding down shift. // Let's see. But only if shift is the only modifier if (action == LFUN_UNKNOWN_ACTION && state == key_modifier::shift) { @@ -229,7 +225,7 @@ void LyXFunc::processKeySym(LyXKeySymPtr keysym, action = keyseq.addkey(keysym, key_modifier::none); lyxerr[Debug::KEY] << "Action now " << action << endl; } - + if (action == LFUN_UNKNOWN_ACTION) { // Hmm, we didn't match any of the keysequences. See // if it's normal insertable text not already covered @@ -286,7 +282,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const default: flag |= lyx_gui::getStatus(ev); } - + if (flag.unknown()) { setStatusMessage(N_("Unknown action")); return flag; @@ -327,7 +323,8 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const || lyxrc.print_command == "none"; break; case LFUN_EXPORT: - disable = !Exporter::IsExportable(buf, ev.argument); + disable = ev.argument != "custom" + && !Exporter::IsExportable(buf, ev.argument); break; case LFUN_UNDO: disable = buf->undostack.empty(); @@ -461,6 +458,13 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const disable = !view()-> isSavedPosition(strToUnsignedInt(ev.argument)); break; + case LFUN_MERGE_CHANGES: + case LFUN_ACCEPT_CHANGE: + case LFUN_REJECT_CHANGE: + case LFUN_ACCEPT_ALL_CHANGES: + case LFUN_REJECT_ALL_CHANGES: + disable = !buf->params.tracking_changes; + break; case LFUN_INSET_TOGGLE: { LyXText * lt = view()->getLyXText(); disable = !(isEditableInset(lt->getInset()) @@ -623,6 +627,9 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const if (ev.argument == buf->fileName()) flag.setOnOff(true); break; + case LFUN_TRACK_CHANGES: + flag.setOnOff(buf->params.tracking_changes); + break; default: break; } @@ -1132,12 +1139,10 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) setErrorMessage(N_("Missing argument")); break; } - owner->prohibitInput(); string const fname = i18nLibFileSearch("doc", arg, "lyx"); if (fname.empty()) { lyxerr << "LyX: unable to find documentation file `" << arg << "'. Bad installation?" << endl; - owner->allowInput(); break; } ostringstream str; @@ -1150,7 +1155,6 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose) #endif owner->message(STRCONV(str.str())); view()->buffer(bufferlist.loadLyXFile(fname, false)); - owner->allowInput(); break; }