Browse Source

Fix scrollviewer causing lockups.

Add a throttle to showing/hiding scrollbars to prevent them flashing on
and off.
pull/39/head
Steven Kirk 11 years ago
parent
commit
18e3900edc
  1. 4
      Perspex.Controls/ScrollViewer.cs
  2. 6
      Perspex.Diagnostics/DevTools.cs

4
Perspex.Controls/ScrollViewer.cs

@ -10,6 +10,7 @@ namespace Perspex.Controls
using System.Reactive.Linq; using System.Reactive.Linq;
using Perspex.Controls.Presenters; using Perspex.Controls.Presenters;
using Perspex.Controls.Primitives; using Perspex.Controls.Primitives;
using Perspex.Threading;
public class ScrollViewer : ContentControl public class ScrollViewer : ContentControl
{ {
@ -62,7 +63,8 @@ namespace Perspex.Controls
var extentAndViewport = Observable.CombineLatest( var extentAndViewport = Observable.CombineLatest(
this.GetObservable(ExtentProperty), this.GetObservable(ExtentProperty),
this.GetObservable(ViewportProperty)) this.GetObservable(ViewportProperty))
.Select(x => new { Extent = x[0], Viewport = x[1] }); .Select(x => new { Extent = x[0], Viewport = x[1] })
.Throttle(TimeSpan.FromMilliseconds(100), PerspexScheduler.Instance);
this.Bind( this.Bind(
VerticalScrollBarViewportSizeProperty, VerticalScrollBarViewportSizeProperty,

6
Perspex.Diagnostics/DevTools.cs

@ -118,10 +118,8 @@ namespace Perspex.Diagnostics
{ {
Window window = new Window Window window = new Window
{ {
// HACK: Set width and height here as a quick fix as there's a problem with Width = 1024,
// the dev tools window hanging when it's set to auto-size. Height = 512,
Width = 800,
Height = 600,
Content = new DevTools Content = new DevTools
{ {
Root = (Window)sender, Root = (Window)sender,

Loading…
Cancel
Save