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 1d0d10eaa7
commit b18fff0caa
2 changed files with 12 additions and 2 deletions

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"
@ -2593,9 +2594,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();

View File

@ -68,6 +68,8 @@ What's new
- Fix automatic insertion of longtable captions (bug 9692).
- Fix setting of nested minipage via the dialog (bug 8716).
- When the document language is changed, update cursor language too (bug 9586).
* INTERNALS