Merge lp:~gary-lasker/software-center/fix-crash-lp968988 into lp:software-center

Proposed by Gary Lasker
Status: Merged
Merged at revision: 2950
Proposed branch: lp:~gary-lasker/software-center/fix-crash-lp968988
Merge into: lp:software-center
Diff against target: 39 lines (+8/-3)
2 files modified
softwarecenter/ui/gtk3/views/appview.py (+7/-3)
softwarecenter/ui/gtk3/widgets/apptreeview.py (+1/-0)
To merge this branch: bzr merge lp:~gary-lasker/software-center/fix-crash-lp968988
Reviewer Review Type Date Requested Status
Michael Vogt Approve
Review via email: mp+101330@code.launchpad.net

Description of the change

Fix crash bug 968988 by making sure that there is always a tree_view.selected_row_renderer attribute, and do the right thing in the case where it may be None. You can verify there is no regression using the corresponding unit test:

  cd test
  PYTHONPATH=. python gtk3/test_unity_launcher_integration.py

Thanks!

To post a comment you must log in.
Revision history for this message
Michael Vogt (mvo) wrote :

Thanks, that looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'softwarecenter/ui/gtk3/views/appview.py'
--- softwarecenter/ui/gtk3/views/appview.py 2012-03-29 13:57:04 +0000
+++ softwarecenter/ui/gtk3/views/appview.py 2012-04-10 05:10:24 +0000
@@ -235,7 +235,8 @@
235 for the application icon as it is displayed on-screen235 for the application icon as it is displayed on-screen
236 """236 """
237 icon_size = 32237 icon_size = 32
238 if self.tree_view.selected_row_renderer.icon:238 if (self.tree_view.selected_row_renderer and
239 self.tree_view.selected_row_renderer.icon):
239 pb = self.tree_view.selected_row_renderer.icon240 pb = self.tree_view.selected_row_renderer.icon
240 if pb.get_width() > pb.get_height():241 if pb.get_width() > pb.get_height():
241 icon_size = pb.get_width()242 icon_size = pb.get_width()
@@ -254,8 +255,11 @@
254 # get toplevel window position255 # get toplevel window position
255 (px, py) = parent.get_position()256 (px, py) = parent.get_position()
256 # and return the coordinate values257 # and return the coordinate values
257 return (px + self.tree_view.selected_row_renderer.icon_x_offset,258 if self.tree_view.selected_row_renderer:
258 py + self.tree_view.selected_row_renderer.icon_y_offset)259 return (px + self.tree_view.selected_row_renderer.icon_x_offset,
260 py + self.tree_view.selected_row_renderer.icon_y_offset)
261 else:
262 return (px, py)
259263
260264
261# ----------------------------------------------- testcode265# ----------------------------------------------- testcode
262266
=== modified file 'softwarecenter/ui/gtk3/widgets/apptreeview.py'
--- softwarecenter/ui/gtk3/widgets/apptreeview.py 2012-03-30 10:39:02 +0000
+++ softwarecenter/ui/gtk3/widgets/apptreeview.py 2012-04-10 05:10:24 +0000
@@ -46,6 +46,7 @@
46 self._action_block_list = []46 self._action_block_list = []
47 self._needs_collapse = []47 self._needs_collapse = []
48 self.expanded_path = None48 self.expanded_path = None
49 self.selected_row_renderer = None
4950
50 # pixbuf for the icon that is displayed in the selected row51 # pixbuf for the icon that is displayed in the selected row
51 self.selected_row_icon = None52 self.selected_row_icon = None

Subscribers

People subscribed via source and target branches