From: Jean-Philippe Bruyère Date: Sun, 12 Jan 2020 06:30:40 +0000 (+0100) Subject: debug scroller going out of bounds and making stack overflow X-Git-Tag: v0.9.5-beta~137^2~4 X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=aa0395360350213470d72bc4b6a0c0a7c2f8a037;p=jp%2Fcrow.git debug scroller going out of bounds and making stack overflow --- 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;