From eb2b279712fe2cce701cd4f09114910e23f359f2 Mon Sep 17 00:00:00 2001
From: Jay Kominek <kominek@gmail.com>
Date: Mon, 20 Apr 2015 22:11:59 -0600
Subject: [PATCH] gtk support for frame% fullscreen and is-fullscreened?

---
 gui-lib/mred/private/wx/gtk/frame.rkt | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/gui-lib/mred/private/wx/gtk/frame.rkt b/gui-lib/mred/private/wx/gtk/frame.rkt
index 5ff715e2..38ff0c6a 100644
--- a/gui-lib/mred/private/wx/gtk/frame.rkt
+++ b/gui-lib/mred/private/wx/gtk/frame.rkt
@@ -54,6 +54,7 @@
 (define-gtk gtk_window_set_gravity (_fun _GtkWindow _int -> _void))
 (define-gtk gtk_window_set_icon_list (_fun _GtkWindow _GList -> _void))
 (define-gtk gtk_window_fullscreen (_fun _GtkWindow -> _void))
+(define-gtk gtk_window_unfullscreen (_fun _GtkWindow -> _void))
 (define-gtk gtk_window_get_focus (_fun _GtkWindow -> (_or-null _GtkWidget)))
 
 (define-gtk gtk_window_resize (_fun _GtkWidget _int _int -> _void))
@@ -505,6 +506,7 @@
       
     (define maximized? #f)
     (define is-iconized? #f)
+    (define fullscreen? #f)
     
     (define/public (is-maximized?)
       maximized?)
@@ -514,6 +516,8 @@
     (define/public (on-window-state changed value)
       (when (positive? (bitwise-and changed GDK_WINDOW_STATE_MAXIMIZED))
         (set! maximized? (positive? (bitwise-and value GDK_WINDOW_STATE_MAXIMIZED))))
+      (when (positive? (bitwise-and changed GDK_WINDOW_STATE_FULLSCREEN))
+	(set! fullscreen? (positive? (bitwise-and value GDK_WINDOW_STATE_FULLSCREEN))))
       (when (positive? (bitwise-and changed GDK_WINDOW_STATE_ICONIFIED))
         (set! is-iconized? (positive? (bitwise-and value GDK_WINDOW_STATE_ICONIFIED)))))
 
@@ -524,8 +528,12 @@
           (gtk_window_iconify gtk)
           (gtk_window_deiconify gtk)))
 
-    (define/public (fullscreened?) #f)
-    (define/public (fullscreen on?) (void))
+    (define/public (fullscreened?)
+      fullscreen?)
+    (define/public (fullscreen on?)
+      (if on?
+	  (gtk_window_fullscreen gtk)
+	  (gtk_window_unfullscreen gtk)))
       
     (def/public-unimplemented get-menu-bar)