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

Reply via email to