gtk-screen: Unset GtkPanedView positions when resizing windows.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Thu, 31 Jan 2013 16:46:53 +0000 (09:46 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Thu, 31 Jan 2013 16:46:53 +0000 (09:46 -0700)
src/gtk-screen/gtk-screen.pkg
src/gtk-screen/gtk-screen.scm
src/gtk/Includes/gtkpaned.cdecl
src/gtk/gtk-widget.scm
src/gtk/gtk.pkg

index 269af10a2c4138a782d61c72d544603912483231..40b392957091c7f15bd1df32083d07cdcedf0b97 100644 (file)
@@ -86,7 +86,7 @@ USA.
   (import (gtk gtk-widget)
          gtk-widget-destroy-callback
          gtk-container-reverse-children
-         <gtk-paned-view> gtk-paned-view-init)
+         gtk-paned-view-init)
   (import (gtk fix-layout)
          fix-widget-geometry
 
@@ -133,8 +133,10 @@ USA.
          gtk-scrolled-window-set-policy gtk-scrolled-window-set-placement
          gtk-scrolled-view-new
 
+         gtk-paned?
          gtk-paned-pack1 gtk-paned-pack2
          gtk-paned-get-child1 gtk-paned-get-child2
+         gtk-paned-set-position
          <gtk-paned-view> gtk-paned-view-new
 
          gtk-window-new
index d31dbf3f1375a442549a5726b92ca63956b9d208..4e0f773b69ebc69c97ea811033633fd1e7ea12c2 100644 (file)
@@ -890,6 +890,13 @@ USA.
                              "("width"x"height")"
                              " to "window-x-size"x"window-y-size" "
                              "("new-width"x"new-height")\n")
+                     (let unset-pos ((w (gtk-screen-toplevel screen)))
+                       (if (gtk-container? w)
+                           (begin
+                             (for-each unset-pos
+                                       (gtk-container-reverse-children w))
+                             (if (gtk-paned? w)
+                                 (gtk-paned-set-position w -1)))))
                      (set-scm-widget-natural-size!
                       widget new-width new-height)
                      (gtk-widget-queue-resize-no-redraw widget))))))))
index b67011e1846c54c746b74a85f86ac69d9b0de4f2..846444ae5be82af9b669ff0f3dddf640353d81a6 100644 (file)
@@ -18,4 +18,13 @@ gtk-3.0/gtk/gtkpaned.h |#
        (paned (* GtkPaned))
        (child (* GtkWidget))
        (resize gboolean)
-       (shrink gboolean))
\ No newline at end of file
+       (shrink gboolean))
+
+(extern gint
+       gtk_paned_get_position
+       (paned (* GtkPaned)))
+
+(extern void
+       gtk_paned_set_position
+       (paned (* GtkPaned))
+       (position gint))
\ No newline at end of file
index 4c3b46998d2fd8e50847f1fa883a2d39845d840f..407b3b737170ba7a545b2b4805ebd3ff218b5ffd 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012  Matthew Birkholz
+Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013  Matthew Birkholz
 
 This file is part of an extension to MIT/GNU Scheme.
 
@@ -768,6 +768,12 @@ USA.
   (C-call "gtk_paned_pack2" (gobject-alien paned) (gobject-alien child2)
          (if resize? 1 0) (if shrink? 1 0)))
 
+(define (gtk-paned-get-position paned)
+  (C-call "gtk_paned_get_position" (gobject-alien paned)))
+
+(define (gtk-paned-set-position paned child1-size)
+  (C-call "gtk_paned_set_position" (gobject-alien paned) child1-size))
+
 (define-class (<gtk-paned-view> (constructor ()))
     (<gtk-paned>))
 
index c3aa43dcd9450855a682e1fa7e6bb503fda97b85..a2e690e394b4564559664fa15054d15e1ba1653e 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012  Matthew Birkholz
+Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013  Matthew Birkholz
 
 This file is part of an extension to MIT/GNU Scheme.
 
@@ -214,6 +214,7 @@ USA.
          <gtk-paned> gtk-paned? gtk-paned-new
          gtk-paned-pack1 gtk-paned-pack2
          gtk-paned-get-child1 gtk-paned-get-child2
+         gtk-paned-get-position gtk-paned-set-position
          <gtk-paned-view> gtk-paned-view? gtk-paned-view-new)
   (import (gtk pango) make-pango-layout guarantee-pango-font-description))