Get rid of gdk_screen_get_default(), be exact with panel screen.
authorAndriy Grytsenko <andrej@rep.kiev.ua>
Sat, 19 Mar 2016 21:14:58 +0000 (23:14 +0200)
committerAndriy Grytsenko <andrej@rep.kiev.ua>
Sat, 19 Mar 2016 21:14:58 +0000 (23:14 +0200)
plugins/pager.c
src/misc.c
src/panel.c
src/plugin.c

index 09cf074..6da24bc 100644 (file)
@@ -122,7 +122,7 @@ static void pager_menu_callback(GtkWidget *widget, gpointer data)
 
 static gboolean pager_update_context_menu(GtkWidget *plugin, GtkMenu *menu)
 {
-    GdkScreen *screen = gdk_screen_get_default();
+    GdkScreen *screen = gtk_widget_get_screen(plugin);
     const char *wm_name = gdk_x11_screen_get_window_manager_name(screen);
     char *path = NULL;
 
index 06ffb6c..2779ac4 100644 (file)
@@ -846,7 +846,7 @@ void _calculate_position(LXPanel *panel, GdkRectangle *rect)
     GdkRectangle marea;
 
     ENTER;
-    screen = gdk_screen_get_default();
+    screen = gtk_widget_get_screen(GTK_WIDGET(panel));
     if (np->monitor < 0) /* all monitors */
     {
         marea.x = 0;
index e6e3234..2924b4c 100644 (file)
@@ -1876,7 +1876,7 @@ static void on_monitors_changed(GdkScreen* screen, gpointer unused)
 static int panel_start(LXPanel *p)
 {
     config_setting_t *list;
-    GdkScreen *screen = gdk_screen_get_default();
+    GdkScreen *screen = gtk_widget_get_screen(GTK_WIDGET(p));
 
     /* parse global section */
     ENTER;
index 8f7a198..3d83403 100644 (file)
@@ -293,7 +293,8 @@ void lxpanel_plugin_popup_set_position_helper(LXPanel * p, GtkWidget * near, Gtk
     if (gtk_widget_has_screen(near))
         screen = gtk_widget_get_screen(near);
     else
-        screen = gdk_screen_get_default();
+        /* panel as a GtkWindow always has a screen */
+        screen = gtk_widget_get_screen(GTK_WIDGET(p));
     monitor = gdk_screen_get_monitor_at_point(screen, x, y);
 #if GTK_CHECK_VERSION(3, 4, 0)
     gdk_screen_get_monitor_workarea(screen, monitor, &allocation);