private bool TryHandleMouseEvent(IMouseEvent args)
        {
            var rect    = cText.Node.GetComponent <IRectangleComponent>().Rectangle;
            var textBox = cText.TextBox;

            if (!args.RayHitResult.HasValue)
            {
                return(false);
            }
            var hmgnPoint    = args.RayHitResult.Value.LocalHitPoint.Xy;
            var textBoxPoint = new Vector2(
                (1 + hmgnPoint.X) / 2 * rect.Width * textBox.PixelScaling,
                (1 - hmgnPoint.Y) / 2 * rect.Height * textBox.PixelScaling);

            var layout = textBox.Layout;

            if (layout.TryGetSpanAt(textBoxPoint, out var lspan) &&
                lspan.Embedding != null &&
                lspan.EmbeddingHandler != null &&
                lspan.EmbeddingHandler.TryHandleMouseEvent(lspan.Embedding, args))
            {
                return(true);
            }

            if (args.IsLeftDownEvent())
            {
                var newPos = layout.GetPosition(textBoxPoint);
                HeadlessEditor.MoveCursor(newPos, args.KeyModifiers == KeyModifiers.Shift);
                inputHandler.AddLock(new InputLock <object>(null, MouseDownLockProc));
                return(true);
            }

            return(false);
        }
 private bool TryHandleMouseEvent(IMouseEvent args)
 {
     if (args.IsLeftDownEvent())
     {
         inputHandler.AddLock(new ResizeRectangleInputLock(getRectAspect(master), undoRedo, getSpace(master), getPlace(master)));
         return(true);
     }
     return(false);
 }
 private bool TryHandleMouseEvent(IMouseEvent args)
 {
     if (args.IsLeftDownEvent())
     {
         var rectAspect = getRectAspect(master);
         var space      = getSpace(master);
         var globalRay  = args.Viewport.GetGlobalRayForPixelPos(args.State.Position);
         if (!space.TryFindPoint2D(globalRay, out var initialPoint))
         {
             return(false);
         }
         //if (rectAspect.Rectangle.DistanceToBorderFrom(initialPoint) > 0.05f)
         //    return false;
         var anchor = initialPoint - rectAspect.Rectangle.MinMin;
         inputHandler.AddLock(new DragRectangleInputLock(undoRedo, rectAspect, space, anchor));
         return(true);
     }
     return(false);
 }