comparison src/fullscreen.c @ 2876:9408af32ed62

Fix #650, 651: fullscreen does not work over multiple monitors https://github.com/BestImageViewer/geeqie/issues/650
author Jiří Boháč <>
date Wed, 19 Dec 2018 10:10:10 +0000
parents 425b69f7ff5f
children 5867602f7a60
comparison
equal deleted inserted replaced
2875:198c76b748e0 2876:9408af32ed62
246 246
247 /* few cosmetic details */ 247 /* few cosmetic details */
248 gtk_window_set_decorated(GTK_WINDOW(fs->window), FALSE); 248 gtk_window_set_decorated(GTK_WINDOW(fs->window), FALSE);
249 gtk_container_set_border_width(GTK_CONTAINER(fs->window), 0); 249 gtk_container_set_border_width(GTK_CONTAINER(fs->window), 0);
250 250
251 /* make window fullscreen -- let Gtk do it's job, don't screw it in any way */
252 gtk_window_fullscreen(GTK_WINDOW(fs->window));
253
254 /* move it to requested screen */
255 if (options->fullscreen.screen >= 0) {
256 gtk_window_set_screen(GTK_WINDOW(fs->window), screen);
257 }
258
259 /* keep window above others, if requested */ 251 /* keep window above others, if requested */
260 if (options->fullscreen.above) { 252 if (options->fullscreen.above) {
261 gtk_window_set_keep_above(GTK_WINDOW(fs->window), TRUE); 253 gtk_window_set_keep_above(GTK_WINDOW(fs->window), TRUE);
262 } 254 }
263 255
279 geometry.win_gravity = GDK_GRAVITY_STATIC; 271 geometry.win_gravity = GDK_GRAVITY_STATIC;
280 gtk_window_set_geometry_hints(GTK_WINDOW(fs->window), fs->window, &geometry, 272 gtk_window_set_geometry_hints(GTK_WINDOW(fs->window), fs->window, &geometry,
281 GDK_HINT_WIN_GRAVITY | GDK_HINT_USER_POS | GDK_HINT_USER_SIZE); 273 GDK_HINT_WIN_GRAVITY | GDK_HINT_USER_POS | GDK_HINT_USER_SIZE);
282 274
283 gtk_widget_realize(fs->window); 275 gtk_widget_realize(fs->window);
276 #if GTK_CHECK_VERSION(3,8,0)
277 if ((options->fullscreen.screen % 100) == 0)
278 {
279 GdkWindow *gdkwin;
280 gdkwin = gtk_widget_get_window(fs->window);
281 if (gdkwin != NULL)
282 gdk_window_set_fullscreen_mode(gdkwin, GDK_FULLSCREEN_ON_ALL_MONITORS);
283 }
284 #endif
285 /* make window fullscreen -- let Gtk do it's job, don't screw it in any way */
286 gtk_window_fullscreen(GTK_WINDOW(fs->window));
287
288 /* move it to requested screen */
289 if (options->fullscreen.screen >= 0)
290 {
291 gtk_window_set_screen(GTK_WINDOW(fs->window), screen);
292 }
284 293
285 fs->imd = image_new(FALSE); 294 fs->imd = image_new(FALSE);
286 295
287 gtk_container_add(GTK_CONTAINER(fs->window), fs->imd->widget); 296 gtk_container_add(GTK_CONTAINER(fs->window), fs->imd->widget);
288 297