aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--japanese/gnumeric/Makefile2
-rw-r--r--japanese/gnumeric/files/patch-ac65
2 files changed, 59 insertions, 8 deletions
diff --git a/japanese/gnumeric/Makefile b/japanese/gnumeric/Makefile
index 5513fbb1200..2c4a3740cd0 100644
--- a/japanese/gnumeric/Makefile
+++ b/japanese/gnumeric/Makefile
@@ -6,7 +6,7 @@
#
# This port does not work with another version of master port.
-#PORTVERSION= 0.71
+#PORTVERSION= 1.0.4
CATEGORIES= japanese math gnome
MASTERDIR= ${.CURDIR}/../../math/gnumeric
diff --git a/japanese/gnumeric/files/patch-ac b/japanese/gnumeric/files/patch-ac
index 2e72eab92af..aeba4b9ae18 100644
--- a/japanese/gnumeric/files/patch-ac
+++ b/japanese/gnumeric/files/patch-ac
@@ -1,14 +1,65 @@
---- src/item-edit.c.orig Mon Oct 30 23:06:00 2000
-+++ src/item-edit.c Mon Oct 30 23:08:03 2000
-@@ -223,6 +223,11 @@
+--- src/item-edit.c.orig Thu Dec 27 07:10:52 2001
++++ src/item-edit.c Fri Mar 1 21:58:00 2002
+@@ -42,6 +42,41 @@
+ ARG_SHEET_CONTROL_GUI, /* The SheetControlGUI * argument */
+ };
+
++/* Update XIM position */
++static void
++item_edit_update_im_position(ItemEdit* item_edit, int x, int y)
++{
++ /* Need widget pointer that has GdkIC */
++ GnumericCanvas* gcanvas =
++ GNUMERIC_CANVAS(GNOME_CANVAS_ITEM(item_edit)->canvas);
++ int cx, cy;
++
++ if (GTK_WIDGET_HAS_FOCUS(gcanvas) && gdk_im_ready() &&
++ gcanvas->ic && (gdk_ic_get_style (gcanvas->ic)
++ & GDK_IM_PREEDIT_POSITION)){
++
++ int width, height;
++
++ /* position should be inside the widget */
++ if ( x <= 0 || y <=0 )
++ return;
++
++ gnome_canvas_get_scroll_offsets(GNOME_CANVAS(gcanvas), &cx, &cy);
++
++ gcanvas->ic_attr->spot_location.x =
++ (int)GNOME_CANVAS_ITEM(item_edit)->x1 + x - cx;
++ gcanvas->ic_attr->spot_location.y =
++ (int)GNOME_CANVAS_ITEM(item_edit)->y1 + y - 2 - cy;
++
++ gdk_window_get_size (GTK_WIDGET(gcanvas)->window, &width, &height);
++ gcanvas->ic_attr->preedit_area.width = width;
++ gcanvas->ic_attr->preedit_area.height = height;
++
++ gdk_ic_set_attr (gcanvas->ic, gcanvas->ic_attr,
++ GDK_IC_SPOT_LOCATION | GDK_IC_PREEDIT_AREA);
++ }
++}
++
+ static void
+ scan_at (const char *text, int *scan)
+ {
+@@ -169,6 +204,8 @@
+ gdk_draw_line (drawable, style->black_gc,
+ x, y-font->ascent,
+ x, y+font->descent);
++
++ item_edit_update_im_position(item_edit, x, y+font->descent);
+ }
+
+ static void
+@@ -239,6 +276,11 @@
+ if (item_edit->font == NULL)
return;
top_pos += item_edit->font->ascent;
-
++
+ /* Handle multibyte */
+ if( cursor_pos != -1 )
+ cursor_pos = strlen(gtk_editable_get_chars(GTK_EDITABLE(item_edit->entry),
-+ 0, cursor_pos));
-+
++ 0, cursor_pos));
+
/* Draw the background (recall that gdk_draw_rectangle excludes far coords) */
gdk_draw_rectangle (
- drawable, canvas->style->white_gc, TRUE,