Переключение раскладок - разные кавычки.

Автор makc, 21 января 2011, 14:45

0 Пользователи и 1 гость просматривают эту тему.

bormant

Можно поискать: http://svn.services.openoffice.org/opengrok/.
С ходу интересующего момента не нашёл.
Автору на яд. Поддержать форум.

ape

#16
LibO-3.3.0rs4_Win_x86: всё аналогично. После переключения раскладки клавиатуры для получения "правильных" кавычек необходимо в строке состояния переключить язык на тот, кавычки которого хотите увидеть же, что и у клавиатуры.


bormant

Не уверен, скорее нужно анализировать откуда их зовут, а ещё точнее, где в зависимости от языка инициируется обработка кавычек.
Если окажется, что кавычки проверяются слишком рано и эту проверку можно переместить позже, либо проверку языка сделать чуть раньше (ведь цифры меняют язык) -- может получиться патч.
Причём код, в конечном итоге, специфичен для Windows.
Автору на яд. Поддержать форум.

Рыбка Рио

#19
Там есть такой код:
// get keyboard language
    83 String aKeyboardLang;
    84 LanguageType nLang = LANGUAGE_DONTKNOW;
    85
    86 Window* pWin = rEditView.GetWindow();
    87 if(pWin)
    88 nLang = pWin->GetInputLanguage();
    89 if (nLang != LANGUAGE_DONTKNOW && nLang != LANGUAGE_SYSTEM)
    90 aKeyboardLang = aLangTable.GetString( nLang );

Этот код в строке 88 (т.е. GetInputLanguage())обращается к коду Cross Reference: /Current (trunk)/vcl/win/source/window/salframe.cxx
(этот код зависит от системы в папке /vcl/win - для windows; в папке /vcl/aqua - Mac OS X и т.д.)

Там есть такой код:
static void ImplUpdateInputLang( WinSalFrame* pFrame )
  3608 {
  3609     BOOL bLanguageChange = FALSE;
  3610     UINT nLang = LOWORD( GetKeyboardLayout( 0 ) );
  3611     if ( nLang && nLang != pFrame->mnInputLang )
  3612     {
  3613         // keep input lang up-to-date
  3614         pFrame->mnInputLang = nLang;
  3615         bLanguageChange = TRUE;
  3616     }
  3617
  3618     // If we are on Windows NT we use Unicode FrameProcs and so we
  3619     // get Unicode charcodes directly from Windows
  3620     // no need to set up a code page
  3621     return;
  3622 }
Кажется это то что нужно?
ubuntu 12.04 + LibO3.6.0

ape

При отключённой проверке орфографии кавычки вообще идут парные и не зависят от языка ввода клавиатуры. Можно ли эту функцию где-нибудь включить (как в МСО)?

Рыбка Рио

У меня не зависит от того включена ли проверка орфографии (Windows XP SP2 OOo 3.3.0rc3/LibO 3.3.0 rc3), форма кавычек зависит только от языка. Как вы её отключили? Может вы отключили и правило автозамены?
ubuntu 12.04 + LibO3.6.0

dr.Faust

Просто автозамена ненужна. Надо её выключить по дефолту или просто выключить в ней все правила - житья от неё нет.
Кстати, а в МСО как?
Свобода информации - свобода личности!

ape

#23
Цитата: dr.Faust от 23 января 2011, 01:14
Кстати, а в МСО как?
См. скриншоты МСО-11(2003); "галочки перед языком" - на доступных для проверки; значения - "по-умолчанию". Ещё и такая "приблуда" есть. (Это я к отсутствию значка для "Буквицы").
11:20_Кавычки нашёл по аналогии, но проблема, когда (в какой момент) после смены языка ввода меняются настройки автозамены (вступают правила автозамены нового языка), осталась.  

[вложение удалено Администратором]