From 3eac70572da1c97ab1d98551b41752dd11d92465 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 13 Mar 2014 01:52:36 +0100 Subject: Fix #40: redshift-gtk: toggle_item is checkbox that follows the icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/redshift-gtk/statusicon.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/redshift-gtk/statusicon.py') diff --git a/src/redshift-gtk/statusicon.py b/src/redshift-gtk/statusicon.py index 6877eac..5685f08 100644 --- a/src/redshift-gtk/statusicon.py +++ b/src/redshift-gtk/statusicon.py @@ -78,9 +78,9 @@ class RedshiftStatusIcon(object): self.status_menu = Gtk.Menu() # Add toggle action - toggle_item = Gtk.MenuItem.new_with_label(_('Toggle')) - toggle_item.connect('activate', self.toggle_cb) - self.status_menu.append(toggle_item) + self.toggle_item = Gtk.CheckMenuItem.new_with_label(_('Enabled')) + self.toggle_item.connect('activate', self.toggle_cb) + self.status_menu.append(self.toggle_item) # Add suspend menu suspend_menu_item = Gtk.MenuItem.new_with_label(_('Suspend for')) @@ -215,8 +215,10 @@ class RedshiftStatusIcon(object): self.status_icon, button, time) def toggle_cb(self, widget, data=None): - self.remove_suspend_timer() - self.child_toggle_status() + # Only toggle if a change from current state was requested + if self.is_enabled() != widget.get_active(): + self.remove_suspend_timer() + self.child_toggle_status() # Info dialog callbacks def show_info_cb(self, widget, data=None): @@ -243,8 +245,8 @@ class RedshiftStatusIcon(object): def change_status(self, status): self._status = status - # TODO make toggle_item a checkbox and follow the state like the icon. self.update_status_icon() + self.toggle_item.set_active(self.is_enabled()) self.status_label.set_markup('{}: {}'.format(_('Status'), _('Enabled') if status else _('Disabled'))) -- cgit v1.2.3-70-g09d2