From d478ff790e15e66980cf138760fc9920bd4ecd93 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sat, 12 Feb 2005 20:22:08 +0000
Subject: [PATCH] make maximize reversible

---
 Fltk/Callbacks.cpp | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 3cacd74eb4..7a4d7928c1 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.334 2005-02-12 18:43:09 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.335 2005-02-12 20:22:08 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -137,6 +137,8 @@ void redraw_cb(CALLBACK_ARGS)
 
 void window_cb(CALLBACK_ARGS)
 {
+  static int oldx = 0, oldy = 0, oldw = 0, oldh = 0, zoom = 1;
+
   switch((long)data){
   case 0: // minimize
     WID->g_window->iconize();
@@ -147,8 +149,19 @@ void window_cb(CALLBACK_ARGS)
     if(WID->msg_window->shown()) WID->msg_window->iconize();
     WID->m_window->iconize();
     break;
-  case 1: // maximize
-    WID->g_window->size((int)(0.95*Fl::w()), (int)(0.95*Fl::h())); // bof bof bof
+  case 1: // zoom
+    if(zoom){
+      oldx = WID->g_window->x();
+      oldy = WID->g_window->y();
+      oldw = WID->g_window->w();
+      oldh = WID->g_window->h();
+      WID->g_window->resize(Fl::x(), Fl::y(), Fl::w(), Fl::h());
+      zoom = 0;
+    }
+    else{
+      WID->g_window->resize(oldx, oldy, oldw, oldh);
+      zoom = 1;
+    }
     WID->g_window->show();
     WID->m_window->show();
     break;
-- 
GitLab