Мне это надоело, и я не поленился залезть в исходники StarDict, чтобы сделать так, как мне хочется. :)
В результате получился вот такой вот небольшой патч:
diff -rc stardict-3.0.1/src/selection.cpp stardict-3.0.1.patched/src/selection.cpp
*** stardict-3.0.1/src/selection.cpp 2007-09-04 12:47:10.000000000 +0400
--- stardict-3.0.1.patched/src/selection.cpp 2009-11-18 20:03:40.000000000 +0300
***************
*** 179,185 ****
return;
}
! if (LastClipWord != sToken) { // not equal
LastClipWord = sToken;
if(bIsPureEnglish(sToken))
{
--- 179,201 ----
return;
}
!
!
! bool only_scan_while_modifier_key = conf->get_bool_at("dictionary/only_scan_while_modifier_key");
! bool scan = false;
!
! if(only_scan_while_modifier_key)
! {
! if(!gpAppFrame->oFloatWin.FloatWindow || !GTK_WIDGET_VISIBLE(gpAppFrame->oFloatWin.FloatWindow))
! scan = true;
! }
! else
! {
! if(LastClipWord != sToken)
! scan = true;
! }
!
! if (scan) {
LastClipWord = sToken;
if(bIsPureEnglish(sToken))
{
После применения данного патча StarDict будет отображать плавающее окошко вне зависимости от того, перевод какого слова отображался в прошлый раз.
Пользователи Ubuntu 9.10 могут установить уже пропатченную версию из моего PPA:
$ sudo add-apt-repository ppa:konishchevdmitry/public
$ sudo apt-get update
$ sudo apt-get install stardict-floatwin-fix
P.S.: Данный патч исправляет ошибку только в том случае, если у вас в настройках отмечен флажок "Only scan while the modifier key is being pressed". Другим режимом работы я не пользуюсь, поэтому лезть глубже в код и исправлять его было как-то лень. :)
9 комментариев:
Спаибо огромное. Поставил -- работает. А раньше и правда раздражала пропажа окна с переводом.
Есть еще совместимый словарь GoldenDict.
+1 за GoldenDict. есть в репах 9.10, удобнее чем stardict и работает шустрее
С ума сойти. А как-же значок со стрелкой который появляется на всплывающем окне и выполняет функцию "Запереть всплывающее окно"?
Отправьте пожалуйста этот патчик разработчика самого StarDict
> Есть еще совместимый словарь GoldenDict.
Спасибо, почему-то не знал о его существовании. Да, достойный конкурент StarDict. Правда написан на Qt, что для меня является недостатком.
> С ума сойти. А как-же значок со стрелкой который появляется на всплывающем окне и выполняет функцию "Запереть всплывающее окно"?
Да нет, проблема в другом: вот читаю я какой-то текст, встретилось мне незнакомое слово - я нажимаю на горячую клавишу, смотрю перевод и продолжаю читать дальше, затем мне опять встречается это слово, но перевод я уже забыл :) - приходится сначала выделять другое слово, потом это, и нажимать на горячую клавишу. Или просто если случайно отвел мышку в сторону - опять-таки приходится совершать эти ненужные действия...
> Отправьте пожалуйста этот патчик разработчика самого StarDict
Отправил.
>приходится сначала выделять другое слово,
>потом это, и нажимать на горячую клавишу
Теперь понял о чем речь. Просто были как-то акцентированы слова вроде "раздражающая пропажа окна с переводом", хотя проблема не в пропаже, а в "не-появлении".
Прочитав статью, в очередной раз увидел ссылку на GoldenDict. И решил попробовать, весь процесс установки (включая добавление словарей) - 5 минут. И понял для себя, что больше не буду пользоваться StarDict-ом, т.к. форматов поддерживает меньше, и выглядит не лучше, и неудобства подобные описанным выше утомляют. Кстати, то, что пользуюсь KDE, ключевой роли не играет.
Спасибо за патчик.
Ради этого перешел обратно с golden на star
У голден не видал консолькой версии
да и шевелится всплывающее окно быстрее чем у золотого :)
Хотя мой DE == KDE
Отправить комментарий