@@ -51,6 +51,7 @@ struct DragDetails {
5151struct EditorState < ' a > {
5252 grid_scale : & ' a GridScale ,
5353 window_regions : & ' a Vec < WindowDrawDetails > ,
54+ full_region : WindowDrawDetails ,
5455 window : & ' a Window ,
5556 keyboard_manager : & ' a KeyboardManager ,
5657}
@@ -104,14 +105,17 @@ impl MouseManager {
104105 editor_state : & ' a EditorState < ' a > ,
105106 ) -> Option < & ' a WindowDrawDetails > {
106107 let position = self . window_position ;
107-
108- // the rendered window regions are sorted by draw order, so the earlier windows in the
109- // list are drawn under the later ones
110- editor_state
111- . window_regions
112- . iter ( )
113- . filter ( |details| details. region . contains ( & position) )
114- . last ( )
108+ if self . use_composition {
109+ Some ( & editor_state. full_region )
110+ } else {
111+ // the rendered window regions are sorted by draw order, so the earlier windows in the
112+ // list are drawn under the later ones
113+ editor_state
114+ . window_regions
115+ . iter ( )
116+ . filter ( |details| details. region . contains ( & position) )
117+ . last ( )
118+ }
115119 }
116120
117121 fn get_relative_position (
@@ -395,9 +399,14 @@ impl MouseManager {
395399 renderer : & Renderer ,
396400 window : & Window ,
397401 ) {
402+ let full_region = WindowDrawDetails {
403+ id : 0 ,
404+ region : renderer. window_regions . first ( ) . map_or ( PixelRect :: ZERO , |v| v. region )
405+ } ;
398406 let editor_state = EditorState {
399407 grid_scale : & renderer. grid_renderer . grid_scale ,
400408 window_regions : & renderer. window_regions ,
409+ full_region,
401410 window,
402411 keyboard_manager,
403412 } ;
0 commit comments