[arch-commits] Commit in openbve/repos/community-any (8 files)

Balló György bgyorgy at archlinux.org
Sat Sep 1 22:33:27 UTC 2018


    Date: Saturday, September 1, 2018 @ 22:33:26
  Author: bgyorgy
Revision: 375994

archrelease: copy trunk to community-any

Added:
  openbve/repos/community-any/PKGBUILD
    (from rev 375993, openbve/trunk/PKGBUILD)
  openbve/repos/community-any/force-close.patch
    (from rev 375993, openbve/trunk/force-close.patch)
  openbve/repos/community-any/openbve.desktop
    (from rev 375993, openbve/trunk/openbve.desktop)
  openbve/repos/community-any/openbve.sh
    (from rev 375993, openbve/trunk/openbve.sh)
Deleted:
  openbve/repos/community-any/PKGBUILD
  openbve/repos/community-any/force-close.patch
  openbve/repos/community-any/openbve.desktop
  openbve/repos/community-any/openbve.sh

-------------------+
 PKGBUILD          |  114 +++++-----
 force-close.patch |  586 ++++++++++++++++++++++++++--------------------------
 openbve.desktop   |   18 -
 openbve.sh        |    4 
 4 files changed, 361 insertions(+), 361 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2018-09-01 22:33:14 UTC (rev 375993)
+++ PKGBUILD	2018-09-01 22:33:26 UTC (rev 375994)
@@ -1,57 +0,0 @@
-# Maintainer: Balló György <ballogyor+arch at gmail dot com>
-
-pkgname=openbve
-_pkgname=OpenBVE
-pkgver=1.5.3.7
-pkgrel=1
-pkgdesc="Free-as-in-freedom train simulator placed in the public domain"
-arch=('any')
-url="http://openbve-project.net/"
-license=('MIT' 'custom:public domain')
-depends=('libxi' 'mono' 'openal')
-source=($_pkgname-$pkgver.tar.gz::https://github.com/leezer3/$_pkgname/archive/$pkgver.tar.gz
-        $pkgname.sh
-        $pkgname.desktop
-        force-close.patch)
-sha256sums=('cd8e038809a8b43762e5ebdf90d3fc0280ef9f42ef89296f7c8a3b894cb6f5e1'
-            'cf0f2a28e65248f742d6bb80f3101e36f24097e699c4e5acdf3fd4dbb965d3c3'
-            '8190945fa834ecdcf8a3f271264e5be2e288933ecde943060346e16537611c0f'
-            'b24f828f63fd0017afc49b266ea198725fd6fe3e68d1c86d40257047b6f7edfa')
-
-prepare() {
-  cd $_pkgname-$pkgver
-  # Attempt to force close the window
-  # https://github.com/leezer3/OpenBVE/pull/214
-  patch -Np1 -i ../force-close.patch
-}
-
-build() {
-  cd $_pkgname-$pkgver
-  xbuild /p:Configuration=Release OpenBVE.sln
-}
-
-package() {
-  cd $_pkgname-$pkgver
-
-  # Binaries
-  install -dm755 "$pkgdir/usr/lib/$pkgname/"
-  cp -r bin_release/* "$pkgdir/usr/lib/$pkgname/"
-
-  # Data
-  install -dm755 "$pkgdir/usr/share/games/$pkgname/"
-  mv "$pkgdir/usr/lib/$pkgname/Data" "$pkgdir/usr/share/games/$pkgname/"
-  ln -s ../../share/games/$pkgname/Data "$pkgdir/usr/lib/$pkgname/Data"
-
-  # Executable
-  install -Dm755 ../$pkgname.sh "$pkgdir/usr/bin/$pkgname"
-
-  # Desktop file and icon
-  install -Dm644 ../$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
-  mkdir -p "$pkgdir/usr/share/pixmaps"
-  ln -s ../games/$pkgname/Data/Menu/logo.png "$pkgdir/usr/share/pixmaps/$pkgname.png"
-
-  # License
-  install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
-  install -m644 licenses/* Readme.md \
-    "$pkgdir/usr/share/licenses/$pkgname/"
-}

Copied: openbve/repos/community-any/PKGBUILD (from rev 375993, openbve/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2018-09-01 22:33:26 UTC (rev 375994)
@@ -0,0 +1,57 @@
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=openbve
+_pkgname=OpenBVE
+pkgver=1.5.3.8
+pkgrel=1
+pkgdesc="Free-as-in-freedom train simulator placed in the public domain"
+arch=('any')
+url="http://openbve-project.net/"
+license=('MIT' 'custom:public domain')
+depends=('libxi' 'mono' 'openal')
+source=($_pkgname-$pkgver.tar.gz::https://github.com/leezer3/$_pkgname/archive/$pkgver.tar.gz
+        $pkgname.sh
+        $pkgname.desktop
+        force-close.patch)
+sha256sums=('b7eaf59d26c2400c81fd9568fab141a23a0d536844164c9aa42d52ffd7a03338'
+            'cf0f2a28e65248f742d6bb80f3101e36f24097e699c4e5acdf3fd4dbb965d3c3'
+            '8190945fa834ecdcf8a3f271264e5be2e288933ecde943060346e16537611c0f'
+            'b24f828f63fd0017afc49b266ea198725fd6fe3e68d1c86d40257047b6f7edfa')
+
+prepare() {
+  cd $_pkgname-$pkgver
+  # Attempt to force close the window
+  # https://github.com/leezer3/OpenBVE/pull/214
+  patch -Np1 -i ../force-close.patch
+}
+
+build() {
+  cd $_pkgname-$pkgver
+  xbuild /p:Configuration=Release OpenBVE.sln
+}
+
+package() {
+  cd $_pkgname-$pkgver
+
+  # Binaries
+  install -dm755 "$pkgdir/usr/lib/$pkgname/"
+  cp -r bin_release/* "$pkgdir/usr/lib/$pkgname/"
+
+  # Data
+  install -dm755 "$pkgdir/usr/share/games/$pkgname/"
+  mv "$pkgdir/usr/lib/$pkgname/Data" "$pkgdir/usr/share/games/$pkgname/"
+  ln -s ../../share/games/$pkgname/Data "$pkgdir/usr/lib/$pkgname/Data"
+
+  # Executable
+  install -Dm755 ../$pkgname.sh "$pkgdir/usr/bin/$pkgname"
+
+  # Desktop file and icon
+  install -Dm644 ../$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+  mkdir -p "$pkgdir/usr/share/pixmaps"
+  ln -s ../games/$pkgname/Data/Menu/logo.png "$pkgdir/usr/share/pixmaps/$pkgname.png"
+
+  # License
+  install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
+  install -m644 licenses/* Readme.md \
+    "$pkgdir/usr/share/licenses/$pkgname/"
+}

Deleted: force-close.patch
===================================================================
--- force-close.patch	2018-09-01 22:33:14 UTC (rev 375993)
+++ force-close.patch	2018-09-01 22:33:26 UTC (rev 375994)
@@ -1,293 +0,0 @@
-From bf1c0db61bc11a6fc64db6529941d80a0eeff449 Mon Sep 17 00:00:00 2001
-From: Christopher Lees <leezer3 at gmail.com>
-Date: Fri, 12 Jan 2018 14:06:38 +0000
-Subject: [PATCH 1/4] Change: Attempt to force close the window under Mono
-
----
- source/OpenBVE/System/GameWindow.cs      |  8 ++++++++
- source/OpenBVE/UserInterface/formMain.cs | 14 +++++++++++++-
- 2 files changed, 21 insertions(+), 1 deletion(-)
-
-diff --git a/source/OpenBVE/System/GameWindow.cs b/source/OpenBVE/System/GameWindow.cs
-index 6c71204a..7e963408 100644
---- a/source/OpenBVE/System/GameWindow.cs
-+++ b/source/OpenBVE/System/GameWindow.cs
-@@ -66,6 +66,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
- 				if (MainLoop.Quit)
- 				{
- 					Close();
-+					if (Program.CurrentlyRunningOnMono)
-+					{
-+						Environment.Exit(0);
-+					}
- 				}
- 				//If the menu state has not changed, don't update the rendered simulation
- 				return;
-@@ -133,6 +137,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
- 			if (MainLoop.Quit)
- 			{
- 				Program.currentGameWindow.Exit();
-+				if (Program.CurrentlyRunningOnMono)
-+				{
-+					Environment.Exit(0);
-+				}				
- 			}
- 			Renderer.UpdateLighting();
- 			Renderer.RenderScene(TimeElapsed);
-diff --git a/source/OpenBVE/UserInterface/formMain.cs b/source/OpenBVE/UserInterface/formMain.cs
-index 6ab37ff0..97592106 100644
---- a/source/OpenBVE/UserInterface/formMain.cs
-+++ b/source/OpenBVE/UserInterface/formMain.cs
-@@ -1,5 +1,6 @@
- using System;
- using System.ComponentModel;
-+using System.Diagnostics;
- using System.Drawing;
- using System.Net;
- using System.Windows.Forms;
-@@ -1353,8 +1354,19 @@ private void buttonClose_Click(object sender, EventArgs e)
- 			//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
- 			//This fixes the main form failing to close on Linux
- 			Application.DoEvents();
-+			if (Program.CurrentlyRunningOnMono)
-+			{
-+				//On some systems, the process *still* seems to hang around, so explicity issue the Environment.Exit() call
-+				//https://github.com/leezer3/OpenBVE/issues/213
-+				Environment.Exit(0);
-+			}
- 		}
- 
-+		protected override void OnFormClosing(FormClosingEventArgs e)
-+		{
-+			//Call the explicit closing method
-+			buttonClose_Click(this, e);
-+		}
- 
- 
- 		// ======
-From 0c37c8c2cbb59b765aff0fa6f0ef3e198fceda87 Mon Sep 17 00:00:00 2001
-From: Christopher Lees <leezer3 at gmail.com>
-Date: Sat, 13 Jan 2018 12:20:01 +0000
-Subject: [PATCH 2/4] Change: Fiddle some more with window closing...
-
----
- source/OpenBVE/Game/Menu.cs                    |  4 ++--
- source/OpenBVE/System/GameWindow.cs            |  8 ++++----
- source/OpenBVE/System/MainLoop.cs              | 11 ++++++++---
- source/OpenBVE/UserInterface/formMain.Start.cs |  6 ++++--
- source/OpenBVE/UserInterface/formMain.cs       | 18 +++++++++++++-----
- 5 files changed, 31 insertions(+), 16 deletions(-)
-
-diff --git a/source/OpenBVE/Game/Menu.cs b/source/OpenBVE/Game/Menu.cs
-index 0108a6da..f27d4439 100644
---- a/source/OpenBVE/Game/Menu.cs
-+++ b/source/OpenBVE/Game/Menu.cs
-@@ -667,7 +667,7 @@ internal void ProcessCommand(Interface.Command cmd, double timeElapsed)
- 								Reset();
- 								Program.RestartArguments =
- 									Interface.CurrentOptions.GameMode == Interface.GameMode.Arcade ? "/review" : "";
--								MainLoop.Quit = true;
-+								MainLoop.Quit = MainLoop.QuitMode.ExitToMenu;
- 								break;
- 							case MenuTag.Control:               // CONTROL CUSTOMIZATION
- 								PushMenu(MenuType.Control, ((MenuCommand)menu.Items[menu.Selection]).Data);
-@@ -676,7 +676,7 @@ internal void ProcessCommand(Interface.Command cmd, double timeElapsed)
- 								break;
- 							case MenuTag.Quit:                  // QUIT PROGRAMME
- 								Reset();
--								MainLoop.Quit = true;
-+								MainLoop.Quit = MainLoop.QuitMode.QuitProgram;
- 								break;
- 						}
- 					}
-diff --git a/source/OpenBVE/System/GameWindow.cs b/source/OpenBVE/System/GameWindow.cs
-index 7e963408..1235817a 100644
---- a/source/OpenBVE/System/GameWindow.cs
-+++ b/source/OpenBVE/System/GameWindow.cs
-@@ -63,10 +63,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
- 				//Renderer.UpdateLighting();
- 				Renderer.RenderScene(TimeElapsed);
- 				Program.currentGameWindow.SwapBuffers();
--				if (MainLoop.Quit)
-+				if (MainLoop.Quit != MainLoop.QuitMode.ContinueGame)
- 				{
- 					Close();
--					if (Program.CurrentlyRunningOnMono)
-+					if (Program.CurrentlyRunningOnMono && MainLoop.Quit == MainLoop.QuitMode.QuitProgram)
- 					{
- 						Environment.Exit(0);
- 					}
-@@ -134,10 +134,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
- 			}
- 
- 			World.CameraAlignmentDirection = new World.CameraAlignment();
--			if (MainLoop.Quit)
-+			if (MainLoop.Quit != MainLoop.QuitMode.ContinueGame)
- 			{
- 				Program.currentGameWindow.Exit();
--				if (Program.CurrentlyRunningOnMono)
-+				if (Program.CurrentlyRunningOnMono && MainLoop.Quit == MainLoop.QuitMode.QuitProgram)
- 				{
- 					Environment.Exit(0);
- 				}				
-diff --git a/source/OpenBVE/System/MainLoop.cs b/source/OpenBVE/System/MainLoop.cs
-index 3633c4ed..16c6c435 100644
---- a/source/OpenBVE/System/MainLoop.cs
-+++ b/source/OpenBVE/System/MainLoop.cs
-@@ -10,10 +10,15 @@ namespace OpenBve
- {
- 	internal static partial class MainLoop
- 	{
--
-+		internal enum QuitMode
-+		{
-+			ContinueGame = 0,
-+			QuitProgram = 1,
-+			ExitToMenu = 2
-+		}
- 		// declarations
- 		internal static bool LimitFramerate = false;
--		internal static bool Quit = false;
-+		internal static QuitMode Quit = QuitMode.ContinueGame;
- 		/// <summary>BlockKeyRepeat should be set to 'true' whilst processing a KeyUp or KeyDown event.</summary>
- 		internal static bool BlockKeyRepeat;
- 		/// <summary>The current simulation time-factor</summary>
-@@ -87,7 +92,7 @@ internal static void StartLoopEx(formMain.MainDialogResult result)
- 
- 		private static void OpenTKQuit(object sender, CancelEventArgs e)
- 		{
--			Quit = true;
-+			Quit = QuitMode.QuitProgram;
- 		}
- 
- 		/********************
-diff --git a/source/OpenBVE/UserInterface/formMain.Start.cs b/source/OpenBVE/UserInterface/formMain.Start.cs
-index 11a2051c..cd3c1088 100644
---- a/source/OpenBVE/UserInterface/formMain.Start.cs
-+++ b/source/OpenBVE/UserInterface/formMain.Start.cs
-@@ -705,11 +705,13 @@ private void listviewTrainFolders_SelectedIndexChanged(object sender, EventArgs
- 		// =====
- 
- 		// start
-+		private readonly object StartGame = new Object();
-+
- 		private void buttonStart_Click(object sender, EventArgs e) {
- 			if (Result.RouteFile != null & Result.TrainFolder != null) {
- 				if (System.IO.File.Exists(Result.RouteFile) & System.IO.Directory.Exists(Result.TrainFolder)) {
- 					Result.Start = true;
--					this.Close();
-+					buttonClose_Click(StartGame, e);
- 					//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
- 					//This fixes the main form failing to close on Linux
- 					Application.DoEvents();
-@@ -1171,4 +1173,4 @@ private void routeWorkerThread_completed(object sender, RunWorkerCompletedEventA
- 		}
- 
- 	}
--}
-\ No newline at end of file
-+}
-diff --git a/source/OpenBVE/UserInterface/formMain.cs b/source/OpenBVE/UserInterface/formMain.cs
-index 97592106..e461c7e7 100644
---- a/source/OpenBVE/UserInterface/formMain.cs
-+++ b/source/OpenBVE/UserInterface/formMain.cs
-@@ -1346,15 +1346,19 @@ private void linkHomepage_LinkClicked(object sender, LinkLabelLinkClickedEventAr
- 			}
- 		}
- 
--
--		// close
-+		private bool Closing = false;
- 		private void buttonClose_Click(object sender, EventArgs e)
- 		{
--			this.Close();
-+			Closing = true;
-+			if (sender != null)
-+			{
-+				//Don't cause an infinite loop
-+				this.Close();
-+			}
- 			//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
- 			//This fixes the main form failing to close on Linux
- 			Application.DoEvents();
--			if (Program.CurrentlyRunningOnMono)
-+			if (Program.CurrentlyRunningOnMono && sender != StartGame)
- 			{
- 				//On some systems, the process *still* seems to hang around, so explicity issue the Environment.Exit() call
- 				//https://github.com/leezer3/OpenBVE/issues/213
-@@ -1364,8 +1368,12 @@ private void buttonClose_Click(object sender, EventArgs e)
- 
- 		protected override void OnFormClosing(FormClosingEventArgs e)
- 		{
-+			if (Closing)
-+			{
-+				return;
-+			}
- 			//Call the explicit closing method
--			buttonClose_Click(this, e);
-+			buttonClose_Click(null, e);
- 		}
- 
- 
-
-From 11bb646bc252f642e7f3afff7d2c398ca0cd5709 Mon Sep 17 00:00:00 2001
-From: Christopher Lees <leezer3 at gmail.com>
-Date: Wed, 17 Jan 2018 17:32:09 +0000
-Subject: [PATCH 3/4] Change: Another force-quit case
-
----
- source/OpenBVE/System/GameWindow.cs | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/source/OpenBVE/System/GameWindow.cs b/source/OpenBVE/System/GameWindow.cs
-index 1235817a..77fdcb05 100644
---- a/source/OpenBVE/System/GameWindow.cs
-+++ b/source/OpenBVE/System/GameWindow.cs
-@@ -316,6 +316,12 @@ protected override void OnClosing(CancelEventArgs e)
- 				e.Cancel = true;
- 				Loading.Cancel = true;
- 			}
-+
-+			if (MainLoop.Quit == MainLoop.QuitMode.ContinueGame && Program.CurrentlyRunningOnMono)
-+			{
-+				//More forcefully close under Mono, stuff *still* hanging around....
-+				Environment.Exit(0);
-+			}
- 		}
- 		/// <summary>This method is called once the route and train data have been preprocessed, in order to physically setup the simulation</summary>
- 		private void SetupSimulation()
-
-From 4589fcb4500e04d13ccee5a14f64d771ce448a53 Mon Sep 17 00:00:00 2001
-From: Christopher Lees <leezer3 at gmail.com>
-Date: Wed, 17 Jan 2018 17:59:39 +0000
-Subject: [PATCH 4/4] Fix: Options save & cleanup not triggered correctly
-
----
- source/OpenBVE/UserInterface/formMain.Designer.cs | 1 -
- source/OpenBVE/UserInterface/formMain.cs          | 1 +
- 2 files changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/source/OpenBVE/UserInterface/formMain.Designer.cs b/source/OpenBVE/UserInterface/formMain.Designer.cs
-index 805f55a2..46a14d82 100644
---- a/source/OpenBVE/UserInterface/formMain.Designer.cs
-+++ b/source/OpenBVE/UserInterface/formMain.Designer.cs
-@@ -5289,7 +5289,6 @@ partial class formMain {
- 			this.Name = "formMain";
- 			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- 			this.Text = "openBVE";
--			this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formMain_FormClosing);
- 			this.Load += new System.EventHandler(this.formMain_Load);
- 			this.Shown += new System.EventHandler(this.formMain_Shown);
- 			this.Resize += new System.EventHandler(this.formMain_Resize);
-diff --git a/source/OpenBVE/UserInterface/formMain.cs b/source/OpenBVE/UserInterface/formMain.cs
-index e461c7e7..ee8476cf 100644
---- a/source/OpenBVE/UserInterface/formMain.cs
-+++ b/source/OpenBVE/UserInterface/formMain.cs
-@@ -1357,6 +1357,7 @@ private void buttonClose_Click(object sender, EventArgs e)
- 			}
- 			//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
- 			//This fixes the main form failing to close on Linux
-+			formMain_FormClosing(sender, new FormClosingEventArgs(CloseReason.UserClosing, false));
- 			Application.DoEvents();
- 			if (Program.CurrentlyRunningOnMono && sender != StartGame)
- 			{

Copied: openbve/repos/community-any/force-close.patch (from rev 375993, openbve/trunk/force-close.patch)
===================================================================
--- force-close.patch	                        (rev 0)
+++ force-close.patch	2018-09-01 22:33:26 UTC (rev 375994)
@@ -0,0 +1,293 @@
+From bf1c0db61bc11a6fc64db6529941d80a0eeff449 Mon Sep 17 00:00:00 2001
+From: Christopher Lees <leezer3 at gmail.com>
+Date: Fri, 12 Jan 2018 14:06:38 +0000
+Subject: [PATCH 1/4] Change: Attempt to force close the window under Mono
+
+---
+ source/OpenBVE/System/GameWindow.cs      |  8 ++++++++
+ source/OpenBVE/UserInterface/formMain.cs | 14 +++++++++++++-
+ 2 files changed, 21 insertions(+), 1 deletion(-)
+
+diff --git a/source/OpenBVE/System/GameWindow.cs b/source/OpenBVE/System/GameWindow.cs
+index 6c71204a..7e963408 100644
+--- a/source/OpenBVE/System/GameWindow.cs
++++ b/source/OpenBVE/System/GameWindow.cs
+@@ -66,6 +66,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
+ 				if (MainLoop.Quit)
+ 				{
+ 					Close();
++					if (Program.CurrentlyRunningOnMono)
++					{
++						Environment.Exit(0);
++					}
+ 				}
+ 				//If the menu state has not changed, don't update the rendered simulation
+ 				return;
+@@ -133,6 +137,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
+ 			if (MainLoop.Quit)
+ 			{
+ 				Program.currentGameWindow.Exit();
++				if (Program.CurrentlyRunningOnMono)
++				{
++					Environment.Exit(0);
++				}				
+ 			}
+ 			Renderer.UpdateLighting();
+ 			Renderer.RenderScene(TimeElapsed);
+diff --git a/source/OpenBVE/UserInterface/formMain.cs b/source/OpenBVE/UserInterface/formMain.cs
+index 6ab37ff0..97592106 100644
+--- a/source/OpenBVE/UserInterface/formMain.cs
++++ b/source/OpenBVE/UserInterface/formMain.cs
+@@ -1,5 +1,6 @@
+ using System;
+ using System.ComponentModel;
++using System.Diagnostics;
+ using System.Drawing;
+ using System.Net;
+ using System.Windows.Forms;
+@@ -1353,8 +1354,19 @@ private void buttonClose_Click(object sender, EventArgs e)
+ 			//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
+ 			//This fixes the main form failing to close on Linux
+ 			Application.DoEvents();
++			if (Program.CurrentlyRunningOnMono)
++			{
++				//On some systems, the process *still* seems to hang around, so explicity issue the Environment.Exit() call
++				//https://github.com/leezer3/OpenBVE/issues/213
++				Environment.Exit(0);
++			}
+ 		}
+ 
++		protected override void OnFormClosing(FormClosingEventArgs e)
++		{
++			//Call the explicit closing method
++			buttonClose_Click(this, e);
++		}
+ 
+ 
+ 		// ======
+From 0c37c8c2cbb59b765aff0fa6f0ef3e198fceda87 Mon Sep 17 00:00:00 2001
+From: Christopher Lees <leezer3 at gmail.com>
+Date: Sat, 13 Jan 2018 12:20:01 +0000
+Subject: [PATCH 2/4] Change: Fiddle some more with window closing...
+
+---
+ source/OpenBVE/Game/Menu.cs                    |  4 ++--
+ source/OpenBVE/System/GameWindow.cs            |  8 ++++----
+ source/OpenBVE/System/MainLoop.cs              | 11 ++++++++---
+ source/OpenBVE/UserInterface/formMain.Start.cs |  6 ++++--
+ source/OpenBVE/UserInterface/formMain.cs       | 18 +++++++++++++-----
+ 5 files changed, 31 insertions(+), 16 deletions(-)
+
+diff --git a/source/OpenBVE/Game/Menu.cs b/source/OpenBVE/Game/Menu.cs
+index 0108a6da..f27d4439 100644
+--- a/source/OpenBVE/Game/Menu.cs
++++ b/source/OpenBVE/Game/Menu.cs
+@@ -667,7 +667,7 @@ internal void ProcessCommand(Interface.Command cmd, double timeElapsed)
+ 								Reset();
+ 								Program.RestartArguments =
+ 									Interface.CurrentOptions.GameMode == Interface.GameMode.Arcade ? "/review" : "";
+-								MainLoop.Quit = true;
++								MainLoop.Quit = MainLoop.QuitMode.ExitToMenu;
+ 								break;
+ 							case MenuTag.Control:               // CONTROL CUSTOMIZATION
+ 								PushMenu(MenuType.Control, ((MenuCommand)menu.Items[menu.Selection]).Data);
+@@ -676,7 +676,7 @@ internal void ProcessCommand(Interface.Command cmd, double timeElapsed)
+ 								break;
+ 							case MenuTag.Quit:                  // QUIT PROGRAMME
+ 								Reset();
+-								MainLoop.Quit = true;
++								MainLoop.Quit = MainLoop.QuitMode.QuitProgram;
+ 								break;
+ 						}
+ 					}
+diff --git a/source/OpenBVE/System/GameWindow.cs b/source/OpenBVE/System/GameWindow.cs
+index 7e963408..1235817a 100644
+--- a/source/OpenBVE/System/GameWindow.cs
++++ b/source/OpenBVE/System/GameWindow.cs
+@@ -63,10 +63,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
+ 				//Renderer.UpdateLighting();
+ 				Renderer.RenderScene(TimeElapsed);
+ 				Program.currentGameWindow.SwapBuffers();
+-				if (MainLoop.Quit)
++				if (MainLoop.Quit != MainLoop.QuitMode.ContinueGame)
+ 				{
+ 					Close();
+-					if (Program.CurrentlyRunningOnMono)
++					if (Program.CurrentlyRunningOnMono && MainLoop.Quit == MainLoop.QuitMode.QuitProgram)
+ 					{
+ 						Environment.Exit(0);
+ 					}
+@@ -134,10 +134,10 @@ protected override void OnRenderFrame(FrameEventArgs e)
+ 			}
+ 
+ 			World.CameraAlignmentDirection = new World.CameraAlignment();
+-			if (MainLoop.Quit)
++			if (MainLoop.Quit != MainLoop.QuitMode.ContinueGame)
+ 			{
+ 				Program.currentGameWindow.Exit();
+-				if (Program.CurrentlyRunningOnMono)
++				if (Program.CurrentlyRunningOnMono && MainLoop.Quit == MainLoop.QuitMode.QuitProgram)
+ 				{
+ 					Environment.Exit(0);
+ 				}				
+diff --git a/source/OpenBVE/System/MainLoop.cs b/source/OpenBVE/System/MainLoop.cs
+index 3633c4ed..16c6c435 100644
+--- a/source/OpenBVE/System/MainLoop.cs
++++ b/source/OpenBVE/System/MainLoop.cs
+@@ -10,10 +10,15 @@ namespace OpenBve
+ {
+ 	internal static partial class MainLoop
+ 	{
+-
++		internal enum QuitMode
++		{
++			ContinueGame = 0,
++			QuitProgram = 1,
++			ExitToMenu = 2
++		}
+ 		// declarations
+ 		internal static bool LimitFramerate = false;
+-		internal static bool Quit = false;
++		internal static QuitMode Quit = QuitMode.ContinueGame;
+ 		/// <summary>BlockKeyRepeat should be set to 'true' whilst processing a KeyUp or KeyDown event.</summary>
+ 		internal static bool BlockKeyRepeat;
+ 		/// <summary>The current simulation time-factor</summary>
+@@ -87,7 +92,7 @@ internal static void StartLoopEx(formMain.MainDialogResult result)
+ 
+ 		private static void OpenTKQuit(object sender, CancelEventArgs e)
+ 		{
+-			Quit = true;
++			Quit = QuitMode.QuitProgram;
+ 		}
+ 
+ 		/********************
+diff --git a/source/OpenBVE/UserInterface/formMain.Start.cs b/source/OpenBVE/UserInterface/formMain.Start.cs
+index 11a2051c..cd3c1088 100644
+--- a/source/OpenBVE/UserInterface/formMain.Start.cs
++++ b/source/OpenBVE/UserInterface/formMain.Start.cs
+@@ -705,11 +705,13 @@ private void listviewTrainFolders_SelectedIndexChanged(object sender, EventArgs
+ 		// =====
+ 
+ 		// start
++		private readonly object StartGame = new Object();
++
+ 		private void buttonStart_Click(object sender, EventArgs e) {
+ 			if (Result.RouteFile != null & Result.TrainFolder != null) {
+ 				if (System.IO.File.Exists(Result.RouteFile) & System.IO.Directory.Exists(Result.TrainFolder)) {
+ 					Result.Start = true;
+-					this.Close();
++					buttonClose_Click(StartGame, e);
+ 					//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
+ 					//This fixes the main form failing to close on Linux
+ 					Application.DoEvents();
+@@ -1171,4 +1173,4 @@ private void routeWorkerThread_completed(object sender, RunWorkerCompletedEventA
+ 		}
+ 
+ 	}
+-}
+\ No newline at end of file
++}
+diff --git a/source/OpenBVE/UserInterface/formMain.cs b/source/OpenBVE/UserInterface/formMain.cs
+index 97592106..e461c7e7 100644
+--- a/source/OpenBVE/UserInterface/formMain.cs
++++ b/source/OpenBVE/UserInterface/formMain.cs
+@@ -1346,15 +1346,19 @@ private void linkHomepage_LinkClicked(object sender, LinkLabelLinkClickedEventAr
+ 			}
+ 		}
+ 
+-
+-		// close
++		private bool Closing = false;
+ 		private void buttonClose_Click(object sender, EventArgs e)
+ 		{
+-			this.Close();
++			Closing = true;
++			if (sender != null)
++			{
++				//Don't cause an infinite loop
++				this.Close();
++			}
+ 			//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
+ 			//This fixes the main form failing to close on Linux
+ 			Application.DoEvents();
+-			if (Program.CurrentlyRunningOnMono)
++			if (Program.CurrentlyRunningOnMono && sender != StartGame)
+ 			{
+ 				//On some systems, the process *still* seems to hang around, so explicity issue the Environment.Exit() call
+ 				//https://github.com/leezer3/OpenBVE/issues/213
+@@ -1364,8 +1368,12 @@ private void buttonClose_Click(object sender, EventArgs e)
+ 
+ 		protected override void OnFormClosing(FormClosingEventArgs e)
+ 		{
++			if (Closing)
++			{
++				return;
++			}
+ 			//Call the explicit closing method
+-			buttonClose_Click(this, e);
++			buttonClose_Click(null, e);
+ 		}
+ 
+ 
+
+From 11bb646bc252f642e7f3afff7d2c398ca0cd5709 Mon Sep 17 00:00:00 2001
+From: Christopher Lees <leezer3 at gmail.com>
+Date: Wed, 17 Jan 2018 17:32:09 +0000
+Subject: [PATCH 3/4] Change: Another force-quit case
+
+---
+ source/OpenBVE/System/GameWindow.cs | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/source/OpenBVE/System/GameWindow.cs b/source/OpenBVE/System/GameWindow.cs
+index 1235817a..77fdcb05 100644
+--- a/source/OpenBVE/System/GameWindow.cs
++++ b/source/OpenBVE/System/GameWindow.cs
+@@ -316,6 +316,12 @@ protected override void OnClosing(CancelEventArgs e)
+ 				e.Cancel = true;
+ 				Loading.Cancel = true;
+ 			}
++
++			if (MainLoop.Quit == MainLoop.QuitMode.ContinueGame && Program.CurrentlyRunningOnMono)
++			{
++				//More forcefully close under Mono, stuff *still* hanging around....
++				Environment.Exit(0);
++			}
+ 		}
+ 		/// <summary>This method is called once the route and train data have been preprocessed, in order to physically setup the simulation</summary>
+ 		private void SetupSimulation()
+
+From 4589fcb4500e04d13ccee5a14f64d771ce448a53 Mon Sep 17 00:00:00 2001
+From: Christopher Lees <leezer3 at gmail.com>
+Date: Wed, 17 Jan 2018 17:59:39 +0000
+Subject: [PATCH 4/4] Fix: Options save & cleanup not triggered correctly
+
+---
+ source/OpenBVE/UserInterface/formMain.Designer.cs | 1 -
+ source/OpenBVE/UserInterface/formMain.cs          | 1 +
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source/OpenBVE/UserInterface/formMain.Designer.cs b/source/OpenBVE/UserInterface/formMain.Designer.cs
+index 805f55a2..46a14d82 100644
+--- a/source/OpenBVE/UserInterface/formMain.Designer.cs
++++ b/source/OpenBVE/UserInterface/formMain.Designer.cs
+@@ -5289,7 +5289,6 @@ partial class formMain {
+ 			this.Name = "formMain";
+ 			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ 			this.Text = "openBVE";
+-			this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formMain_FormClosing);
+ 			this.Load += new System.EventHandler(this.formMain_Load);
+ 			this.Shown += new System.EventHandler(this.formMain_Shown);
+ 			this.Resize += new System.EventHandler(this.formMain_Resize);
+diff --git a/source/OpenBVE/UserInterface/formMain.cs b/source/OpenBVE/UserInterface/formMain.cs
+index e461c7e7..ee8476cf 100644
+--- a/source/OpenBVE/UserInterface/formMain.cs
++++ b/source/OpenBVE/UserInterface/formMain.cs
+@@ -1357,6 +1357,7 @@ private void buttonClose_Click(object sender, EventArgs e)
+ 			}
+ 			//HACK: Call Application.DoEvents() to force the message pump to process all pending messages when the form closes
+ 			//This fixes the main form failing to close on Linux
++			formMain_FormClosing(sender, new FormClosingEventArgs(CloseReason.UserClosing, false));
+ 			Application.DoEvents();
+ 			if (Program.CurrentlyRunningOnMono && sender != StartGame)
+ 			{

Deleted: openbve.desktop
===================================================================
--- openbve.desktop	2018-09-01 22:33:14 UTC (rev 375993)
+++ openbve.desktop	2018-09-01 22:33:26 UTC (rev 375994)
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Type=Application
-Name=OpenBVE
-Comment=Train/railway simulator compatible with 'BVE Trainsim' routes
-Comment[hu]=A „BVE Trainsim” útvonalaival kompatibilis vonatszimulátor
-Exec=openbve
-Icon=openbve
-Categories=Game;Simulation;

Copied: openbve/repos/community-any/openbve.desktop (from rev 375993, openbve/trunk/openbve.desktop)
===================================================================
--- openbve.desktop	                        (rev 0)
+++ openbve.desktop	2018-09-01 22:33:26 UTC (rev 375994)
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=OpenBVE
+Comment=Train/railway simulator compatible with 'BVE Trainsim' routes
+Comment[hu]=A „BVE Trainsim” útvonalaival kompatibilis vonatszimulátor
+Exec=openbve
+Icon=openbve
+Categories=Game;Simulation;

Deleted: openbve.sh
===================================================================
--- openbve.sh	2018-09-01 22:33:14 UTC (rev 375993)
+++ openbve.sh	2018-09-01 22:33:26 UTC (rev 375994)
@@ -1,2 +0,0 @@
-#!/bin/sh
-mono /usr/lib/openbve/OpenBve.exe "$@"

Copied: openbve/repos/community-any/openbve.sh (from rev 375993, openbve/trunk/openbve.sh)
===================================================================
--- openbve.sh	                        (rev 0)
+++ openbve.sh	2018-09-01 22:33:26 UTC (rev 375994)
@@ -0,0 +1,2 @@
+#!/bin/sh
+mono /usr/lib/openbve/OpenBve.exe "$@"



More information about the arch-commits mailing list