From 369c7cc327eef90d584a7cadde42a7f2ef0d5d4f Mon Sep 17 00:00:00 2001
From: guinux <nuxgui@gmail.com>
Date: Fri, 6 May 2016 10:55:21 +0200
Subject: [PATCH] do not allow access to preferences when a transaction is
 running

---
 resources/manager_window.ui | 1 +
 resources/updater_window.ui | 1 +
 src/manager_window.vala     | 7 +++++++
 src/updater_window.vala     | 7 +++++++
 4 files changed, 16 insertions(+)

diff --git a/resources/manager_window.ui b/resources/manager_window.ui
index d5768623..111759a8 100644
--- a/resources/manager_window.ui
+++ b/resources/manager_window.ui
@@ -985,6 +985,7 @@
             <property name="can_focus">True</property>
             <property name="receives_default">False</property>
             <property name="popover">popovermenu</property>
+            <signal name="toggled" handler="on_menu_button_toggled" swapped="no"/>
             <child>
               <object class="GtkImage" id="menu_icon">
                 <property name="visible">True</property>
diff --git a/resources/updater_window.ui b/resources/updater_window.ui
index 8daca80a..b7f1fa6b 100644
--- a/resources/updater_window.ui
+++ b/resources/updater_window.ui
@@ -430,6 +430,7 @@
             <property name="can_focus">True</property>
             <property name="receives_default">False</property>
             <property name="popover">popovermenu</property>
+            <signal name="toggled" handler="on_menu_button_toggled" swapped="no"/>
             <child>
               <object class="GtkImage" id="menu_icon">
                 <property name="visible">True</property>
diff --git a/src/manager_window.vala b/src/manager_window.vala
index 6f2a7878..a71dda98 100644
--- a/src/manager_window.vala
+++ b/src/manager_window.vala
@@ -51,6 +51,8 @@ namespace Pamac {
 		[GtkChild]
 		Gtk.Button button_back;
 		[GtkChild]
+		Gtk.ModelButton preferences_button;
+		[GtkChild]
 		Gtk.TreeView packages_treeview;
 		[GtkChild]
 		Gtk.TreeViewColumn packages_state_column;
@@ -1428,6 +1430,11 @@ namespace Pamac {
 			refresh_packages_list ();
 		}
 
+		[GtkCallback]
+		void on_menu_button_toggled () {
+			preferences_button.visible = !transaction_running;
+		}
+
 		[GtkCallback]
 		void on_history_button_clicked () {
 			transaction.run_history_dialog ();
diff --git a/src/updater_window.vala b/src/updater_window.vala
index bf3c9690..6bedfeec 100644
--- a/src/updater_window.vala
+++ b/src/updater_window.vala
@@ -25,6 +25,8 @@ namespace Pamac {
 		[GtkChild]
 		Gtk.HeaderBar headerbar;
 		[GtkChild]
+		Gtk.ModelButton preferences_button;
+		[GtkChild]
 		Gtk.StackSwitcher stackswitcher;
 		[GtkChild]
 		Gtk.ScrolledWindow repos_scrolledwindow;
@@ -148,6 +150,11 @@ namespace Pamac {
 			}
 		}
 
+		[GtkCallback]
+		void on_menu_button_toggled () {
+			preferences_button.visible = !transaction_running;
+		}
+
 		[GtkCallback]
 		void on_preferences_button_clicked () {
 			transaction.run_preferences_dialog.begin (() => {
-- 
GitLab