diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp index befc978fdfc8abd9d8b0cc5fc6e894eededf9bf0..1ed57387832e6999e5e4b6e6f7a567533329cc85 100644 --- a/Fltk/graphicWindow.cpp +++ b/Fltk/graphicWindow.cpp @@ -479,6 +479,12 @@ static void file_rename_cb(Fl_Widget *w, void *data) void file_quit_cb(Fl_Widget *w, void *data) { + if(data){ + std::string opt((const char*)data); + if(opt == "ask") + if(!fl_choice("Do you really want to quit?", "Cancel", "Quit", 0)) + return; + } Msg::Exit(0); } @@ -2712,7 +2718,7 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu) // non-modal) if(main){ win = new mainWindow(width, height, false); - win->callback(file_quit_cb); + win->callback(file_quit_cb, (void*)"ask"); } else{ win = new paletteWindow(width, height, false); @@ -2910,10 +2916,10 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu) win->end(); if(main && detachedMenu){ - menuwin = new mainWindow + menuwin = new paletteWindow (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1], CTX::instance()->nonModalWindows ? true : false, "Gmsh"); - menuwin->callback(file_quit_cb); + menuwin->callback(file_quit_cb, (void*)"ask"); menuwin->box(GMSH_WINDOW_BOX); onelab = new onelabGroup(0, 0, menuwin->w(), menuwin->h()); menuwin->position(CTX::instance()->menuPosition[0], @@ -2956,10 +2962,10 @@ void graphicWindow::detachMenu() } tile->redraw(); - menuwin = new mainWindow + menuwin = new paletteWindow (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1], CTX::instance()->nonModalWindows ? true : false, "Gmsh"); - menuwin->callback(file_quit_cb); + menuwin->callback(file_quit_cb, (void*)"ask"); menuwin->box(GMSH_WINDOW_BOX); menuwin->add(onelab); onelab->resize(0, 0, menuwin->w(), menuwin->h()); diff --git a/Fltk/mainWindow.h b/Fltk/mainWindow.h index 440194a46ff699f1309fd35aa5f769add62cc4be..b6cd6474c5221c32dc087dab98b4b2efcc15f549 100644 --- a/Fltk/mainWindow.h +++ b/Fltk/mainWindow.h @@ -8,7 +8,6 @@ #include <FL/Fl.H> #include <FL/Fl_Double_Window.H> -#include <FL/fl_ask.H> // Derive the main window from Fl_Window (it shows up faster that way) class mainWindow : public Fl_Window { @@ -26,8 +25,7 @@ class mainWindow : public Fl_Window { #else if(Fl::test_shortcut(FL_CTRL+'w')){ #endif - if(fl_choice("Do you really want to quit?", "Cancel", "Quit", 0)) - do_callback(); + do_callback(); return 1; } break;