summaryrefslogtreecommitdiff
path: root/platform/java/mupdf_native.c
diff options
context:
space:
mode:
Diffstat (limited to 'platform/java/mupdf_native.c')
-rw-r--r--platform/java/mupdf_native.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c
index 08679fbd..b5586e31 100644
--- a/platform/java/mupdf_native.c
+++ b/platform/java/mupdf_native.c
@@ -6463,6 +6463,33 @@ FUN(StructuredText_highlight)(JNIEnv *env, jobject self, jobject jpt1, jobject j
}
JNIEXPORT jobject JNICALL
+FUN(StructuredText_snapSelection)(JNIEnv *env, jobject self, jobject jpt1, jobject jpt2, jint mode)
+{
+ fz_context *ctx = get_context(env);
+ fz_stext_page *text = from_StructuredText(env, self);
+ fz_point pt1 = from_Point(env, jpt1);
+ fz_point pt2 = from_Point(env, jpt2);
+ fz_quad quad;
+
+ if (!ctx || !text) return NULL;
+
+ fz_try(ctx)
+ quad = fz_snap_selection(ctx, text, &pt1, &pt2, mode);
+ fz_catch(ctx)
+ {
+ jni_rethrow(env, ctx);
+ return NULL;
+ }
+
+ (*env)->SetFloatField(env, jpt1, fid_Point_x, pt1.x);
+ (*env)->SetFloatField(env, jpt1, fid_Point_y, pt1.y);
+ (*env)->SetFloatField(env, jpt2, fid_Point_x, pt2.x);
+ (*env)->SetFloatField(env, jpt2, fid_Point_y, pt2.y);
+
+ return to_Quad_safe(ctx, env, quad);
+}
+
+JNIEXPORT jobject JNICALL
FUN(StructuredText_copy)(JNIEnv *env, jobject self, jobject jpt1, jobject jpt2)
{
fz_context *ctx = get_context(env);