From 1d8d758e8adc56e1ff9bf0defccaa47bcb08c3b4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ji=C5=99=C3=AD=20Boh=C3=A1=C4=8D?= <> Date: Wed, 19 Dec 2018 10:10:10 +0000 Subject: [PATCH] Fix #650, 651: fullscreen does not work over multiple monitors https://github.com/BestImageViewer/geeqie/issues/650 --- src/fullscreen.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/fullscreen.c b/src/fullscreen.c index 048fe3f5..ef6f35b6 100644 --- a/src/fullscreen.c +++ b/src/fullscreen.c @@ -248,14 +248,6 @@ FullScreenData *fullscreen_start(GtkWidget *window, ImageWindow *imd, gtk_window_set_decorated(GTK_WINDOW(fs->window), FALSE); gtk_container_set_border_width(GTK_CONTAINER(fs->window), 0); - /* make window fullscreen -- let Gtk do it's job, don't screw it in any way */ - gtk_window_fullscreen(GTK_WINDOW(fs->window)); - - /* move it to requested screen */ - if (options->fullscreen.screen >= 0) { - gtk_window_set_screen(GTK_WINDOW(fs->window), screen); - } - /* keep window above others, if requested */ if (options->fullscreen.above) { gtk_window_set_keep_above(GTK_WINDOW(fs->window), TRUE); @@ -281,6 +273,23 @@ FullScreenData *fullscreen_start(GtkWidget *window, ImageWindow *imd, GDK_HINT_WIN_GRAVITY | GDK_HINT_USER_POS | GDK_HINT_USER_SIZE); gtk_widget_realize(fs->window); +#if GTK_CHECK_VERSION(3,8,0) + if ((options->fullscreen.screen % 100) == 0) + { + GdkWindow *gdkwin; + gdkwin = gtk_widget_get_window(fs->window); + if (gdkwin != NULL) + gdk_window_set_fullscreen_mode(gdkwin, GDK_FULLSCREEN_ON_ALL_MONITORS); + } +#endif + /* make window fullscreen -- let Gtk do it's job, don't screw it in any way */ + gtk_window_fullscreen(GTK_WINDOW(fs->window)); + + /* move it to requested screen */ + if (options->fullscreen.screen >= 0) + { + gtk_window_set_screen(GTK_WINDOW(fs->window), screen); + } fs->imd = image_new(FALSE); -- 2.20.1