diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-09-06 14:04:35 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-09-07 09:59:45 (GMT) |
commit | 8310ee90abc33a8d5db05e8bdb3459186cf02699 (patch) | |
tree | 472bbce01fcb19ea47d225e63896af04aa48fb10 | |
parent | 7b5d70a57d79a33c080d1df583325453f0357968 (diff) |
Reset list view vadjustment if on mapping #1235
Setting vadjustment.props.value doesn't work if window is hidden
(for example afer opening details dialog), so have to reset it
on every mapping.
-rw-r--r-- | src/jarabe/journal/listview.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py index 82e76b0..593ce21 100644 --- a/src/jarabe/journal/listview.py +++ b/src/jarabe/journal/listview.py @@ -71,9 +71,12 @@ class BaseListView(gtk.Bin): self._model = None self._progress_bar = None self._last_progress_bar_pulse = None + self._scroll_position = 0. gobject.GObject.__init__(self) + self.connect('map', self.__map_cb) + self.connect('unrealize', self.__unrealize_cb) self.connect('destroy', self.__destroy_cb) self._scrolled_window = gtk.ScrolledWindow() @@ -292,14 +295,14 @@ class BaseListView(gtk.Bin): logging.debug('ListView.__model_ready_cb') self._stop_progress_bar() - scroll_position = self.tree_view.props.vadjustment.props.value - logging.debug('ListView.__model_ready_cb %r', scroll_position) + self._scroll_position = self.tree_view.props.vadjustment.props.value + logging.debug('ListView.__model_ready_cb %r', self._scroll_position) # Cannot set it up earlier because will try to access the model and it # needs to be ready. self.tree_view.set_model(self._model) - self.tree_view.props.vadjustment.props.value = scroll_position + self.tree_view.props.vadjustment.props.value = self._scroll_position self.tree_view.props.vadjustment.value_changed() if len(tree_model) == 0: @@ -310,6 +313,15 @@ class BaseListView(gtk.Bin): else: self._clear_message() + def __map_cb(self, widget): + logging.debug('ListView.__map_cb %r', self._scroll_position) + self.tree_view.props.vadjustment.props.value = self._scroll_position + self.tree_view.props.vadjustment.value_changed() + + def __unrealize_cb(self, widget): + self._scroll_position = self.tree_view.props.vadjustment.props.value + logging.debug('ListView.__map_cb %r', self._scroll_position) + def _is_query_empty(self): # FIXME: This is a hack, we shouldn't have to update this every time # a new search term is added. |