// Mouse moves
        public virtual void OnMouseMove(MouseEventArgs e)
        {
            // Dragging UV?
            if (uvdragging)
            {
                UpdateDragUV();
            }
            else
            {
                // Select button pressed?
                if (General.Actions.CheckActionActive(General.ThisAssembly, "visualselect"))
                {
                    // Check if tolerance is exceeded to start UV dragging
                    float deltaxy = General.Map.VisualCamera.AngleXY - dragstartanglexy;
                    float deltaz  = General.Map.VisualCamera.AngleZ - dragstartanglez;
                    if ((Math.Abs(deltaxy) + Math.Abs(deltaz)) > DRAG_ANGLE_TOLERANCE)
                    {
                        mode.PreAction(UndoGroup.TextureOffsetChange);
                        mode.CreateUndo("Change texture offsets");

                        // Start drag now
                        uvdragging = true;
                        mode.Renderer.ShowSelection = false;
                        mode.Renderer.ShowHighlight = false;
                        UpdateDragUV();
                    }
                }
            }
        }