[mistelix] Fixes preview slideshown (starts in slide 0) & a bit of code reorganization



commit b466e12eb0b2709bda531eb80b2ea124ce72be18
Author: Jordi Mas <jmas softcatala org>
Date:   Thu May 21 22:32:22 2009 +0200

    Fixes preview slideshown (starts in slide 0) & a bit of code reorganization
---
 src/dialogs/AddSlideDialog.cs |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/dialogs/AddSlideDialog.cs b/src/dialogs/AddSlideDialog.cs
index e50190b..8908825 100644
--- a/src/dialogs/AddSlideDialog.cs
+++ b/src/dialogs/AddSlideDialog.cs
@@ -474,6 +474,10 @@ namespace Mistelix.Dialogs
 			images_transition.Target = slide_b;
 			images_transition.Frames = 25 * 3;
 			images_transition.Reset ();
+			next = images_transition.MoveNext ();
+
+			timer.Interval = 40;
+			timer.Enabled = true;
 			QueueDraw ();
 		}
 
@@ -481,6 +485,16 @@ namespace Mistelix.Dialogs
 		{
 			next = images_transition.MoveNext ();
 			Application.Invoke (delegate { QueueDraw (); });
+
+			if (next) {
+				timer.Interval = 40;
+			} else {
+				// Preview finished, repetition starts 3 seconds
+				images_transition.Reset ();
+				next = images_transition.MoveNext ();
+				timer.Interval = 3000;
+				timer.Enabled = true;
+			}
 		}
 
 		protected override bool OnExposeEvent (Gdk.EventExpose args)
@@ -493,12 +507,6 @@ namespace Mistelix.Dialogs
 
 			byte[] pixels;
 
-			// Starting this preview, update time short
-			if (images_transition.CurrentFrame == 0) {		
-				timer.Interval = 40;
-				timer.Enabled = true;
-			}
-
 			img = (SlideImage) images_transition.Current;
 			pixels = img.Pixels;
 			// TODO: To change to the right signature when the new Mono.Cairo is wide spread. Fixed in Mono.Cairo r120299
@@ -510,13 +518,6 @@ namespace Mistelix.Dialogs
 			cc.Paint ();
 			cc.Restore ();
 			img_sur.Destroy ();
-
-			if (next == false) {
-				// Preview finished, repetition starts 3 seconds
-				images_transition.Reset ();
-				timer.Interval = 3000;
-				timer.Enabled = true;
-			}
 			
 			((IDisposable)cc).Dispose();
    			return base.OnExposeEvent(args);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]