From b730bb890207d206505c338178fd49d244cd554d Mon Sep 17 00:00:00 2001
From: Arisotura <thetotalworm@gmail.com>
Date: Sat, 11 May 2019 15:36:42 +0200
Subject: welp

---
 src/libui_sdl/DlgVideoSettings.h | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 src/libui_sdl/DlgVideoSettings.h

(limited to 'src/libui_sdl/DlgVideoSettings.h')

diff --git a/src/libui_sdl/DlgVideoSettings.h b/src/libui_sdl/DlgVideoSettings.h
new file mode 100644
index 0000000..cd3d1b1
--- /dev/null
+++ b/src/libui_sdl/DlgVideoSettings.h
@@ -0,0 +1,29 @@
+/*
+    Copyright 2016-2019 Arisotura
+
+    This file is part of melonDS.
+
+    melonDS is free software: you can redistribute it and/or modify it under
+    the terms of the GNU General Public License as published by the Free
+    Software Foundation, either version 3 of the License, or (at your option)
+    any later version.
+
+    melonDS is distributed in the hope that it will be useful, but WITHOUT ANY
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with melonDS. If not, see http://www.gnu.org/licenses/.
+*/
+
+#ifndef DLGVIDEOSETTINGS_H
+#define DLGVIDEOSETTINGS_H
+
+namespace DlgVideoSettings
+{
+
+void Open();
+
+}
+
+#endif // DLGVIDEOSETTINGS_H
-- 
cgit v1.2.3


From eb6fe823f8196373906916b47fbeecf5d7a63e8a Mon Sep 17 00:00:00 2001
From: Arisotura <thetotalworm@gmail.com>
Date: Sat, 25 May 2019 20:58:32 +0200
Subject: close any opened dialogs when closing the main window

---
 src/libui_sdl/DlgAudioSettings.cpp |  7 +++++++
 src/libui_sdl/DlgAudioSettings.h   |  1 +
 src/libui_sdl/DlgEmuSettings.cpp   |  7 +++++++
 src/libui_sdl/DlgEmuSettings.h     |  1 +
 src/libui_sdl/DlgInputConfig.cpp   |  8 ++++++++
 src/libui_sdl/DlgInputConfig.h     |  1 +
 src/libui_sdl/DlgVideoSettings.cpp |  7 +++++++
 src/libui_sdl/DlgVideoSettings.h   |  1 +
 src/libui_sdl/DlgWifiSettings.cpp  |  7 +++++++
 src/libui_sdl/DlgWifiSettings.h    |  1 +
 src/libui_sdl/main.cpp             | 13 +++++++++++++
 11 files changed, 54 insertions(+)

(limited to 'src/libui_sdl/DlgVideoSettings.h')

diff --git a/src/libui_sdl/DlgAudioSettings.cpp b/src/libui_sdl/DlgAudioSettings.cpp
index 66bdf61..385128c 100644
--- a/src/libui_sdl/DlgAudioSettings.cpp
+++ b/src/libui_sdl/DlgAudioSettings.cpp
@@ -180,4 +180,11 @@ void Open()
     uiControlShow(uiControl(win));
 }
 
+void Close()
+{
+    if (!opened) return;
+    uiControlDestroy(uiControl(win));
+    opened = false;
+}
+
 }
diff --git a/src/libui_sdl/DlgAudioSettings.h b/src/libui_sdl/DlgAudioSettings.h
index 30a5d53..f058c25 100644
--- a/src/libui_sdl/DlgAudioSettings.h
+++ b/src/libui_sdl/DlgAudioSettings.h
@@ -23,6 +23,7 @@ namespace DlgAudioSettings
 {
 
 void Open();
+void Close();
 
 }
 
diff --git a/src/libui_sdl/DlgEmuSettings.cpp b/src/libui_sdl/DlgEmuSettings.cpp
index ad8c047..768560d 100644
--- a/src/libui_sdl/DlgEmuSettings.cpp
+++ b/src/libui_sdl/DlgEmuSettings.cpp
@@ -107,4 +107,11 @@ void Open()
     uiControlShow(uiControl(win));
 }
 
+void Close()
+{
+    if (!opened) return;
+    uiControlDestroy(uiControl(win));
+    opened = false;
+}
+
 }
diff --git a/src/libui_sdl/DlgEmuSettings.h b/src/libui_sdl/DlgEmuSettings.h
index 126497a..baff7ce 100644
--- a/src/libui_sdl/DlgEmuSettings.h
+++ b/src/libui_sdl/DlgEmuSettings.h
@@ -23,6 +23,7 @@ namespace DlgEmuSettings
 {
 
 void Open();
+void Close();
 
 }
 
diff --git a/src/libui_sdl/DlgInputConfig.cpp b/src/libui_sdl/DlgInputConfig.cpp
index 513bd90..98cdf8c 100644
--- a/src/libui_sdl/DlgInputConfig.cpp
+++ b/src/libui_sdl/DlgInputConfig.cpp
@@ -450,5 +450,13 @@ void Open(int type)
     uiControlShow(uiControl(dlg->win));
 }
 
+void Close(int type)
+{
+    if (openedmask & (1<<type))
+        uiControlDestroy(uiControl(inputdlg[type].win));
+
+    openedmask &= ~(1<<type);
+}
+
 }
 
diff --git a/src/libui_sdl/DlgInputConfig.h b/src/libui_sdl/DlgInputConfig.h
index 9a73f37..94c7325 100644
--- a/src/libui_sdl/DlgInputConfig.h
+++ b/src/libui_sdl/DlgInputConfig.h
@@ -23,6 +23,7 @@ namespace DlgInputConfig
 {
 
 void Open(int type);
+void Close(int type);
 
 }
 
diff --git a/src/libui_sdl/DlgVideoSettings.cpp b/src/libui_sdl/DlgVideoSettings.cpp
index 69e5ac5..8749dc5 100644
--- a/src/libui_sdl/DlgVideoSettings.cpp
+++ b/src/libui_sdl/DlgVideoSettings.cpp
@@ -306,4 +306,11 @@ void Open()
     uiControlShow(uiControl(win));
 }
 
+void Close()
+{
+    if (!opened) return;
+    uiControlDestroy(uiControl(win));
+    opened = false;
+}
+
 }
diff --git a/src/libui_sdl/DlgVideoSettings.h b/src/libui_sdl/DlgVideoSettings.h
index cd3d1b1..25a938f 100644
--- a/src/libui_sdl/DlgVideoSettings.h
+++ b/src/libui_sdl/DlgVideoSettings.h
@@ -23,6 +23,7 @@ namespace DlgVideoSettings
 {
 
 void Open();
+void Close();
 
 }
 
diff --git a/src/libui_sdl/DlgWifiSettings.cpp b/src/libui_sdl/DlgWifiSettings.cpp
index e16ce50..09080a0 100644
--- a/src/libui_sdl/DlgWifiSettings.cpp
+++ b/src/libui_sdl/DlgWifiSettings.cpp
@@ -261,4 +261,11 @@ void Open()
     uiControlShow(uiControl(win));
 }
 
+void Close()
+{
+    if (!opened) return;
+    uiControlDestroy(uiControl(win));
+    opened = false;
+}
+
 }
diff --git a/src/libui_sdl/DlgWifiSettings.h b/src/libui_sdl/DlgWifiSettings.h
index f7b7398..466ce10 100644
--- a/src/libui_sdl/DlgWifiSettings.h
+++ b/src/libui_sdl/DlgWifiSettings.h
@@ -23,6 +23,7 @@ namespace DlgWifiSettings
 {
 
 void Open();
+void Close();
 
 }
 
diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp
index c086bbf..0c7aacd 100644
--- a/src/libui_sdl/main.cpp
+++ b/src/libui_sdl/main.cpp
@@ -1637,11 +1637,23 @@ void UndoStateLoad()
 }
 
 
+void CloseAllDialogs()
+{
+    DlgAudioSettings::Close();
+    DlgEmuSettings::Close();
+    DlgInputConfig::Close(0);
+    DlgInputConfig::Close(1);
+    DlgVideoSettings::Close();
+    DlgWifiSettings::Close();
+}
+
+
 int OnCloseWindow(uiWindow* window, void* blarg)
 {
     EmuRunning = 3;
     while (EmuStatus != 3);
 
+    CloseAllDialogs();
     uiQuit();
     return 1;
 }
@@ -1678,6 +1690,7 @@ void OnCloseByMenu(uiMenuItem* item, uiWindow* window, void* blarg)
     EmuRunning = 3;
     while (EmuStatus != 3);
 
+    CloseAllDialogs();
     DestroyMainWindow();
     uiQuit();
 }
-- 
cgit v1.2.3