< prev index next >

src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c

Print this page

        

*** 322,333 **** fp_g_strfreev = dl_symbol("g_strfreev"); /* GDK */ fp_gdk_get_default_root_window = dl_symbol("gdk_get_default_root_window"); - fp_gdk_window_get_scale_factor = - dl_symbol("gdk_window_get_scale_factor"); /* Pixbuf */ fp_gdk_pixbuf_new = dl_symbol("gdk_pixbuf_new"); fp_gdk_pixbuf_new_from_file = dl_symbol("gdk_pixbuf_new_from_file"); --- 322,331 ----
*** 398,407 **** --- 396,407 ---- if (fp_gtk_check_version(3, 10, 0)) { gtk3_version_3_10 = FALSE; } else { fp_gdk_window_create_similar_image_surface = dl_symbol("gdk_window_create_similar_image_surface"); + fp_gdk_window_get_scale_factor = + dl_symbol("gdk_window_get_scale_factor"); } gtk3_version_3_14 = !fp_gtk_check_version(3, 14, 0); if (!fp_gtk_check_version(3, 20, 0)) { gtk3_version_3_20 = TRUE;
*** 2888,2900 **** jint scale) { GdkPixbuf *pixbuf; jint *ary; GdkWindow *root = (*fp_gdk_get_default_root_window)(); int win_scale = (*fp_gdk_window_get_scale_factor)(root); pixbuf = (*fp_gdk_pixbuf_get_from_drawable)( ! root, x, y, (int)(width / (float)win_scale + 0.5), (int)(height / (float)win_scale + 0.5)); if (pixbuf && scale != 1) { GdkPixbuf *scaledPixbuf; x /= scale; y /= scale; --- 2888,2904 ---- jint scale) { GdkPixbuf *pixbuf; jint *ary; GdkWindow *root = (*fp_gdk_get_default_root_window)(); + if (gtk3_version_3_10) { int win_scale = (*fp_gdk_window_get_scale_factor)(root); pixbuf = (*fp_gdk_pixbuf_get_from_drawable)( ! root, x, y, (int) (width / (float) win_scale + 0.5), (int) (height / (float) win_scale + 0.5)); ! } else { ! pixbuf = (*fp_gdk_pixbuf_get_from_drawable)(root, x, y, width, height); ! } if (pixbuf && scale != 1) { GdkPixbuf *scaledPixbuf; x /= scale; y /= scale;
< prev index next >