diff --git a/panel/panel-window.c b/panel/panel-window.c index c21aac36..1d371cad 100644 --- a/panel/panel-window.c +++ b/panel/panel-window.c @@ -2013,9 +2013,10 @@ panel_window_screen_layout_changed (GdkScreen *screen, { normal_monitor_positioning: + /* get the primary monitor */ + monitor_num = gdk_screen_get_primary_monitor (screen); + /* get the monitor geometry based on the panel position */ - monitor_num = gdk_screen_get_monitor_at_point (screen, window->base_x, - window->base_y); gdk_screen_get_monitor_geometry (screen, monitor_num, &a); panel_return_if_fail (a.width > 0 && a.height > 0); } diff --git a/panel/panel-window.h b/panel/panel-window.h index f5aa603c..e1de6336 100644 --- a/panel/panel-window.h +++ b/panel/panel-window.h @@ -33,6 +33,11 @@ typedef struct _PanelWindow PanelWindow; #define PANEL_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PANEL_TYPE_WINDOW)) #define PANEL_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANEL_TYPE_WINDOW)) #define PANEL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANEL_TYPE_WINDOW, PanelWindowClass)) +/* workaround to get "primary" monitor on gtk versions older than 2.20.0 */ +#if !GTK_CHECK_VERSION (2, 20, 0) +#define gdk_screen_get_primary_monitor(screen) (gdk_screen_get_monitor_at_point (screen, window->base_x, window->base_y)) +#endif + GType panel_window_get_type (void) G_GNUC_CONST;