string const & mailer_name)
: p_(p),
mailer_name_(mailer_name),
- mouse_hover_(false),
- updateButtonLabel_(true)
+ mouse_hover_(false)
{}
void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
{
- if (updateButtonLabel_) {
- updateButtonLabel_ = false;
- button_.update(screenLabel(), editable() != NOT_EDITABLE);
- }
+ button_.update(screenLabel(), editable() != NOT_EDITABLE);
button_.metrics(mi, dim);
}
void InsetCommand::setParams(InsetCommandParams const & p)
{
p_ = p;
- updateButtonLabel_ = true;
+ initView();
}
void InsetCommand::doDispatch(Cursor & cur, FuncRequest & cmd)
{
switch (cmd.action) {
- case LFUN_INSET_REFRESH:
- updateButtonLabel_ = true;
- break;
-
case LFUN_INSET_MODIFY: {
InsetCommandParams p(p_.code());
InsetCommandMailer::string2params(mailer_name_, to_utf8(cmd.argument()), p);
}
case LFUN_MOUSE_RELEASE: {
- if (!cur.selection())
+ if (!cur.selection() && cmd.button() != mouse_button::button3)
edit(cur, true);
break;
}
status.enabled(false);
return true;
// we handle these
- case LFUN_INSET_REFRESH:
case LFUN_INSET_MODIFY:
case LFUN_INSET_DIALOG_UPDATE:
status.enabled(true);
}
+docstring InsetCommand::contextMenu(BufferView const &, int, int) const
+{
+ return from_ascii("context-") + from_ascii(mailer_name_);
+}
+
+
void InsetCommand::edit(Cursor & cur, bool, EntryDirection)
{
if (!mailer_name_.empty())