--- old/modules/graphics/src/main/native-glass/gtk/glass_screen.cpp 2016-05-27 14:57:07.362691554 -0700 +++ new/modules/graphics/src/main/native-glass/gtk/glass_screen.cpp 2016-05-27 14:57:07.194691558 -0700 @@ -25,13 +25,19 @@ #include +// The includes below will end up including gio.h without an extern "C", +// so we include gio.h here early on to make sure that the names are mangled +// using the C conventions rather than the C++ conventions. +extern "C" { +#include +} + #include "glass_screen.h" #include "glass_general.h" #include #include #include -#include jfloat OverrideUIScale = -1.0f; --- old/modules/graphics/src/main/native-glass/gtk/wrapper_gdk.c 2016-05-27 14:57:07.774691546 -0700 +++ new/modules/graphics/src/main/native-glass/gtk/wrapper_gdk.c 2016-05-27 14:57:07.630691549 -0700 @@ -186,6 +186,12 @@ gint monitor_num, GdkRectangle * dest); static gint (*_gdk_screen_get_n_monitors) (GdkScreen * screen); +static gint (*_gdk_screen_get_monitor_width_mm) (GdkScreen *screen, + gint monitor_num); +static gint (*_gdk_screen_get_monitor_height_mm) (GdkScreen *screen, + gint monitor_num); +static gint (*_gdk_screen_get_width_mm) (GdkScreen *screen); +static gint (*_gdk_screen_get_height_mm) (GdkScreen *screen); static gdouble (*_gdk_screen_get_resolution) (GdkScreen * screen); static GdkColormap *(*_gdk_screen_get_rgba_colormap) (GdkScreen * screen); static GdkColormap *(*_gdk_screen_get_rgb_colormap) (GdkScreen * screen); @@ -403,6 +409,10 @@ PRELOAD_SYMBOL_GDK (gdk_screen_get_monitor_at_point); PRELOAD_SYMBOL_GDK (gdk_screen_get_monitor_geometry); PRELOAD_SYMBOL_GDK (gdk_screen_get_n_monitors); + PRELOAD_SYMBOL_GDK (gdk_screen_get_monitor_width_mm); + PRELOAD_SYMBOL_GDK (gdk_screen_get_monitor_height_mm); + PRELOAD_SYMBOL_GDK (gdk_screen_get_width_mm); + PRELOAD_SYMBOL_GDK (gdk_screen_get_height_mm); PRELOAD_SYMBOL_GDK (gdk_screen_get_resolution); PRELOAD_SYMBOL_GDK (gdk_screen_get_root_window); PRELOAD_SYMBOL_GDK (gdk_screen_get_system_visual); @@ -898,6 +908,30 @@ return (*_gdk_screen_get_n_monitors) (screen); } +gint gdk_screen_get_width_mm (GdkScreen * screen) +{ + CHECK_LOAD_SYMBOL_GDK (gdk_screen_get_width_mm); + return (*_gdk_screen_get_width_mm) (screen); +} + +gint gdk_screen_get_height_mm (GdkScreen * screen) +{ + CHECK_LOAD_SYMBOL_GDK (gdk_screen_get_height_mm); + return (*_gdk_screen_get_height_mm) (screen); +} + +gint gdk_screen_get_monitor_width_mm (GdkScreen * screen, gint monitor_num) +{ + CHECK_LOAD_SYMBOL_GDK (gdk_screen_get_monitor_width_mm); + return (*_gdk_screen_get_monitor_width_mm) (screen, monitor_num); +} + +gint gdk_screen_get_monitor_height_mm (GdkScreen * screen, gint monitor_num) +{ + CHECK_LOAD_SYMBOL_GDK (gdk_screen_get_monitor_height_mm); + return (*_gdk_screen_get_monitor_height_mm) (screen, monitor_num); +} + gdouble gdk_screen_get_resolution (GdkScreen * screen) { CHECK_LOAD_SYMBOL_GDK (gdk_screen_get_resolution);