Skip to content

Instantly share code, notes, and snippets.

@scymtym
Created August 11, 2019 22:06
Show Gist options
  • Save scymtym/c0ae4cd4fa905231bdd3c9e4889628e5 to your computer and use it in GitHub Desktop.
Save scymtym/c0ae4cd4fa905231bdd3c9e4889628e5 to your computer and use it in GitHub Desktop.
From 6b12a6f319b06f7728cf2df9d3ec3e3de5aeb57f Mon Sep 17 00:00:00 2001
From: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
Date: Mon, 12 Aug 2019 00:05:42 +0200
Subject: [PATCH] maximize
---
Core/clim-core/frames.lisp | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/Core/clim-core/frames.lisp b/Core/clim-core/frames.lisp
index 37665aa31..c3f983b7f 100644
--- a/Core/clim-core/frames.lisp
+++ b/Core/clim-core/frames.lisp
@@ -197,7 +197,8 @@ documentation produced by presentations.")
(defmethod frame-geometry* ((frame standard-application-frame))
"-> width height &optional top left"
- (let ((pane (frame-top-level-sheet frame)))
+ (let* ((pane (frame-top-level-sheet frame))
+ (graft (graft pane)))
;(destructuring-bind (&key left top right bottom width height) (frame-geometry frame)
(with-slots (geometry-left geometry-top geometry-right
geometry-bottom geometry-width
@@ -205,11 +206,17 @@ documentation produced by presentations.")
;; Find width and height from looking at the respective options
;; first, then at left/right and top/bottom and finally at what
;; compose-space says.
- (let* ((width (or geometry-width
+ (let* ((width (or (when geometry-width
+ (case geometry-width
+ (:max (graft-width graft))
+ (t geometry-width)))
(and geometry-left geometry-right
(- geometry-right geometry-left))
(space-requirement-width (compose-space pane))))
- (height (or geometry-height
+ (height (or (when geometry-height
+ (case geometry-height
+ (:max (graft-height graft))
+ (t geometry-height)))
(and geometry-top geometry-bottom (- geometry-bottom geometry-top))
(space-requirement-height (compose-space pane))))
;; See if a position is wanted and return left, top.
@@ -217,7 +224,7 @@ documentation produced by presentations.")
(and geometry-right (- geometry-right geometry-width))))
(top (or geometry-top
(and geometry-bottom (- geometry-bottom geometry-height)))))
- (values width height left top)))))
+ (values width height left top)))))
;;; This method causes related frames share the same queue by default (on both
;;; SMP and non-SMP systems). Thanks to that we have a single loop processing
--
2.23.0.rc1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment