* src/funcrequest.h: split UI enum into MENU and TOOLBAR
* src/lyxfunc.C (getStatus): disable menu entries that need a
buffer when window does not have focus (bug 1720)
(dispatch, sendDispatchMessage): properly redraw toolbar after each
action (bug 2877).
* src/frontends/Toolbars.C (layoutSelected):
* src/MenuBackend.C (MenuItem):
* src/ToolbarBackend.C (add): adapt to FuncRequest change.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15825
a592a061-630c-0410-9148-
cb99ea01b6c8
FuncRequest const & func, bool optional)
: kind_(kind), label_(label), func_(func), optional_(optional)
{
FuncRequest const & func, bool optional)
: kind_(kind), label_(label), func_(func), optional_(optional)
{
- func_.origin = FuncRequest::UI;
+ func_.origin = FuncRequest::MENU;
FuncRequest const & func, docstring const & tooltip)
{
tb.items.push_back(make_pair(func, tooltip));
FuncRequest const & func, docstring const & tooltip)
{
tb.items.push_back(make_pair(func, tooltip));
- tb.items.back().first.origin = FuncRequest::UI;
+ tb.items.back().first.origin = FuncRequest::TOOLBAR;
// Yes, the lyx::to_utf8(_()) is correct
if (lyx::to_utf8(_(itname)) == name) {
FuncRequest const func(LFUN_LAYOUT, itname,
// Yes, the lyx::to_utf8(_()) is correct
if (lyx::to_utf8(_(itname)) == name) {
FuncRequest const func(LFUN_LAYOUT, itname,
lv.dispatch(func);
return;
}
lv.dispatch(func);
return;
}
/// Where the request came from
enum Origin {
INTERNAL,
/// Where the request came from
enum Origin {
INTERNAL,
- UI, // The menu or the toolbar
+ MENU, // A menu entry
+ TOOLBAR, // A toolbar icon
KEYBOARD, // a keyboard binding
COMMANDBUFFER
};
KEYBOARD, // a keyboard binding
COMMANDBUFFER
};
http://bugzilla.lyx.org/show_bug.cgi?id=1941#c4
*/
Buffer * buf;
http://bugzilla.lyx.org/show_bug.cgi?id=1941#c4
*/
Buffer * buf;
- if (cmd.origin == FuncRequest::UI && !lyx_view_->hasFocus())
+ if (cmd.origin == FuncRequest::MENU && !lyx_view_->hasFocus())
buf = 0;
else
buf = lyx_view_->buffer();
buf = 0;
else
buf = lyx_view_->buffer();
+ if (!quitting) {
+ lyx_view_->updateMenubar();
+ lyx_view_->updateToolbars();
// FIXME UNICODE: _() does not support anything but ascii.
// Do we need a to_ascii() method?
sendDispatchMessage(getMessage(), cmd);
// FIXME UNICODE: _() does not support anything but ascii.
// Do we need a to_ascii() method?
sendDispatchMessage(getMessage(), cmd);
}
void LyXFunc::sendDispatchMessage(docstring const & msg, FuncRequest const & cmd)
{
}
void LyXFunc::sendDispatchMessage(docstring const & msg, FuncRequest const & cmd)
{
- /* When an action did not originate from the UI/kbd, it makes
- * sense to avoid updating the GUI. It turns out that this
- * fixes bug 1941, for reasons that are described here:
- * http://bugzilla.lyx.org/show_bug.cgi?id=1941#c4
- */
- if (cmd.origin != FuncRequest::INTERNAL) {
- lyx_view_->updateMenubar();
- lyx_view_->updateToolbars();
- }
-
- const bool verbose = (cmd.origin == FuncRequest::UI
+ const bool verbose = (cmd.origin == FuncRequest::MENU
+ || cmd.origin == FuncRequest::TOOLBAR
|| cmd.origin == FuncRequest::COMMANDBUFFER);
if (cmd.action == LFUN_SELF_INSERT || !verbose) {
|| cmd.origin == FuncRequest::COMMANDBUFFER);
if (cmd.action == LFUN_SELF_INSERT || !verbose) {