@@ -50,13 +50,14 @@ impl MessageHandler<GuideMessage, GuideMessageContext<'_>> for GuideMessageHandl
5050 viewport,
5151 } = context;
5252
53+ let viewport_to_document_point = |mouse_x : f64 , mouse_y : f64 | -> DVec2 {
54+ let document_to_viewport = navigation_handler. calculate_offset_transform ( viewport. center_in_viewport_space ( ) . into ( ) , document_ptz) ;
55+ document_to_viewport. inverse ( ) . transform_point2 ( DVec2 :: new ( mouse_x, mouse_y) )
56+ } ;
57+
5358 match message {
5459 GuideMessage :: CreateGuide { id, direction, mouse_x, mouse_y } => {
55- let document_to_viewport = navigation_handler. calculate_offset_transform ( viewport. center_in_viewport_space ( ) . into ( ) , document_ptz) ;
56- let viewport_to_document = document_to_viewport. inverse ( ) ;
57-
58- let viewport_point = DVec2 :: new ( mouse_x, mouse_y) ;
59- let document_point = viewport_to_document. transform_point2 ( viewport_point) ;
60+ let document_point = viewport_to_document_point ( mouse_x, mouse_y) ;
6061
6162 let document_position = match direction {
6263 GuideDirection :: Horizontal => document_point. y ,
@@ -69,11 +70,7 @@ impl MessageHandler<GuideMessage, GuideMessageContext<'_>> for GuideMessageHandl
6970 responses. add ( PortfolioMessage :: UpdateDocumentWidgets ) ;
7071 }
7172 GuideMessage :: MoveGuide { id, mouse_x, mouse_y } => {
72- let document_to_viewport = navigation_handler. calculate_offset_transform ( viewport. center_in_viewport_space ( ) . into ( ) , document_ptz) ;
73- let viewport_to_document = document_to_viewport. inverse ( ) ;
74-
75- let viewport_point = DVec2 :: new ( mouse_x, mouse_y) ;
76- let document_point = viewport_to_document. transform_point2 ( viewport_point) ;
73+ let document_point = viewport_to_document_point ( mouse_x, mouse_y) ;
7774
7875 if let Some ( guide) = self . guides . iter_mut ( ) . find ( |guide| guide. id == id) {
7976 guide. position = match guide. direction {
0 commit comments