mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-25 22:06:15 +00:00
Patch from Dekel: display text RTL in spellchecker and TOC
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@705 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
0ffa79de9d
commit
42a571c8c1
@ -1,3 +1,12 @@
|
|||||||
|
2000-04-27 Dekel Tsur <dekel@math.tau.ac.il>
|
||||||
|
|
||||||
|
* src/lyx_cb.C (TocUpdateCB): Reverse strings for Hebrew paragraphs
|
||||||
|
|
||||||
|
* src/spellchecker.C (RunSpellChecker): Reverse Hebrew strings in
|
||||||
|
the spellchecker popup.
|
||||||
|
|
||||||
|
* lib/lyxrc.example: Removed the \number_inset section
|
||||||
|
|
||||||
2000-04-28 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
2000-04-28 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
||||||
|
|
||||||
* src/insets/figinset.C (various): Use IsFileReadable() to make
|
* src/insets/figinset.C (various): Use IsFileReadable() to make
|
||||||
|
@ -631,13 +631,6 @@
|
|||||||
# Arabic). Default is false.
|
# Arabic). Default is false.
|
||||||
#\rtl true
|
#\rtl true
|
||||||
|
|
||||||
# If number_inset is set to "true", each time a digit key is pressed,
|
|
||||||
# LyX will automatically open a new number inset.
|
|
||||||
# If number_inset is set to "rtl", the above behavior will take place
|
|
||||||
# only when the cursor is on right-to-left text.
|
|
||||||
# Default is rtl.
|
|
||||||
#\number_inset true
|
|
||||||
|
|
||||||
# The latex command for loading the language package.
|
# The latex command for loading the language package.
|
||||||
# Default is \usepackage{babel}.
|
# Default is \usepackage{babel}.
|
||||||
#\language_package "\usepackage{omega}"
|
#\language_package "\usepackage{omega}"
|
||||||
|
@ -3226,6 +3226,7 @@ extern "C" void TocUpdateCB(FL_OBJECT *, long)
|
|||||||
|
|
||||||
line[pos] = ' ';
|
line[pos] = ' ';
|
||||||
++pos;
|
++pos;
|
||||||
|
int pos0 = pos;
|
||||||
|
|
||||||
/* now the contents */
|
/* now the contents */
|
||||||
LyXParagraph::size_type i = 0;
|
LyXParagraph::size_type i = 0;
|
||||||
@ -3237,6 +3238,8 @@ extern "C" void TocUpdateCB(FL_OBJECT *, long)
|
|||||||
}
|
}
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
if (par->isRightToLeftPar())
|
||||||
|
reverse(line+pos0,line+pos);
|
||||||
line[pos] = '\0';
|
line[pos] = '\0';
|
||||||
fl_add_browser_line(fd_form_toc->browser_toc, line);
|
fl_add_browser_line(fd_form_toc->browser_toc, line);
|
||||||
|
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
#include "LString.h"
|
#include "LString.h"
|
||||||
#include "sp_form.h"
|
#include "sp_form.h"
|
||||||
#include "spellchecker.h"
|
#include "spellchecker.h"
|
||||||
@ -643,6 +645,7 @@ bool RunSpellChecker(BufferView * bv)
|
|||||||
FL_OBJECT * obj;
|
FL_OBJECT * obj;
|
||||||
|
|
||||||
string tmp = (lyxrc.isp_use_alt_lang) ? lyxrc.isp_alt_lang : bv->buffer()->GetLanguage();
|
string tmp = (lyxrc.isp_use_alt_lang) ? lyxrc.isp_alt_lang : bv->buffer()->GetLanguage();
|
||||||
|
bool rtl = tmp == "hebrew" || tmp == "arabic";
|
||||||
|
|
||||||
int oldval = 0; /* used for updating slider only when needed */
|
int oldval = 0; /* used for updating slider only when needed */
|
||||||
float newval = 0.0;
|
float newval = 0.0;
|
||||||
@ -704,10 +707,20 @@ bool RunSpellChecker(BufferView * bv)
|
|||||||
case ISP_MISSED:
|
case ISP_MISSED:
|
||||||
{
|
{
|
||||||
bv->selectLastWord();
|
bv->selectLastWord();
|
||||||
|
if (rtl) {
|
||||||
|
string tmp = word;
|
||||||
|
reverse(tmp.begin(),tmp.end());
|
||||||
|
fl_set_object_label(fd_form_spell_check->text, tmp.c_str());
|
||||||
|
} else
|
||||||
fl_set_object_label(fd_form_spell_check->text, word);
|
fl_set_object_label(fd_form_spell_check->text, word);
|
||||||
fl_set_input(fd_form_spell_check->input, word);
|
fl_set_input(fd_form_spell_check->input, word);
|
||||||
fl_clear_browser(fd_form_spell_check->browser);
|
fl_clear_browser(fd_form_spell_check->browser);
|
||||||
for (i = 0; i < result->count; ++i) {
|
for (i = 0; i < result->count; ++i) {
|
||||||
|
if (rtl) {
|
||||||
|
string tmp = result->misses[i];
|
||||||
|
reverse(tmp.begin(),tmp.end());
|
||||||
|
fl_add_browser_line(fd_form_spell_check->browser, tmp.c_str());
|
||||||
|
} else
|
||||||
fl_add_browser_line(fd_form_spell_check->browser, result->misses[i]);
|
fl_add_browser_line(fd_form_spell_check->browser, result->misses[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -741,10 +754,17 @@ bool RunSpellChecker(BufferView * bv)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
clickline = fl_get_browser(fd_form_spell_check->browser);
|
clickline = fl_get_browser(fd_form_spell_check->browser);
|
||||||
|
/// Why not use
|
||||||
|
/// fl_set_input(fd_form_spell_check->input, result->misses[clickline-1]); ?
|
||||||
|
if (rtl) {
|
||||||
|
string tmp = fl_get_browser_line(fd_form_spell_check->browser,
|
||||||
|
clickline);
|
||||||
|
reverse(tmp.begin(),tmp.end());
|
||||||
|
fl_set_input(fd_form_spell_check->input, tmp.c_str());
|
||||||
|
} else
|
||||||
fl_set_input(fd_form_spell_check->input,
|
fl_set_input(fd_form_spell_check->input,
|
||||||
fl_get_browser_line(fd_form_spell_check->browser,
|
fl_get_browser_line(fd_form_spell_check->browser,
|
||||||
fl_get_browser(fd_form_spell_check->browser)));
|
clickline));
|
||||||
|
|
||||||
}
|
}
|
||||||
if (obj == fd_form_spell_check->stop) {
|
if (obj == fd_form_spell_check->stop) {
|
||||||
delete result;
|
delete result;
|
||||||
|
Loading…
Reference in New Issue
Block a user