Use gdk_screen_get_primary_monitor on gtk-2.20.1+
Starting with gtk-2.20.0 there is a gdk_screen_get_primary_monitor, which supports querying the primary monitor from xrandr. But due to a sorting bug and lack of heuristics in the fallback path, it isn't really useable. Those bugs are fixed in gtk-2.20.1, so use it when building with gtk-2.20.1+. https://bugzilla.gnome.org/show_bug.cgi?id=608647
This commit is contained in:
parent
74ccdbf3a9
commit
410dfb2da3
@ -1117,7 +1117,14 @@ shell_global_get_primary_monitor (ShellGlobal *global)
|
|||||||
{
|
{
|
||||||
GdkScreen *screen = gdk_screen_get_default ();
|
GdkScreen *screen = gdk_screen_get_default ();
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
gint i, primary = 0;
|
gint primary = 0;
|
||||||
|
|
||||||
|
/* gdk_screen_get_primary_monitor is only present in gtk-2.20+
|
||||||
|
* and is in a useable state (supports heuristics and fallback modes)
|
||||||
|
* starting with 2.20.1
|
||||||
|
*/
|
||||||
|
#if !GTK_CHECK_VERSION (2, 20, 1)
|
||||||
|
gint i;
|
||||||
gchar *output_name = NULL;
|
gchar *output_name = NULL;
|
||||||
gint num_monitors = gdk_screen_get_n_monitors (screen);
|
gint num_monitors = gdk_screen_get_n_monitors (screen);
|
||||||
|
|
||||||
@ -1136,6 +1143,9 @@ shell_global_get_primary_monitor (ShellGlobal *global)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
primary = gdk_screen_get_primary_monitor (screen);
|
||||||
|
#endif
|
||||||
|
|
||||||
gdk_screen_get_monitor_geometry (screen, primary, &rect);
|
gdk_screen_get_monitor_geometry (screen, primary, &rect);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user