summaryrefslogtreecommitdiffstats
path: root/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c')
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
index 9c370e936cc..864e465871b 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
@@ -207,7 +207,8 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
gdk_threads_enter ();
font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc, size * PANGO_SCALE);
+
+ pango_font_description_set_size (font_desc, size * dpi_conversion_factor);
if (style & AWT_STYLE_BOLD)
pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
@@ -225,12 +226,15 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
baseline_y = pango_layout_iter_get_baseline (iter);
- gdk_draw_layout (g->drawable, g->gc,
- x + g->x_offset, y + g->y_offset - (baseline_y / PANGO_SCALE), layout);
+ gdk_draw_layout (g->drawable, g->gc,
+ x + g->x_offset,
+ y + g->y_offset - PANGO_PIXELS (baseline_y),
+ layout);
pango_font_description_free (font_desc);
pango_layout_iter_free (iter);
+ gdk_flush ();
gdk_threads_leave ();
(*env)->ReleaseStringUTFChars (env, fname, font_name);
@@ -248,6 +252,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawLine
gdk_draw_line (g->drawable, g->gc,
x + g->x_offset, y + g->y_offset,
x2 + g->x_offset, y2 + g->y_offset);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -259,8 +264,10 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillRect
g = (struct graphics *) NSA_GET_PTR (env, obj);
gdk_threads_enter ();
+
gdk_draw_rectangle (g->drawable, g->gc, TRUE,
x + g->x_offset, y + g->y_offset, width, height);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -274,6 +281,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawRect
gdk_threads_enter ();
gdk_draw_rectangle (g->drawable, g->gc, FALSE,
x + g->x_offset, y + g->y_offset, width, height);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -292,6 +300,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea
(GdkWindow *)g->drawable,
x + g->x_offset, y + g->y_offset,
width, height);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -311,6 +320,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyPixmap
(GdkWindow *)g2->drawable,
0 + g2->x_offset, 0 + g2->y_offset,
width, height);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -340,6 +350,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect
x + g->x_offset, y + g->y_offset, width, height);
gdk_gc_set_foreground (g->gc, &(saved.foreground));
}
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -370,6 +381,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor
gdk_threads_enter ();
gdk_color_alloc (g->cm, &color);
gdk_gc_set_foreground (g->gc, &color);
+
gdk_threads_leave ();
}
@@ -385,6 +397,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawArc
gdk_draw_arc (g->drawable, g->gc, FALSE,
x + g->x_offset, y + g->y_offset,
width, height, angle1 << 6, angle2 << 6);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -428,6 +441,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolyline
gdk_threads_enter ();
gdk_draw_lines (g->drawable, g->gc, points, npoints);
+ gdk_flush ();
gdk_threads_leave ();
g_free (points);
@@ -451,6 +465,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolygon
gdk_threads_enter ();
gdk_draw_lines (g->drawable, g->gc, points, npoints);
+ gdk_flush ();
gdk_threads_leave ();
g_free (points);
@@ -468,6 +483,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillPolygon
g->x_offset, g->y_offset);
gdk_threads_enter ();
gdk_draw_polygon (g->drawable, g->gc, TRUE, points, npoints);
+ gdk_flush ();
gdk_threads_leave ();
g_free (points);
@@ -485,6 +501,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillArc
gdk_draw_arc (g->drawable, g->gc, TRUE,
x + g->x_offset, y + g->y_offset,
width, height, angle1 << 6, angle2 << 6);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -499,6 +516,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_drawOval
gdk_draw_arc (g->drawable, g->gc, FALSE,
x + g->x_offset, y + g->y_offset,
width, height, 0, 23040);
+ gdk_flush ();
gdk_threads_leave ();
}
@@ -513,8 +531,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_fillOval
gdk_draw_arc (g->drawable, g->gc, TRUE,
x + g->x_offset, y + g->y_offset,
width, height, 0, 23040);
+ gdk_flush ();
gdk_threads_leave ();
-}
+}
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_setClipRectangle
(JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
OpenPOWER on IntegriCloud