private void WorldRenderSource_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { if (!PointerEditor.IsMouseOver && WorldScroller.IsMouseOver) { WorldRenderSource.Focus(); } }
private void WorldRenderSource_MouseDown(object sender, MouseButtonEventArgs e) { Point clickPoint = Snap(e.GetPosition(WorldRenderSource)); WorldRenderSource.Focusable = true; WorldRenderSource.Focus(); if (WorldEditorExitSelected != null) { WorldEditorExitSelected((int)clickPoint.X / 16, (int)clickPoint.Y / 16); return; } if (Keyboard.Modifiers == ModifierKeys.Control) { if (_world.Pointers.Where(o => o.BoundRectangle.Contains(clickPoint.X, clickPoint.Y)).FirstOrDefault() != null) { SelectedEditMode.SelectedIndex = 2; } else if (_world.ObjectData.Where(o => o.BoundRectangle.Contains(clickPoint.X, clickPoint.Y)).FirstOrDefault() != null) { SelectedEditMode.SelectedIndex = 1; } else { SelectedEditMode.SelectedIndex = 0; } } switch (_editMode) { case EditMode.Tiles: HandleTileClick(e); break; case EditMode.Objects: HandleObjectClick(e); break; case EditMode.Pointers: HandlePointerClick(e); break; } }