summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorGareth Stockwell <ext-gareth.stockwell@nokia.com>2010-02-09 09:41:29 (GMT)
committerGareth Stockwell <ext-gareth.stockwell@nokia.com>2010-02-09 17:01:36 (GMT)
commit46df42af1a25fd06247bb96d9e0bf24bf19defe8 (patch)
tree59b847c3464e5a64f3a1303f4127a46cfe9659dd /tools
parent33aa8f4a035c1ce9231b40844e6e0793205d12aa (diff)
downloadQt-46df42af1a25fd06247bb96d9e0bf24bf19defe8.zip
Qt-46df42af1a25fd06247bb96d9e0bf24bf19defe8.tar.gz
Qt-46df42af1a25fd06247bb96d9e0bf24bf19defe8.tar.bz2
Fixed defect in handling of expose events for Symbian
Commit bc82db did not correctly handle native child widgets. Consider the case when we have a top-level widget A with a native child widget B. When QSymbianControl::Draw() is called on the control corresponding to B, the following occurs: 1. The inExpose flag is set in B's QWExtra structure. 2. The call to syncBackingStore() results in a call to QWidgetBackingStore::flush(), passing default parameters. 3. Because no target widget was passed to flush(), this function selects the top-level widget (A) as the target for the flush operation, passing A as the first argument of QS60WindowSurface::flush(). 4. QS60WindowSurface::flush() checks the inExpose flag from A's QWExtra structure, finds it to be false, and proceeds to call DrawNow() on A's control. Because QSymbianControl::Draw() uses the default graphics context, this context is shared between controls. This means that the DrawNow() call in step 4 causes a WSERV-10 panic (Activate() called on an already-active) graphics context. This patch moves the inExpose flag from B's QWExtra into A's QTLWExtra, with the result that the call to DrawNow() in step 4 is suppressed. Task-number: QTBUG-7960 Reviewed-by: axis
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions