app: make sure the GUI appears on the same monitor as the splash

Manually figure the monitor where the pointer is and pass it to the
splash, the empty image window and to session_restore() explicly.
This commit is contained in:
Michael Natterer
2014-05-02 21:15:01 +02:00
parent 4bb63322d7
commit 62257edb3e
5 changed files with 34 additions and 26 deletions

View File

@ -93,14 +93,16 @@ static void splash_timer_elapsed (const gchar *text1,
/* public functions */
void
splash_create (gboolean be_verbose)
splash_create (gboolean be_verbose,
GdkScreen *screen,
gint monitor)
{
GtkWidget *frame;
GtkWidget *vbox;
GdkPixbufAnimation *pixbuf;
GdkScreen *screen;
g_return_if_fail (splash == NULL);
g_return_if_fail (GDK_IS_SCREEN (screen));
pixbuf = splash_image_load (be_verbose);
@ -115,6 +117,7 @@ splash_create (gboolean be_verbose)
"type-hint", GDK_WINDOW_TYPE_HINT_SPLASHSCREEN,
"title", _("GIMP Startup"),
"role", "gimp-startup",
"screen", screen,
"window-position", GTK_WIN_POS_CENTER,
"resizable", FALSE,
NULL);
@ -123,8 +126,6 @@ splash_create (gboolean be_verbose)
G_CALLBACK (exit),
GINT_TO_POINTER (0));
screen = gtk_widget_get_screen (splash->window);
splash->width = MIN (gdk_pixbuf_animation_get_width (pixbuf),
gdk_screen_get_width (screen));
splash->height = MIN (gdk_pixbuf_animation_get_height (pixbuf),