x-backend #2
@ -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…
Reference in New Issue
Block a user