diff options
Diffstat (limited to 'addons/disablewidget.py')
-rw-r--r-- | addons/disablewidget.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/addons/disablewidget.py b/addons/disablewidget.py index 210d1eb..ce3f235 100644 --- a/addons/disablewidget.py +++ b/addons/disablewidget.py @@ -36,12 +36,19 @@ class DisableWidgetAction(Action): if os.activity: self._widget = gtkutils.find_widget(os.activity, self.target) if self._widget: + # If we have an object whose sensitivity we can query, we will + # keep it to reset it in the undo() method + if hasattr(self._widget, 'get_sensitive') and callable(self._widget.get_sensitive): + self._previous_sensitivity = self._widget.get_sensitive() self._widget.set_sensitive(False) def undo(self): """Action undo""" if self._widget: - self._widget.set_sensitive(True) + if hasattr(self, '_previous_sensitivity'): + self._widget.set_sensitive(self._previous_sensitivity) + else: + self._widget.set_sensitive(True) __action__ = { 'name' : 'DisableWidgetAction', |