# HG changeset patch # User Alys Brooks # Date 2022-04-14 09:56:08 # Node ID b5156c7f4f938c574cd12e7f268f1c53b4feaab5 # Parent bbb53da9028c6406276a0a2bb5c49d9dfa4ec022 Avoid passing mouse clicks when the user is hovering over ImGui windows. diff --git a/isometric-park-fna/Engines/InputEngine.cs b/isometric-park-fna/Engines/InputEngine.cs --- a/isometric-park-fna/Engines/InputEngine.cs +++ b/isometric-park-fna/Engines/InputEngine.cs @@ -4,6 +4,8 @@ using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; +using ImGuiNET; + using Encompass; using isometricparkfna.Messages; @@ -59,6 +61,8 @@ var viewWidth = gdm.PreferredBackBufferWidth; var viewHeight = gdm.PreferredBackBufferHeight; + ImGuiIOPtr io = ImGui.GetIO(); + foreach (var entity in ReadEntities()) { var state = GetComponent(entity).isPlaying; @@ -242,27 +246,29 @@ #endregion #region mouse_click - if (mouseCur.RightButton == ButtonState.Pressed && mousePrev.RightButton == ButtonState.Released) - { - SendMessage(new JumpCameraMessage {Movement = original_point}); - } + if (!io.WantCaptureMouse) { + if (mouseCur.RightButton == ButtonState.Pressed && mousePrev.RightButton == ButtonState.Released) + { + SendMessage(new JumpCameraMessage {Movement = original_point}); + } - if (mouseCur.LeftButton == ButtonState.Pressed && mousePrev.LeftButton == ButtonState.Released - // && keyboardCur.IsKeyDown(Keys.LeftShift) - ) - { - SendMessage(new SpawnSelection {Start = CellMap.calculateMousegrid(original_point)}); - } + if (mouseCur.LeftButton == ButtonState.Pressed && mousePrev.LeftButton == ButtonState.Released + // && keyboardCur.IsKeyDown(Keys.LeftShift) + ) + { + SendMessage(new SpawnSelection {Start = CellMap.calculateMousegrid(original_point)}); + } - if ( mouseCur.LeftButton == ButtonState.Released && mousePrev.LeftButton == ButtonState.Pressed ) - { - SendMessage(new AdjustSelection {Type = AdjustmentType.Complete }); - } + if ( mouseCur.LeftButton == ButtonState.Released && mousePrev.LeftButton == ButtonState.Pressed ) + { + SendMessage(new AdjustSelection {Type = AdjustmentType.Complete }); + } - if (mouseCur.LeftButton == ButtonState.Pressed && mousePrev.LeftButton == ButtonState.Pressed) - { - SendMessage(new AdjustSelection { End = CellMap.calculateMousegrid(original_point)}); - } + if (mouseCur.LeftButton == ButtonState.Pressed && mousePrev.LeftButton == ButtonState.Pressed) + { + SendMessage(new AdjustSelection { End = CellMap.calculateMousegrid(original_point)}); + } + }