author | mickeyl <mickeyl> | 2004-05-13 21:56:23 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-05-13 21:56:23 (UTC) |
commit | f005863ac3e3106f3da9fd337ab0a20da0cd4b83 (patch) (unidiff) | |
tree | b633e278659c87b7bc964bb5ea80d46131798960 /noncore/graphics/drawpad/drawpadcanvas.cpp | |
parent | 6841da6429d864d5554c5a16e87c2755fe96343b (diff) | |
download | opie-f005863ac3e3106f3da9fd337ab0a20da0cd4b83.zip opie-f005863ac3e3106f3da9fd337ab0a20da0cd4b83.tar.gz opie-f005863ac3e3106f3da9fd337ab0a20da0cd4b83.tar.bz2 |
BUGFIX for 1314: Fix page initialization on first start of drawpad.
Problem was caused by a race condition. Developers: If you have todo
initializations which depend on the widget layout being finished,
_don't_ do this in the widget constructor but in a callback from the mainloop,
i.e. via QTimer::singleShot( 10, this, SLOT( myInitialization() ) );
Diffstat (limited to 'noncore/graphics/drawpad/drawpadcanvas.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/drawpad/drawpadcanvas.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/noncore/graphics/drawpad/drawpadcanvas.cpp b/noncore/graphics/drawpad/drawpadcanvas.cpp index 423ef26..5d0c6e4 100644 --- a/noncore/graphics/drawpad/drawpadcanvas.cpp +++ b/noncore/graphics/drawpad/drawpadcanvas.cpp | |||
@@ -516,11 +516,13 @@ void DrawPadCanvas::contentsMouseMoveEvent(QMouseEvent* e) | |||
516 | 516 | ||
517 | void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch) | 517 | void DrawPadCanvas::drawContents(QPainter* p, int cx, int cy, int cw, int ch) |
518 | { | 518 | { |
519 | Page* currentPage = m_pages.current(); | ||
520 | if ( !currentPage ) return; // no page yet --> initialization not finished (Mickeyl) | ||
519 | QRect clipRect(cx, cy, cw, ch); | 521 | QRect clipRect(cx, cy, cw, ch); |
520 | QRect pixmapRect(0, 0, m_pages.current()->pixmap()->width(), m_pages.current()->pixmap()->height()); | 522 | QRect pixmapRect(0, 0, currentPage->pixmap()->width(), m_pages.current()->pixmap()->height()); |
521 | QRect drawRect = pixmapRect.intersect(clipRect); | 523 | QRect drawRect = pixmapRect.intersect(clipRect); |
522 | 524 | ||
523 | p->drawPixmap(drawRect.topLeft(), *(m_pages.current()->pixmap()), drawRect); | 525 | p->drawPixmap(drawRect.topLeft(), *(currentPage->pixmap()), drawRect); |
524 | 526 | ||
525 | if (drawRect.right() < clipRect.right()) { | 527 | if (drawRect.right() < clipRect.right()) { |
526 | p->fillRect(drawRect.right() + 1, cy, cw - drawRect.width(), ch, colorGroup().dark()); | 528 | p->fillRect(drawRect.right() + 1, cy, cw - drawRect.width(), ch, colorGroup().dark()); |