More efficient animation.
This commit is contained in:
		
							parent
							
								
									df840dd0ab
								
							
						
					
					
						commit
						a6dc5cbe18
					
				|  | @ -258,6 +258,11 @@ func eventLoop() { | |||
| 	} | ||||
| 
 | ||||
| 	listPage = func() { | ||||
| 		// timing variables used for animation
 | ||||
| 		fade1a, fade1b := 1.5, 2.0 | ||||
| 		start2 := float64(Config.ClearDelay) | ||||
| 		fade2a, end := start2 + 1.5, start2 + 2.0 | ||||
| 
 | ||||
| 		cs = flex.Flexible(1.0) | ||||
| 		mux.Lock() | ||||
| 		if lst.Dragging() { | ||||
|  | @ -289,7 +294,11 @@ func eventLoop() { | |||
| 							overlay = copied | ||||
| 							overlay.Color = black | ||||
| 							overlay.Background = darkgray | ||||
| 							w.Invalidate() | ||||
| 							go func() { | ||||
| 								time.Sleep(time.Second * time.Duration(fade1a)) | ||||
| 								animOn() | ||||
| 							}() | ||||
| 							go func() { | ||||
| 								time.Sleep(time.Second * time.Duration(Config.ClearDelay)) | ||||
| 								log(Info, "clearing clipboard") | ||||
|  | @ -312,12 +321,19 @@ func eventLoop() { | |||
| 		} | ||||
| 		flex.Layout(c1, c2) | ||||
| 		x := time.Since(overlayStart).Seconds() | ||||
| 		fade1a, fade1b := 1.5, 1.75 | ||||
| 		start2 := float64(Config.ClearDelay) | ||||
| 		fade2a, end := start2 + 1.5, start2 + 1.75 | ||||
| 		switch { | ||||
| 		case x > fade1a && x < fade1b || | ||||
| 		     x > fade2a && x < end: | ||||
| 		if x >= fade1b && x < start2 && animating { | ||||
| 			animOff() | ||||
| 			go func() { | ||||
| 				time.Sleep(time.Millisecond * time.Duration((start2 - x)*1000)) | ||||
| 				w.Invalidate() | ||||
| 				time.Sleep(time.Millisecond * time.Duration((fade2a - start2)*1000)) | ||||
| 				animOn() | ||||
| 			}() | ||||
| 		} | ||||
| 		if (x >= fade1a && x < fade1b) || (x > fade2a && x < end) { | ||||
| 			if !animating { | ||||
| 				animOn() | ||||
| 			} | ||||
| 			var fade float64 | ||||
| 			switch { | ||||
| 			case x < fade1b: | ||||
|  | @ -333,9 +349,8 @@ func eventLoop() { | |||
| 			overlay.Background.G = uint8(float64(darkgray.G) * fade) | ||||
| 			overlay.Background.B = uint8(float64(darkgray.B) * fade) | ||||
| 			overlay.Background.A = uint8(float64(darkgray.A) * fade) | ||||
| 			fallthrough | ||||
| 		case x <= fade1b || | ||||
| 		     x > start2 && x < end: | ||||
| 		} | ||||
| 		if x <= fade1b || (x > start2 && x < end) { | ||||
| 			if x > start2 && overlay == copied { | ||||
| 				overlay = cleared | ||||
| 				overlay.Color = black | ||||
|  | @ -346,7 +361,11 @@ func eventLoop() { | |||
| 			cs = al.Begin(ops, cs) | ||||
| 			cs.Width.Min = cs.Width.Max | ||||
| 			dims = al.End(overlay.Layout(c, ops, cs)) | ||||
| 		case animating && x > end: | ||||
| 		} | ||||
| 		if x > start2 && x < fade2a { | ||||
| 		//	animOff()
 | ||||
| 		} | ||||
| 		if animating && x > end { | ||||
| 			animOff() | ||||
| 		} | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user