summaryrefslogtreecommitdiff
path: root/modules/hebrew/hebrew-shaper.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/hebrew/hebrew-shaper.c')
-rw-r--r--modules/hebrew/hebrew-shaper.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/modules/hebrew/hebrew-shaper.c b/modules/hebrew/hebrew-shaper.c
index 314ad7bd..007d0e6d 100644
--- a/modules/hebrew/hebrew-shaper.c
+++ b/modules/hebrew/hebrew-shaper.c
@@ -61,15 +61,19 @@
#define UNI_SHIN 0x05E9
#define UNI_FINAL_PE 0x05E3
#define UNI_PE 0x05E4
+#define UNI_QOF 0x05E7
#define UNI_TAV 0x05EA
#define UNI_SHIN_DOT 0x05C1
#define UNI_SIN_DOT 0x05C2
#define UNI_MAPIQ 0x05BC
#define UNI_SHEVA 0x05B0
-#define UNI_QAMATS 0x05B8
#define UNI_HOLAM 0x05B9
#define UNI_QUBUTS 0x05BB
-
+#define UNI_HATAF_SEGOL 0x05B1
+#define UNI_HATAF_QAMATZ 0x05B3
+#define UNI_TSERE 0x05B5
+#define UNI_QAMATS 0x05B8
+#define UNI_QUBUTS 0x05BB
/*======================================================================
// In the tables below all Hebrew characters are categorized to
@@ -421,6 +425,18 @@ hebrew_shaper_get_cluster_kerning(gunichar *cluster,
+ base_ink_width * 3/8 - ink_rect[i].width/2;
}
+ /* Right align wide nikud under QOF */
+ else if (base_char == UNI_QOF &&
+ ( (gl >= UNI_HATAF_SEGOL
+ && gl <= UNI_HATAF_QAMATZ)
+ || (gl >= UNI_TSERE
+ && gl<= UNI_QAMATS)
+ || (gl == UNI_QUBUTS)))
+ {
+ x_offset[i] = base_ink_x_offset + base_ink_width
+ - ink_rect[i].x - ink_rect[i].width;
+ }
+
/* Center by default */
else
{