Author: fejj
Date: 2008-01-03 15:02:17 -0500 (Thu, 03 Jan 2008)
New Revision: 92202
Modified:
trunk/moon/src/ChangeLog
trunk/moon/src/media.cpp
Log:
2008-01-03 Jeffrey Stedfast <[EMAIL PROTECTED]>
Fix for bug #350962
* media.cpp (MediaBase::OnPropertyChanged): Don't emit
DownloaderProgressChanged events anymore, leave that up to Image
and MediaElement classes so that we don't emit events when an
outside source changes the value.
(MediaElement::UpdateProgress): Emit the DownloaderProgressChanged
event if the proper download delta has occured.
(Image::UpdateProgress): Same.
Modified: trunk/moon/src/ChangeLog
===================================================================
--- trunk/moon/src/ChangeLog 2008-01-03 19:05:50 UTC (rev 92201)
+++ trunk/moon/src/ChangeLog 2008-01-03 20:02:17 UTC (rev 92202)
@@ -1,3 +1,15 @@
+2008-01-03 Jeffrey Stedfast <[EMAIL PROTECTED]>
+
+ Fix for bug #350962
+
+ * media.cpp (MediaBase::OnPropertyChanged): Don't emit
+ DownloaderProgressChanged events anymore, leave that up to Image
+ and MediaElement classes so that we don't emit events when an
+ outside source changes the value.
+ (MediaElement::UpdateProgress): Emit the DownloaderProgressChanged
+ event if the proper download delta has occured.
+ (Image::UpdateProgress): Same.
+
2008-01-02 Rolf Bjarne Kvinge <[EMAIL PROTECTED]>
* dependencyobject.h: Remove warning.
Modified: trunk/moon/src/media.cpp
===================================================================
--- trunk/moon/src/media.cpp 2008-01-03 19:05:50 UTC (rev 92201)
+++ trunk/moon/src/media.cpp 2008-01-03 20:02:17 UTC (rev 92202)
@@ -48,11 +48,6 @@
void
MediaBase::OnPropertyChanged (DependencyProperty *prop)
{
- if (prop == MediaElement::DownloadProgressProperty) {
- // printf ("DownloadProgressChanged! value: %e\n", GetValue
(prop)->AsDouble ());
- Emit (DownloadProgressChangedEvent);
- }
-
FrameworkElement::OnPropertyChanged (prop);
}
@@ -667,12 +662,20 @@
double progress = downloader->GetValue
(Downloader::DownloadProgressProperty)->AsDouble ();
if (progressive) {
+ double current = GetValue
(MediaElement::DownloadProgressProperty)->AsDouble ();
+
SetValue (MediaElement::DownloadProgressProperty, Value
(progress));
+
+ /* only emit an event if the delta is >= 0.05% */
+ if (progress == 1.0 || (progress - current) > 0.0005)
+ Emit (MediaBase::DownloadProgressChangedEvent);
} else {
SetValue (MediaElement::BufferingProgressProperty, Value
(progress));
- if (progress == 1.0)
+ if (progress == 1.0) {
SetValue (MediaElement::DownloadProgressProperty, Value
(progress));
+ Emit (MediaBase::DownloadProgressChangedEvent);
+ }
}
}
@@ -1313,8 +1316,13 @@
Image::UpdateProgress ()
{
double progress = downloader->GetValue
(DownloadProgressProperty)->AsDouble ();
-
+ double current = GetValue (Image::DownloadProgressProperty)->AsDouble
();
+
SetValue (Image::DownloadProgressProperty, Value (progress));
+
+ /* only emit an event if the delta is >= 0.05% */
+ if (progress == 1.0 || (progress - current) > 0.0005)
+ Emit (MediaBase::DownloadProgressChangedEvent);
}
void
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches