return;
LyXText * text = bv_->getLyXText();
- if (text->real_current_font.isRightToLeft()) {
+ if (text->real_current_font.isRightToLeft()
+ && !(bv_->theLockingInset()
+ && bv_->theLockingInset()->lyxCode()== Inset::ERT_CODE))
+ {
if (owner_->getIntl()->keymap == Intl::PRIMARY)
owner_->getIntl()->KeyMapSec();
} else {
+2002-05-05 Dekel Tsur <dekelts@tau.ac.il>
+
+ * paragraph.C (isRightToLeftPar): Return false for a paragraph
+ inside insetERT.
+
+ * text.C (computeBidiTables): No bidi in insetERT.
+
+ * BufferView_pimpl.C (setState): Fix keymap handling inside insetERT
+ in RTL documents.
+
2002-05-03 Lars Gullik Bjønnes <larsbj@birdstep.com>
* version.C.in: pre 5
bool Paragraph::isRightToLeftPar(BufferParams const & bparams) const
{
return lyxrc.rtl_support
- && getParLanguage(bparams)->RightToLeft();
+ && getParLanguage(bparams)->RightToLeft()
+ && !(inInset() && inInset()->owner() &&
+ inInset()->owner()->lyxCode() == Inset::ERT_CODE);
}
return;
}
+ Inset * inset = row->par()->inInset();
+ if (inset && inset->owner() &&
+ inset->owner()->lyxCode() == Inset::ERT_CODE) {
+ bidi_start = -1;
+ return;
+ }
+
bidi_start = row->pos();
bidi_end = rowLastPrintable(row);
pos_type stack[2];
bool const rtl_par =
- row->par()->getParLanguage(buf->params)->RightToLeft();
+ row->par()->isRightToLeftPar(buf->params);
int level = 0;
bool rtl = false;
bool rtl0 = false;