cwensley / pablodraw

PabloDraw is an Ansi/Ascii text and RIPscrip vector graphic art editor/viewer with multi-user capabilities.
MIT License
310 stars 21 forks source link

Crash when resizing #105

Open rswindell opened 3 months ago

rswindell commented 3 months ago

Platform: WinForms Version:3.3.12.0

System.IndexOutOfRangeException: Arg_IndexOutOfRangeException
   at Pablo.Formats.Character.MemoryCanvas.GetLine(Int32 y)
   at Pablo.Formats.Character.Canvas.Set(Point dest, Rectangle source, Canvas canvas, PasteMode pasteMode)
   at Pablo.Formats.Character.Canvas.Copy(Rectangle rect)
   at Pablo.Formats.Character.Undo.UndoRect.Reciprocal(CharacterHandler handler)
   at Pablo.Formats.Character.Undo.UndoBuffer.Reciprocal(CharacterHandler handler)
   at Pablo.Formats.Character.Undo.UndoManager.PopUndo()
   at Pablo.Formats.Character.Undo.UndoManager.Undo()
   at Pablo.Interface.Main.OnKeyDown(KeyEventArgs e)
   at Eto.Forms.Control.Callback.OnKeyDown(Control widget, KeyEventArgs e)
   at Eto.WinForms.Forms.ApplicationHandler.<>c.<SetOptions>b__25_8(Control c, ICallback cb, KeyEventArgs e)
   at Eto.WinForms.BubbleEventFilter.KeyEvent(BubbleEventArgs be, Action`3 action, KeyEventType keyEventType)
   at Eto.WinForms.BubbleEventFilter.PreFilterMessage(Message& message)
   at System.Windows.Forms.Application.ThreadContext.ProcessFilters(MSG& msg, Boolean& modified)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
   at System.Windows.Forms.Application.ThreadContext.Interop.Mso.IMsoComponent.FPreTranslateMessage(MSG* msg)
   at System.Windows.Forms.Application.ComponentManager.Interop.Mso.IMsoComponentManager.FPushMessageLoop(UIntPtr dwComponentID, msoloop uReason, Void* pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(msoloop reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(msoloop reason, ApplicationContext context)
   at Eto.WinForms.Forms.ApplicationHandler.Run()
   at Eto.Forms.Application.Run()
   at PabloDraw.CommandHandlers.EditorCommandLine.Process(ProcessCommandLineArgs args)
rswindell commented 3 months ago

Hitting Ctrl-Z after a canvas resize operation:

`Platform: WinForms Version:3.3.12.0

System.IndexOutOfRangeException: Arg_IndexOutOfRangeException
   at Pablo.Formats.Character.MemoryCanvas.GetLine(Int32 y)
   at Pablo.Formats.Character.Canvas.Set(Point dest, Rectangle source, Canvas canvas, PasteMode pasteMode)
   at Pablo.Formats.Character.Canvas.Copy(Rectangle rect)
   at Pablo.Formats.Character.Undo.UndoRect.Reciprocal(CharacterHandler handler)
   at Pablo.Formats.Character.Undo.UndoBuffer.Reciprocal(CharacterHandler handler)
   at Pablo.Formats.Character.Undo.UndoManager.PopUndo()
   at Pablo.Formats.Character.Undo.UndoManager.Undo()
   at Pablo.Formats.Character.Actions.Undo.Execute(CommandExecuteArgs args)
   at Pablo.PabloCommand.OnExecuted(EventArgs e)
   at Eto.Forms.Command.Execute()
   at Eto.Forms.Command.System.Windows.Input.ICommand.Execute(Object parameter)
   at Eto.PropertyStore.CommandWrapper.Command_Execute(Object sender, EventArgs e)
   at Eto.Forms.MenuItem.OnClick(EventArgs e)
   at Eto.Forms.MenuItem.PerformClick()
   at Pablo.Interface.Main.OnKeyDown(KeyEventArgs e)
   at Eto.Forms.Control.Callback.OnKeyDown(Control widget, KeyEventArgs e)
   at Eto.WinForms.Forms.ApplicationHandler.<>c.<SetOptions>b__25_8(Control c, ICallback cb, KeyEventArgs e)
   at Eto.WinForms.BubbleEventFilter.KeyEvent(BubbleEventArgs be, Action`3 action, KeyEventType keyEventType)
   at Eto.WinForms.BubbleEventFilter.PreFilterMessage(Message& message)
   at System.Windows.Forms.Application.ThreadContext.ProcessFilters(MSG& msg, Boolean& modified)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
   at System.Windows.Forms.Application.ThreadContext.Interop.Mso.IMsoComponent.FPreTranslateMessage(MSG* msg)
   at System.Windows.Forms.Application.ComponentManager.Interop.Mso.IMsoComponentManager.FPushMessageLoop(UIntPtr dwComponentID, msoloop uReason, Void* pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(msoloop reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(msoloop reason, ApplicationContext context)
   at Eto.WinForms.Forms.ApplicationHandler.Run()
   at Eto.Forms.Application.Run()
   at PabloDraw.CommandHandlers.EditorCommandLine.Process(ProcessCommandLineArgs args)