mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-11 03:03:06 +00:00
When drawing macro names, enforce LtR direction
Add a Direction parameter to the Painter::text methods that take a FontInfo parameter. In drawStrRed and drawStrBlack, force the direction to LtR. Fixes bug #12905.
This commit is contained in:
parent
fcbbb138a2
commit
94c6d45b74
@ -65,10 +65,10 @@ public:
|
|||||||
void image(int, int, int, int, graphics::Image const &, bool) override {}
|
void image(int, int, int, int, graphics::Image const &, bool) override {}
|
||||||
|
|
||||||
/// draw a string
|
/// draw a string
|
||||||
void text(int, int, docstring const &, FontInfo const &) override {}
|
void text(int, int, docstring const &, FontInfo const &, Direction const = Auto) override {}
|
||||||
|
|
||||||
/// draw a char
|
/// draw a char
|
||||||
void text(int, int, char_type, FontInfo const &) override {}
|
void text(int, int, char_type, FontInfo const &, Direction const = Auto) override {}
|
||||||
|
|
||||||
/// draw a string
|
/// draw a string
|
||||||
void text(int, int, docstring const &, Font const &, double, double) override {}
|
void text(int, int, docstring const &, Font const &, double, double) override {}
|
||||||
|
@ -134,11 +134,16 @@ public:
|
|||||||
virtual void image(int x, int y, int w, int h,
|
virtual void image(int x, int y, int w, int h,
|
||||||
graphics::Image const & image, bool const revert_in_darkmode = false) = 0;
|
graphics::Image const & image, bool const revert_in_darkmode = false) = 0;
|
||||||
|
|
||||||
|
// Direction for painting text
|
||||||
|
enum Direction { LtR, RtL, Auto };
|
||||||
|
|
||||||
/// draw a string at position x, y (y is the baseline).
|
/// draw a string at position x, y (y is the baseline).
|
||||||
virtual void text(int x, int y, docstring const & str, FontInfo const & f) = 0;
|
virtual void text(int x, int y, docstring const & str, FontInfo const & f,
|
||||||
|
Direction const dir = Auto) = 0;
|
||||||
|
|
||||||
/// draw a char at position x, y (y is the baseline)
|
/// draw a char at position x, y (y is the baseline)
|
||||||
virtual void text(int x, int y, char_type c, FontInfo const & f) = 0;
|
virtual void text(int x, int y, char_type c, FontInfo const & f,
|
||||||
|
Direction const dir = Auto) = 0;
|
||||||
|
|
||||||
/** draw a string at position x, y (y is the baseline). The
|
/** draw a string at position x, y (y is the baseline). The
|
||||||
* text direction is enforced by the \c Font.
|
* text direction is enforced by the \c Font.
|
||||||
|
@ -282,15 +282,15 @@ void GuiPainter::image(int x, int y, int w, int h, graphics::Image const & i,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiPainter::text(int x, int y, char_type c, FontInfo const & f)
|
void GuiPainter::text(int x, int y, char_type c, FontInfo const & f, Direction const dir)
|
||||||
{
|
{
|
||||||
text(x, y, docstring(1, c), f);
|
text(x, y, docstring(1, c), f, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void GuiPainter::text(int x, int y, docstring const & s, FontInfo const & f)
|
void GuiPainter::text(int x, int y, docstring const & s, FontInfo const & f, Direction const dir)
|
||||||
{
|
{
|
||||||
text(x, y, s, f, Auto, 0.0, 0.0);
|
text(x, y, s, f, dir, 0.0, 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,10 +116,12 @@ public:
|
|||||||
lyx::graphics::Image const & image, bool const darkmode = false) override;
|
lyx::graphics::Image const & image, bool const darkmode = false) override;
|
||||||
|
|
||||||
/// draw a string at position x, y (y is the baseline).
|
/// draw a string at position x, y (y is the baseline).
|
||||||
void text(int x, int y, docstring const & str, FontInfo const & f) override;
|
void text(int x, int y, docstring const & str, FontInfo const & f,
|
||||||
|
Direction const dir = Auto) override;
|
||||||
|
|
||||||
/// draw a char at position x, y (y is the baseline)
|
/// draw a char at position x, y (y is the baseline)
|
||||||
void text(int x, int y, char_type c, FontInfo const & f) override;
|
void text(int x, int y, char_type c, FontInfo const & f,
|
||||||
|
Direction const dir = Auto) override;
|
||||||
|
|
||||||
/** draw a string at position x, y (y is the baseline). The
|
/** draw a string at position x, y (y is the baseline). The
|
||||||
* text direction is enforced by the \c Font.
|
* text direction is enforced by the \c Font.
|
||||||
@ -188,9 +190,6 @@ private:
|
|||||||
line_style ls = line_solid, int lw = thin_line,
|
line_style ls = line_solid, int lw = thin_line,
|
||||||
Qt::PenJoinStyle js = Qt::BevelJoin);
|
Qt::PenJoinStyle js = Qt::BevelJoin);
|
||||||
|
|
||||||
// Direction for painting text
|
|
||||||
enum Direction { LtR, RtL, Auto };
|
|
||||||
|
|
||||||
// Real text() method
|
// Real text() method
|
||||||
void text(int x, int y, docstring const & s,
|
void text(int x, int y, docstring const & s,
|
||||||
FontInfo const & f, Direction const dir,
|
FontInfo const & f, Direction const dir,
|
||||||
|
@ -805,7 +805,7 @@ void drawStrRed(PainterInfo & pi, int x, int y, docstring const & str)
|
|||||||
FontInfo f = pi.base.font;
|
FontInfo f = pi.base.font;
|
||||||
augmentFont(f, "mathnormal");
|
augmentFont(f, "mathnormal");
|
||||||
f.setColor(Color_latex);
|
f.setColor(Color_latex);
|
||||||
pi.pain.text(x, y, str, f);
|
pi.pain.text(x, y, str, f, Painter::LtR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -814,7 +814,7 @@ void drawStrBlack(PainterInfo & pi, int x, int y, docstring const & str)
|
|||||||
FontInfo f = pi.base.font;
|
FontInfo f = pi.base.font;
|
||||||
augmentFont(f, "mathnormal");
|
augmentFont(f, "mathnormal");
|
||||||
f.setColor(Color_foreground);
|
f.setColor(Color_foreground);
|
||||||
pi.pain.text(x, y, str, f);
|
pi.pain.text(x, y, str, f, Painter::LtR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user