summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDov Grobgeld <dov@src.gnome.org>2002-02-23 21:58:27 +0000
committerDov Grobgeld <dov@src.gnome.org>2002-02-23 21:58:27 +0000
commit1540e6d485f78b52cfb3aab112ef18e168ac86a9 (patch)
treeba4eb2271f7c038e629a9eedcdc56313c75f9640
parentf3bd6d6b364f0656308180002741f748951a6013 (diff)
downloadpango-1540e6d485f78b52cfb3aab112ef18e168ac86a9.tar.gz
Fixed placement of nikud under QOF to take into account the typical
right stem of a the KUF. The logics places narrow (one dot wide) nikkud centered, and all the other right aligned.
-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
{