summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk/app/gtksys.cxx
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2011-10-26 16:42:39 +0100
committerMichael Meeks <michael.meeks@suse.com>2011-10-26 16:43:15 +0100
commit10bce0fbf39b80d0859119b005f62accefe7b35b (patch)
tree72fb7a3558b807023a5b09b4aff66a26000a3f72 /vcl/unx/gtk/app/gtksys.cxx
parentacb921d68bde5189216623238c3c045596cfd804 (diff)
gtk3: fix another gdk_screen_get_monitor_plug_name instance
Diffstat (limited to 'vcl/unx/gtk/app/gtksys.cxx')
-rw-r--r--vcl/unx/gtk/app/gtksys.cxx16
1 files changed, 16 insertions, 0 deletions
diff --git a/vcl/unx/gtk/app/gtksys.cxx b/vcl/unx/gtk/app/gtksys.cxx
index 99624f15ed71..4134b5d229b7 100644
--- a/vcl/unx/gtk/app/gtksys.cxx
+++ b/vcl/unx/gtk/app/gtksys.cxx
@@ -186,7 +186,23 @@ rtl::OUString GtkSalSystem::GetScreenName(unsigned int nScreen)
pScreen = getScreenMonitorFromIdx (mpDisplay, nScreen, nMonitor);
if (!pScreen)
return rtl::OUString();
+
+#if GTK_CHECK_VERSION(3,0,0) || GTK_CHECK_VERSION(2,14,0)
pStr = gdk_screen_get_monitor_plug_name (pScreen, nMonitor);
+#else
+ static gchar (*get_fn) (GdkScreen *, int) = NULL;
+
+ GModule *module = g_module_open (NULL, (GModuleFlags) 0);
+ if (!g_module_symbol (module, "gdk_screen_get_monitor_plug_name",
+ (gpointer *)&get_fn))
+ get_fn = NULL;
+ g_module_close (module);
+
+ if (get_fn)
+ pStr = get_fn (pScreen, nMonitor);
+ else
+ pStr = g_strdup_printf ("%d", nScreen);
+#endif
rtl::OUString aRet (pStr, strlen (pStr), RTL_TEXTENCODING_UTF8);
g_free (pStr);
return aRet;