Fixed tiling bug and multi map bug
This commit is contained in:
@@ -3,6 +3,7 @@ from __future__ import annotations
|
||||
import pytest
|
||||
|
||||
import dpg_map as dpgm
|
||||
import dpg_map.interaction as interaction_module
|
||||
from dpg_map.commands import CommandKind
|
||||
from dpg_map.interaction import (
|
||||
calculate_hit_rect,
|
||||
@@ -74,6 +75,43 @@ def test_polled_drag_starts_and_moves_while_button_is_down() -> None:
|
||||
assert state.center[1] < 0.0
|
||||
|
||||
|
||||
def test_renderer_poll_does_not_start_drag_for_inactive_map() -> None:
|
||||
state = create_map_state(tag="poll-no-start", center=(0.0, 0.0), zoom=3)
|
||||
apply_size_measurement(state, SizeMeasurement(width=400, height=300, visible=True))
|
||||
rect = calculate_hit_rect(state, (10.0, 20.0))
|
||||
|
||||
update_drag_from_button_state(
|
||||
state,
|
||||
mouse_pos=(20.0, 30.0),
|
||||
hit_rect=rect,
|
||||
is_down=True,
|
||||
can_start=False,
|
||||
)
|
||||
|
||||
assert state.interaction.active_drag is False
|
||||
assert state.center == (0.0, 0.0)
|
||||
|
||||
|
||||
def test_drag_owner_prevents_second_map_from_tracking_first_map() -> None:
|
||||
with interaction_module._drag_owner_lock:
|
||||
interaction_module._drag_owner_map = None
|
||||
state_a = create_map_state(tag="drag-owner-a", center=(0.0, 0.0), zoom=3)
|
||||
state_b = create_map_state(tag="drag-owner-b", center=(0.0, 0.0), zoom=3)
|
||||
apply_size_measurement(state_a, SizeMeasurement(width=400, height=300, visible=True))
|
||||
apply_size_measurement(state_b, SizeMeasurement(width=400, height=300, visible=True))
|
||||
rect_a = calculate_hit_rect(state_a, (10.0, 20.0))
|
||||
rect_b = calculate_hit_rect(state_b, (10.0, 20.0))
|
||||
|
||||
handle_mouse_down(state_a, (20.0, 30.0), rect_a)
|
||||
handle_mouse_down(state_b, (20.0, 30.0), rect_b)
|
||||
handle_mouse_drag(state_a, (45.0, 30.0))
|
||||
handle_mouse_drag(state_b, (45.0, 30.0))
|
||||
|
||||
assert state_a.center[1] < 0.0
|
||||
assert state_b.center == (0.0, 0.0)
|
||||
handle_mouse_release(state_a)
|
||||
|
||||
|
||||
def test_wheel_zoom_keeps_cursor_latlon_stable() -> None:
|
||||
state = create_map_state(tag="wheel", center=(47.9029, 1.9093), zoom=8)
|
||||
apply_size_measurement(state, SizeMeasurement(width=800, height=600, visible=True))
|
||||
|
||||
Reference in New Issue
Block a user