- for (DocIterator dit = from ; dit != to ; dit.forwardPos()) {
- // Copied and adapted from isLetter() in ControlSpellChecker
- if (dit.inTexted()
- && dit.pos() != dit.lastpos()
- && dit.paragraph().isLetter(dit.pos())
- && !dit.paragraph().isDeleted(dit.pos())) {
- if (!inword) {
+ for (DocIterator dit = from ; dit != to ; ) {
+ if (!dit.inTexted()) {
+ dit.forwardPos();
+ continue;
+ }
+
+ Paragraph const & par = dit.paragraph();
+ pos_type const pos = dit.pos();
+
+ // Copied and adapted from isWordSeparator() in Paragraph
+ if (pos != dit.lastpos() && !par.isDeleted(pos)) {
+ Inset const * ins = par.getInset(pos);
+ if (ins && !ins->producesOutput()) {
+ //skip this inset
+ ++dit.top().pos();
+ continue;
+ }
+ if (par.isWordSeparator(pos))
+ inword = false;
+ else if (!inword) {