Buffer is now reallocated on window size change
This commit is contained in:
		
							parent
							
								
									05c448f058
								
							
						
					
					
						commit
						c865f7146a
					
				| @ -150,14 +150,13 @@ func (backend *Backend) handleXEvent (event xgb.Event) { | ||||
| 		backend.metrics.windowHeight = newHeight | ||||
| 
 | ||||
| 		if sizeChanged { | ||||
| 			// compress events | ||||
| 			configureEvent = | ||||
| 				backend.compressConfigureNotify(configureEvent) | ||||
| 		 | ||||
| 			// resize and rebind canvas | ||||
| 			// TODO: remove draw functions from reallocate canvas, | ||||
| 			// and only reallocate when drawing and the window | ||||
| 			// dimensions have changed | ||||
| 			backend.reallocateCanvas() | ||||
| 
 | ||||
| 			// notify application of resize | ||||
| 			backend.application.SetSize(backend.calculateBufferSize()) | ||||
| 			backend.channel <- stone.EventResize { } | ||||
| 		} | ||||
| 	} | ||||
| @ -204,6 +203,16 @@ func (backend *Backend) calculateWindowSize () (x, y int) { | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func (backend *Backend) calculateBufferSize () (width, height int) { | ||||
| 	width = | ||||
| 		(backend.metrics.windowWidth - backend.metrics.padding * 2) / | ||||
| 		backend.metrics.cellWidth | ||||
| 	height = | ||||
| 		(backend.metrics.windowHeight - backend.metrics.padding * 2) / | ||||
| 		backend.metrics.cellHeight | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func (backend *Backend) reallocateCanvas () { | ||||
| 	backend.drawLock.Lock() | ||||
| 	defer backend.drawLock.Unlock() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user