From eb5a9a609da8a2d8b2885e00d32aa852502c355a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Sun, 12 Jan 2020 07:30:40 +0100 Subject: [PATCH] debug scroller going out of bounds and making stack overflow --- Crow/src/Widgets/Scroller.cs | 43 +++++++++++------------------------- 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/Crow/src/Widgets/Scroller.cs b/Crow/src/Widgets/Scroller.cs index 7bdb7d39..6265ae0f 100644 --- a/Crow/src/Widgets/Scroller.cs +++ b/Crow/src/Widgets/Scroller.cs @@ -1,33 +1,9 @@ -// -// Scroller.cs +// Copyright (c) 2013-2020 Jean-Philippe Bruyère // -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2013-2017 Jean-Philippe Bruyère -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. +// This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) using System; -using System.Xml.Serialization; using System.ComponentModel; -using System.Diagnostics; using Crow.Cairo; namespace Crow @@ -69,7 +45,7 @@ namespace Crow if (newS == scrollX) return; - scrollX = value; + scrollX = newS; NotifyValueChanged ("ScrollX", scrollX); RegisterForGraphicUpdate (); @@ -92,7 +68,7 @@ namespace Crow if (newS == scrollY) return; - scrollY = value; + scrollY = newS; NotifyValueChanged ("ScrollY", scrollY); RegisterForGraphicUpdate (); @@ -106,7 +82,10 @@ namespace Crow if (maxScrollX == value) return; - maxScrollX = value; + if (value < 0) + maxScrollX = 0; + else + maxScrollX = value; if (scrollX > maxScrollX) ScrollX = maxScrollX; @@ -123,7 +102,11 @@ namespace Crow if (maxScrollY == value) return; - maxScrollY = value; + if (value < 0) + maxScrollY = 0; + else + maxScrollY = value; + if (scrollY > maxScrollY) ScrollY = maxScrollY; -- 2.47.3