@@ -25,7 +25,16 @@ fn grid_overlay_rectangular(document: &DocumentMessageHandler, overlay_context:
2525 let primary_start = bounds. 0 . iter ( ) . map ( |& corner| corner[ primary] ) . min_by ( |a, b| a. partial_cmp ( b) . unwrap ( ) ) . unwrap_or_default ( ) ;
2626 let primary_end = bounds. 0 . iter ( ) . map ( |& corner| corner[ primary] ) . max_by ( |a, b| a. partial_cmp ( b) . unwrap ( ) ) . unwrap_or_default ( ) ;
2727 let spacing = spacing[ secondary] ;
28+ let first_index = ( ( min - origin[ secondary] ) / spacing) . ceil ( ) as i32 ;
2829 for line_index in 0 ..=( ( max - min) / spacing) . ceil ( ) as i32 {
30+ let is_major = is_major_line (
31+ line_index + first_index,
32+ if primary == 1 {
33+ document. snapping_state . grid . rectangular_major_interval_along_x
34+ } else {
35+ document. snapping_state . grid . rectangular_major_interval_along_y
36+ } ,
37+ ) ;
2938 let secondary_pos = ( ( ( min - origin[ secondary] ) / spacing) . ceil ( ) + line_index as f64 ) * spacing + origin[ secondary] ;
3039 let start = if primary == 0 {
3140 DVec2 :: new ( primary_start, secondary_pos)
@@ -40,24 +49,16 @@ fn grid_overlay_rectangular(document: &DocumentMessageHandler, overlay_context:
4049 overlay_context. line (
4150 document_to_viewport. transform_point2 ( start) ,
4251 document_to_viewport. transform_point2 ( end) ,
43- is_major_line (
44- line_index,
45- if primary == 0 {
46- document. snapping_state . grid . rectangular_major_interval_along_x
47- } else {
48- document. snapping_state . grid . rectangular_major_interval_along_y
49- } ,
50- )
51- . then_some ( if document. snapping_state . grid . major_is_thick { & grid_color } else { & grid_color_minor } ) ,
52- is_major_line (
53- line_index,
54- if primary == 0 {
55- document. snapping_state . grid . rectangular_major_interval_along_x
56- } else {
57- document. snapping_state . grid . rectangular_major_interval_along_y
58- } ,
59- )
60- . then_some ( if document. snapping_state . grid . major_is_thick { 3. } else { 1. } ) ,
52+ if is_major {
53+ Some ( & grid_color)
54+ } else {
55+ Some ( & grid_color_minor)
56+ } ,
57+ if is_major && document. snapping_state . grid . major_is_thick {
58+ Some ( 3. )
59+ } else {
60+ Some ( 1. )
61+ } ,
6162 ) ;
6263 }
6364 }
0 commit comments