diff options
author | Sebastian Geerken <devnull@localhost> | 2013-07-03 15:59:41 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2013-07-03 15:59:41 +0200 |
commit | e85879d0461fc31c060e07ad8f2bc142682c8095 (patch) | |
tree | 6acd85085ef9c1a9e1d43cab2b360c1549c7c92c /dw/layout.cc | |
parent | 97b5864b9b2a06c7cba9704206769fe8e0333d34 (diff) | |
parent | 8f86bdbd31d4b8a38fec04acbc3b853178495d4c (diff) |
Merge with main repo.
Diffstat (limited to 'dw/layout.cc')
-rw-r--r-- | dw/layout.cc | 87 |
1 files changed, 43 insertions, 44 deletions
diff --git a/dw/layout.cc b/dw/layout.cc index 209decc8..521f4f76 100644 --- a/dw/layout.cc +++ b/dw/layout.cc @@ -656,53 +656,52 @@ void Layout::resizeIdle () //static int calls = 0; //MSG(" Layout::resizeIdle calls = %d\n", ++calls); - while (resizeIdleId != -1) { - // Reset already here, since in this function, queueResize() may be - // called again. - resizeIdleId = -1; - - if (topLevel) { - Requisition requisition; - Allocation allocation; - - topLevel->sizeRequest (&requisition); - - allocation.x = allocation.y = 0; - allocation.width = requisition.width; - allocation.ascent = requisition.ascent; - allocation.descent = requisition.descent; - topLevel->sizeAllocate (&allocation); - - canvasWidth = requisition.width; - canvasAscent = requisition.ascent; - canvasDescent = requisition.descent; - - emitter.emitCanvasSizeChanged ( - canvasWidth, canvasAscent, canvasDescent); - - // Tell the view about the new world size. - view->setCanvasSize (canvasWidth, canvasAscent, canvasDescent); - // view->queueDrawTotal (false); - - if (usesViewport) { - int currHThickness = currHScrollbarThickness(); - int currVThickness = currVScrollbarThickness(); - - if (!canvasHeightGreater && - canvasAscent + canvasDescent - > viewportHeight - currHThickness) { - canvasHeightGreater = true; - setSizeHints (); - /* May queue a new resize. */ - } + assert (resizeIdleId != -1); - // Set viewport sizes. - view->setViewportSize (viewportWidth, viewportHeight, - currHThickness, currVThickness); - } + // Reset already here, since in this function, queueResize() may be + // called again. + resizeIdleId = -1; + + if (topLevel) { + Requisition requisition; + Allocation allocation; + + topLevel->sizeRequest (&requisition); + + allocation.x = allocation.y = 0; + allocation.width = requisition.width; + allocation.ascent = requisition.ascent; + allocation.descent = requisition.descent; + topLevel->sizeAllocate (&allocation); + + canvasWidth = requisition.width; + canvasAscent = requisition.ascent; + canvasDescent = requisition.descent; + + emitter.emitCanvasSizeChanged (canvasWidth, canvasAscent, canvasDescent); + + // Tell the view about the new world size. + view->setCanvasSize (canvasWidth, canvasAscent, canvasDescent); + // view->queueDrawTotal (false); + + if (usesViewport) { + int currHThickness = currHScrollbarThickness(); + int currVThickness = currVScrollbarThickness(); + + if (!canvasHeightGreater && + canvasAscent + canvasDescent + > viewportHeight - currHThickness) { + canvasHeightGreater = true; + setSizeHints (); + /* May queue a new resize. */ + } + + // Set viewport sizes. + view->setViewportSize (viewportWidth, viewportHeight, + currHThickness, currVThickness); } - // views are redrawn via Widget::resizeDrawImpl () + // views are redrawn via Widget::resizeDrawImpl () } |