More tests for GtkView.get_item_at_point()

This commit is contained in:
Arjan Molenaar 2020-10-26 08:47:21 +01:00
parent f4734282c3
commit ac68bde4f2
2 changed files with 12 additions and 10 deletions

View File

@ -240,7 +240,7 @@ class GtkView(Gtk.DrawingArea, Gtk.Scrollable, View):
assert self._canvas assert self._canvas
items = self._qtree.find_intersect((pos[0], pos[1], 1, 1)) items = self._qtree.find_intersect((pos[0], pos[1], 1, 1))
for item in reversed(self._canvas.sort(items)): for item in reversed(self._canvas.sort(items)):
if not selected and item in self.selected_items: if not selected and item in self.selection.selected_items:
continue # skip selected items continue # skip selected items
v2i = self.get_matrix_v2i(item) v2i = self.get_matrix_v2i(item)

View File

@ -29,25 +29,27 @@ class ViewFixture:
@pytest.fixture() @pytest.fixture()
def view_fixture(): def view_fixture():
return ViewFixture() fixture = ViewFixture()
yield fixture
fixture.window.destroy()
def test_get_item_at_point(view_fixture): def test_get_item_at_point(view_fixture):
"""Hover tool only reacts on motion-notify events.""" """Hover tool only reacts on motion-notify events."""
view_fixture.box.width = 50 view_fixture.box.width = 50
view_fixture.box.height = 50 view_fixture.box.height = 50
assert len(view_fixture.view._qtree._ids) == 1
assert view_fixture.view._qtree._bucket.bounds != (
0,
0,
0,
0,
), view_fixture.view._qtree._bucket.bounds
assert view_fixture.view.get_item_at_point((10, 10)) is view_fixture.box assert view_fixture.view.get_item_at_point((10, 10)) is view_fixture.box
assert view_fixture.view.get_item_at_point((60, 10)) is None assert view_fixture.view.get_item_at_point((60, 10)) is None
view_fixture.window.destroy()
def test_get_unselected_item_at_point(view_fixture):
view_fixture.box.width = 50
view_fixture.box.height = 50
view_fixture.view.selection.select_items(view_fixture.box)
assert view_fixture.view.get_item_at_point((10, 10)) is view_fixture.box
assert view_fixture.view.get_item_at_point((10, 10), selected=False) is None
def test_get_handle_at_point(view_fixture): def test_get_handle_at_point(view_fixture):