When the document language is changed, update cursor language too

Actually, the change is done only if the cursor language was the
document language already.

This fixes an trivial but annoying problem: create a new file (in
English), change language to your favourite language, then start to
write. Before this fix, the words come out in English, which does not
make sense.

Fixes bug #9586.
This commit is contained in:
Jean-Marc Lasgouttes 2015-06-03 12:14:30 +02:00
parent 0db513c4d6
commit 25913aaac6

View File

@ -31,6 +31,7 @@
#include "BufferView.h"
#include "Color.h"
#include "ColorCache.h"
#include "Cursor.h"
#include "Encoding.h"
#include "FloatPlacement.h"
#include "Format.h"
@ -2604,9 +2605,16 @@ void GuiDocument::applyView()
bp_.quotes_language = (InsetQuotes::QuoteLanguage) langModule->quoteStyleCO->itemData(
langModule->quoteStyleCO->currentIndex()).toInt();
QString const lang = langModule->languageCO->itemData(
QString const langname = langModule->languageCO->itemData(
langModule->languageCO->currentIndex()).toString();
bp_.language = lyx::languages.getLanguage(fromqstr(lang));
Language const * newlang = lyx::languages.getLanguage(fromqstr(langname));
Cursor & cur = const_cast<BufferView *>(bufferview())->cursor();
// If current cursor language was the document language, then update it too.
if (cur.current_font.language() == bp_.language) {
cur.current_font.setLanguage(newlang);
cur.real_current_font.setLanguage(newlang);
}
bp_.language = newlang;
QString const pack = langModule->languagePackageCO->itemData(
langModule->languagePackageCO->currentIndex()).toString();