From 4da674286148d804be6bddb9011d3d28924caf0e Mon Sep 17 00:00:00 2001
From: pineappleEA <67879877+pineappleEA@users.noreply.github.com>
Date: Mon, 18 Jan 2021 22:33:58 +0200
Subject: [PATCH] Fix Linux Icon (#1927)

---
 Ryujinx/Ui/Applet/ErrorAppletDialog.cs     | 3 +++
 Ryujinx/Ui/MainWindow.cs                   | 2 ++
 Ryujinx/Ui/Widgets/GameTableContextMenu.cs | 4 ++++
 Ryujinx/Ui/Widgets/GtkDialog.cs            | 2 ++
 Ryujinx/Ui/Widgets/ProfileDialog.cs        | 2 ++
 Ryujinx/Ui/Windows/AboutWindow.cs          | 2 ++
 Ryujinx/Ui/Windows/ControllerWindow.cs     | 2 ++
 Ryujinx/Ui/Windows/SettingsWindow.cs       | 3 +++
 8 files changed, 20 insertions(+)

diff --git a/Ryujinx/Ui/Applet/ErrorAppletDialog.cs b/Ryujinx/Ui/Applet/ErrorAppletDialog.cs
index a51d532447..db02040f68 100644
--- a/Ryujinx/Ui/Applet/ErrorAppletDialog.cs
+++ b/Ryujinx/Ui/Applet/ErrorAppletDialog.cs
@@ -1,4 +1,5 @@
 using Gtk;
+using System.Reflection;
 
 namespace Ryujinx.Ui.Applet
 {
@@ -6,6 +7,8 @@ namespace Ryujinx.Ui.Applet
     {
         public ErrorAppletDialog(Window parentWindow, DialogFlags dialogFlags, MessageType messageType, string[] buttons) : base(parentWindow, dialogFlags, messageType, ButtonsType.None, null)
         {
+            Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");
+
             int responseId = 0;
 
             if (buttons != null)
diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs
index 2e3437292a..778afd1249 100644
--- a/Ryujinx/Ui/MainWindow.cs
+++ b/Ryujinx/Ui/MainWindow.cs
@@ -22,6 +22,7 @@ using Ryujinx.Ui.Windows;
 using System;
 using System.Diagnostics;
 using System.IO;
+using System.Reflection;
 using System.Runtime.InteropServices;
 using System.Threading;
 using System.Threading.Tasks;
@@ -110,6 +111,7 @@ namespace Ryujinx.Ui
             DefaultWidth  = monitorWidth  < 1280 ? monitorWidth  : 1280;
             DefaultHeight = monitorHeight < 760  ? monitorHeight : 760;
 
+            Icon  = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");
             Title = $"Ryujinx {Program.Version}";
 
             // Hide emulation context status bar.
diff --git a/Ryujinx/Ui/Widgets/GameTableContextMenu.cs b/Ryujinx/Ui/Widgets/GameTableContextMenu.cs
index 5ee8baa381..79cda5ae0c 100644
--- a/Ryujinx/Ui/Widgets/GameTableContextMenu.cs
+++ b/Ryujinx/Ui/Widgets/GameTableContextMenu.cs
@@ -20,6 +20,7 @@ using System.Buffers;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
+using System.Reflection;
 using System.Threading;
 
 using static LibHac.Fs.ApplicationSaveDataManagement;
@@ -85,6 +86,7 @@ namespace Ryujinx.Ui.Widgets
                 using MessageDialog messageDialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.YesNo, null)
                 {
                     Title          = "Ryujinx",
+                    Icon           = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png"),
                     Text           = $"There is no savedata for {titleName} [{titleId:x16}]",
                     SecondaryText  = "Would you like to create savedata for this game?",
                     WindowPosition = WindowPosition.Center
@@ -194,6 +196,7 @@ namespace Ryujinx.Ui.Widgets
                         _dialog = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Cancel, null)
                         {
                             Title          = "Ryujinx - NCA Section Extractor",
+                            Icon           = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png"),
                             SecondaryText  = $"Extracting {ncaSectionType} section from {System.IO.Path.GetFileName(_titleFilePath)}...",
                             WindowPosition = WindowPosition.Center
                         };
@@ -310,6 +313,7 @@ namespace Ryujinx.Ui.Widgets
                                     MessageDialog dialog = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Ok, null)
                                     {
                                         Title          = "Ryujinx - NCA Section Extractor",
+                                        Icon           = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png"),
                                         SecondaryText  = "Extraction has completed successfully.",
                                         WindowPosition = WindowPosition.Center
                                     };
diff --git a/Ryujinx/Ui/Widgets/GtkDialog.cs b/Ryujinx/Ui/Widgets/GtkDialog.cs
index e603383ab6..d8bad60f23 100644
--- a/Ryujinx/Ui/Widgets/GtkDialog.cs
+++ b/Ryujinx/Ui/Widgets/GtkDialog.cs
@@ -1,4 +1,5 @@
 using Gtk;
+using System.Reflection;
 using Ryujinx.Common.Logging;
 
 namespace Ryujinx.Ui.Widgets
@@ -11,6 +12,7 @@ namespace Ryujinx.Ui.Widgets
             : base(null, DialogFlags.Modal, messageType, buttonsType, null)
         {
             Title              = title;
+            Icon               = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");
             Text               = mainText;
             SecondaryText      = secondaryText;
             WindowPosition     = WindowPosition.Center;
diff --git a/Ryujinx/Ui/Widgets/ProfileDialog.cs b/Ryujinx/Ui/Widgets/ProfileDialog.cs
index 8666757263..0f94bd6e61 100644
--- a/Ryujinx/Ui/Widgets/ProfileDialog.cs
+++ b/Ryujinx/Ui/Widgets/ProfileDialog.cs
@@ -1,5 +1,6 @@
 using Gtk;
 using System;
+using System.Reflection;
 
 using GUI = Gtk.Builder.ObjectAttribute;
 
@@ -19,6 +20,7 @@ namespace Ryujinx.Ui.Widgets
         private ProfileDialog(Builder builder) : base(builder.GetObject("_profileDialog").Handle)
         {
             builder.Autoconnect(this);
+            Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");
         }
 
         private void OkToggle_Activated(object sender, EventArgs args)
diff --git a/Ryujinx/Ui/Windows/AboutWindow.cs b/Ryujinx/Ui/Windows/AboutWindow.cs
index ab93e41d11..05c6b13e5e 100644
--- a/Ryujinx/Ui/Windows/AboutWindow.cs
+++ b/Ryujinx/Ui/Windows/AboutWindow.cs
@@ -3,6 +3,7 @@ using Ryujinx.Common.Utilities;
 using Ryujinx.Ui.Helper;
 using System.Net.Http;
 using System.Net.NetworkInformation;
+using System.Reflection;
 using System.Threading.Tasks;
 
 namespace Ryujinx.Ui.Windows
@@ -11,6 +12,7 @@ namespace Ryujinx.Ui.Windows
     {
         public AboutWindow() : base($"Ryujinx {Program.Version} - About")
         {
+            Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");
             InitializeComponent();
 
             _ = DownloadPatronsJson();
diff --git a/Ryujinx/Ui/Windows/ControllerWindow.cs b/Ryujinx/Ui/Windows/ControllerWindow.cs
index 7b0f7cf8b0..a5345b0354 100644
--- a/Ryujinx/Ui/Windows/ControllerWindow.cs
+++ b/Ryujinx/Ui/Windows/ControllerWindow.cs
@@ -94,6 +94,8 @@ namespace Ryujinx.Ui.Windows
 
         private ControllerWindow(Builder builder, PlayerIndex controllerId) : base(builder.GetObject("_controllerWin").Handle)
         {
+            Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");
+
             builder.Autoconnect(this);
 
             _playerIndex = controllerId;
diff --git a/Ryujinx/Ui/Windows/SettingsWindow.cs b/Ryujinx/Ui/Windows/SettingsWindow.cs
index 4497dedf1f..ba64226c37 100644
--- a/Ryujinx/Ui/Windows/SettingsWindow.cs
+++ b/Ryujinx/Ui/Windows/SettingsWindow.cs
@@ -11,6 +11,7 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
+using System.Reflection;
 using System.Threading.Tasks;
 
 using GUI = Gtk.Builder.ObjectAttribute;
@@ -91,6 +92,8 @@ namespace Ryujinx.Ui.Windows
 
         private SettingsWindow(MainWindow parent, Builder builder, VirtualFileSystem virtualFileSystem, HLE.FileSystem.Content.ContentManager contentManager) : base(builder.GetObject("_settingsWin").Handle)
         {
+            Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.Resources.Logo_Ryujinx.png");
+
             _parent = parent;
 
             builder.Autoconnect(this);