Mercurial > hg > forks > geeqie
changeset 1968:72136ef38f30
Make fullscreen mode actually use the full screen.
Use override-redirect to ensure fullscreen windows are drawn over any
docks and panels.
Bug: http://sourceforge.net/support/tracker.php?aid=2925034
Bug-Ubuntu: https://launchpad.net/bugs/788321
author | Daniel van Vugt <vanvugt@gmail.com> |
---|---|
date | Thu, 18 Aug 2011 22:43:29 +0200 |
parents | ed02f9ffd7ad |
children | ad2044405aba |
files | src/fullscreen.c |
diffstat | 1 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fullscreen.c Tue Mar 08 20:51:56 2011 +0100 +++ b/src/fullscreen.c Thu Aug 18 22:43:29 2011 +0200 @@ -227,6 +227,7 @@ gint x, y; gint w, h; GdkGeometry geometry; + GdkWindow *gdkwin; if (!window || !imd) return NULL; @@ -256,15 +257,14 @@ */ gtk_window_fullscreen(GTK_WINDOW(fs->window)); } - else if (options->fullscreen.above) + else { - /* request to be above other windows */ - gtk_window_set_keep_above(GTK_WINDOW(fs->window), TRUE); + gtk_window_set_screen(GTK_WINDOW(fs->window), screen); + if (options->fullscreen.above) + gtk_window_set_keep_above(GTK_WINDOW(fs->window), TRUE); } gtk_window_set_resizable(GTK_WINDOW(fs->window), FALSE); - - gtk_window_set_screen(GTK_WINDOW(fs->window), screen); gtk_container_set_border_width(GTK_CONTAINER(fs->window), 0); g_signal_connect(G_OBJECT(fs->window), "delete_event", G_CALLBACK(fullscreen_delete_cb), fs); @@ -291,6 +291,11 @@ gtk_window_set_default_size(GTK_WINDOW(fs->window), w, h); gtk_window_move(GTK_WINDOW(fs->window), x, y); + gtk_widget_realize(fs->window); + gdkwin = gtk_widget_get_window(fs->window); + if (gdkwin != NULL) + gdk_window_set_override_redirect(gdkwin, TRUE); + fs->imd = image_new(FALSE); gtk_container_add(GTK_CONTAINER(fs->window), fs->imd->widget);