From 19d3c39411392128acd63a148cc3a957a5ca75cc Mon Sep 17 00:00:00 2001
From: guinux <nuxgui@gmail.com>
Date: Wed, 19 Sep 2018 16:49:07 +0200
Subject: [PATCH] some fixes

---
 src/database.vala       | 42 ++++++++++++++---------------------------
 src/manager_window.vala | 32 +++++++++++++++++++++++++++++--
 src/package.vala        |  4 ++--
 3 files changed, 46 insertions(+), 32 deletions(-)

diff --git a/src/database.vala b/src/database.vala
index d6499c38..b5d0c7d3 100644
--- a/src/database.vala
+++ b/src/database.vala
@@ -133,11 +133,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_installed_pkgs_async () {
-			SourceFunc callback = get_installed_pkgs_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_installed_pkgs", () => {
 				pkgs = alpm_utils.get_installed_pkgs ();
-				Idle.add ((owned) callback);
+				get_installed_pkgs_async.callback ();
 				return 0;
 			});
 			yield;
@@ -149,11 +148,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_installed_apps_async () {
-			SourceFunc callback = get_installed_apps_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_installed_apps", () => {
 				pkgs = alpm_utils.get_installed_apps ();
-				Idle.add ((owned) callback);
+				get_installed_apps_async.callback ();
 				return 0;
 			});
 			yield;
@@ -165,11 +163,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_explicitly_installed_pkgs_async () {
-			SourceFunc callback = get_explicitly_installed_pkgs_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_explicitly_installed_pkgs", () => {
 				pkgs = alpm_utils.get_explicitly_installed_pkgs ();
-				Idle.add ((owned) callback);
+				get_explicitly_installed_pkgs_async.callback ();
 				return 0;
 			});
 			yield;
@@ -181,11 +178,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_foreign_pkgs_async () {
-			SourceFunc callback = get_foreign_pkgs_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_foreign_pkgs", () => {
 				pkgs = alpm_utils.get_foreign_pkgs ();
-				Idle.add ((owned) callback);
+				get_foreign_pkgs_async.callback ();
 				return 0;
 			});
 			yield;
@@ -197,11 +193,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_orphans_async () {
-			SourceFunc callback = get_orphans_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_orphans", () => {
 				pkgs = alpm_utils.get_orphans ();
-				Idle.add ((owned) callback);
+				get_orphans_async.callback ();
 				return 0;
 			});
 			yield;
@@ -225,11 +220,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> search_pkgs_async (string search_string) {
-			SourceFunc callback = search_pkgs_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("search_pkgs", () => {
 				pkgs = alpm_utils.search_pkgs (search_string);
-				Idle.add ((owned) callback);
+				search_pkgs_async.callback ();
 				return 0;
 			});
 			yield;
@@ -249,11 +243,10 @@ namespace Pamac {
 		}
 
 		public async List<AURPackage> search_in_aur_async (string search_string) {
-			SourceFunc callback = search_in_aur_async.callback;
 			var pkgs = new List<AURPackage> ();
 			new Thread<int> ("search_in_aur", () => {
 				pkgs = alpm_utils.search_in_aur (search_string);
-				Idle.add ((owned) callback);
+				search_in_aur_async.callback ();
 				return 0;
 			});
 			yield;
@@ -273,11 +266,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_category_pkgs_async (string category) {
-			SourceFunc callback = get_category_pkgs_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_category_pkgs", () => {
 				pkgs = alpm_utils.get_category_pkgs (category);
-				Idle.add ((owned) callback);
+				get_category_pkgs_async.callback ();
 				return 0;
 			});
 			yield;
@@ -297,11 +289,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_repo_pkgs_async (string repo) {
-			SourceFunc callback = get_repo_pkgs_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_repo_pkgs", () => {
 				pkgs = alpm_utils.get_repo_pkgs (repo);
-				Idle.add ((owned) callback);
+				get_repo_pkgs_async.callback ();
 				return 0;
 			});
 			yield;
@@ -321,11 +312,10 @@ namespace Pamac {
 		}
 
 		public async List<Package> get_group_pkgs_async (string group_name) {
-			SourceFunc callback = get_group_pkgs_async.callback;
 			var pkgs = new List<Package> ();
 			new Thread<int> ("get_group_pkgs", () => {
 				pkgs = alpm_utils.get_group_pkgs (group_name);
-				Idle.add ((owned) callback);
+				get_group_pkgs_async.callback ();
 				return 0;
 			});
 			yield;
@@ -349,11 +339,10 @@ namespace Pamac {
 		}
 
 		public async List<string> get_pkg_files_async (string pkgname) {
-			SourceFunc callback = get_pkg_files_async.callback;
 			var files = new List<string> ();
 			new Thread<int> ("get_pkg_files", () => {
 				files = alpm_utils.get_pkg_files (pkgname);
-				Idle.add ((owned) callback);
+				get_pkg_files_async.callback ();
 				return 0;
 			});
 			yield;
@@ -373,11 +362,10 @@ namespace Pamac {
 		}
 
 		public async AURPackage get_aur_pkg_async (string pkgname) {
-			SourceFunc callback = get_aur_pkg_async.callback;
 			var pkg = new AURPackage ();
 			new Thread<int> ("get_aur_pkg", () => {
 				pkg = alpm_utils.get_aur_pkg (pkgname);
-				Idle.add ((owned) callback);
+				get_aur_pkg_async.callback ();
 				return 0;
 			});
 			yield;
@@ -393,11 +381,10 @@ namespace Pamac {
 		}
 
 		public async AURPackageDetails get_aur_pkg_details_async (string pkgname) {
-			SourceFunc callback = get_aur_pkg_details_async.callback;
 			var pkg = new AURPackageDetails ();
 			new Thread<int> ("get_aur_pkg_details", () => {
 				pkg = alpm_utils.get_aur_pkg_details (pkgname);
-				Idle.add ((owned) callback);
+				get_aur_pkg_details_async.callback ();
 				return 0;
 			});
 			yield;
@@ -413,11 +400,10 @@ namespace Pamac {
 		}
 
 		public async Updates get_updates_async () {
-			SourceFunc callback = get_updates_async.callback;
 			var updates = new Updates ();
 			new Thread<int> ("get_updates", () => {
 				updates = get_updates ();
-				Idle.add ((owned) callback);
+				get_updates_async.callback ();
 				return 0;
 			});
 			yield;
diff --git a/src/manager_window.vala b/src/manager_window.vala
index 6a639f35..d3b0ed5f 100644
--- a/src/manager_window.vala
+++ b/src/manager_window.vala
@@ -480,6 +480,13 @@ namespace Pamac {
 					show_sidebar ();
 				} else {
 					hide_sidebar ();
+					unowned Gtk.ListBoxRow repo_row = search_listbox.get_row_at_index (0);
+					repo_row.activatable = true;
+					repo_row.selectable = true;
+					repo_row.can_focus = true;
+					repo_row.get_child ().sensitive = true;
+					search_listbox.select_row (repo_row);
+					on_search_listbox_row_activated (search_listbox.get_selected_row ());
 					origin_stack.visible_child_name = "repos";
 				}
 			}
@@ -1947,10 +1954,16 @@ namespace Pamac {
 						}
 						var pkgs = database.search_pkgs_async.end (res);
 						if (pkgs.length () == 0 && database.config.enable_aur) {
-							
 							database.search_in_aur_async.begin (search_string, (obj, res) => {
+								unowned Gtk.ListBoxRow aur_row = search_listbox.get_row_at_index (1);
 								if (database.search_in_aur_async.end (res).length () > 0) {
-									origin_stack.visible_child_name = "aur";
+									row.activatable = false;
+									row.selectable = false;
+									row.has_focus = false;
+									row.can_focus = false;
+									row.get_child ().sensitive = false;
+									search_listbox.select_row (aur_row);
+									on_search_listbox_row_activated (search_listbox.get_selected_row ());
 								} else {
 									populate_packages_list (pkgs);
 								}
@@ -1978,6 +1991,21 @@ namespace Pamac {
 					database.search_in_aur_async.begin (search_string, (obj, res) => {
 						populate_aur_list (database.search_in_aur_async.end (res));
 					});
+					database.search_pkgs_async.begin (search_string, (obj, res) => {
+						unowned Gtk.ListBoxRow repo_row = search_listbox.get_row_at_index (0);
+						if (database.search_pkgs_async.end (res).length () > 0 ) {
+							repo_row.activatable = true;
+							repo_row.selectable = true;
+							repo_row.can_focus = true;
+							repo_row.get_child ().sensitive = true;
+						} else {
+							repo_row.activatable = false;
+							repo_row.selectable = false;
+							repo_row.has_focus = false;
+							repo_row.can_focus = false;
+							repo_row.get_child ().sensitive = false;
+						}
+					});
 					packages_list.clear ();
 					break;
 				default:
diff --git a/src/package.vala b/src/package.vala
index 0eed0dfe..29e8b964 100644
--- a/src/package.vala
+++ b/src/package.vala
@@ -226,8 +226,8 @@ namespace Pamac {
 			replaces_priv = new List<string> ();
 			conflicts_priv = new List<string> ();
 		}
-		internal AURPackageDetails.from_struct (owned AURPackageDetailsStruct pkg_struct) {
-			this.pkg_struct = (owned) pkg_struct;
+		internal AURPackageDetails.from_struct (owned AURPackageDetailsStruct pkg_struct_) {
+			this.pkg_struct = (owned) pkg_struct_;
 			licenses_priv = new List<string> ();
 			depends_priv = new List<string> ();
 			makedepends_priv = new List<string> ();
-- 
GitLab