From a686e6eafd21bc96f35b46ca6dcea6ae9ad06d1a Mon Sep 17 00:00:00 2001
From: Albrecht Schlosser <albrechts.fltk@online.de>
Date: Mon, 1 Jun 2020 19:06:40 +0200
Subject: [PATCH] test/clock: close both windows together

The new window callback demonstrates how to close all (both) windows
when the user closes one window.
---
 test/clock.cxx | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/test/clock.cxx b/test/clock.cxx
index cec836f44..b6c1832fb 100644
--- a/test/clock.cxx
+++ b/test/clock.cxx
@@ -23,12 +23,25 @@
 
 const int dev_test = 0;  // 1 = enable non-standard colors and no-shadow tests
 
+// close all windows when the user closes one of the windows
+
+void close_cb(Fl_Widget *w, void *v) {
+  Fl_Window *win = Fl::first_window();
+  while (win) {
+    win->hide();
+    win = Fl::first_window();
+  }
+  return;
+}
+
 int main(int argc, char **argv) {
   Fl_Double_Window window(220,220,"Fl_Clock");
+  window.callback(close_cb);
   Fl_Clock c1(0,0,220,220); // c1.color(2,1);
   window.resizable(c1);
   window.end();
   Fl_Double_Window window2(220,220,"Fl_Round_Clock");
+  window2.callback(close_cb);
   Fl_Round_Clock c2(0,0,220,220);
   if (dev_test) {
     c2.color(FL_YELLOW,FL_RED); // set background and hands colors, resp.
-- 
GitLab