summaryrefslogtreecommitdiffstats
path: root/src/plugins/graphicssystems
diff options
context:
space:
mode:
authorJeremy Katz <jeremy.katz@nokia.com>2010-01-04 17:18:16 (GMT)
committerJeremy Katz <jeremy.katz@nokia.com>2010-01-05 12:07:39 (GMT)
commita8898716b1bf8f2b01596677bf7f913709cea3cf (patch)
tree545950b9518f11efcb9172a93178c4daed4175ba /src/plugins/graphicssystems
parente6c02f892651e69fc7f3a1991e115a7c315cc1de (diff)
downloadQt-a8898716b1bf8f2b01596677bf7f913709cea3cf.zip
Qt-a8898716b1bf8f2b01596677bf7f913709cea3cf.tar.gz
Qt-a8898716b1bf8f2b01596677bf7f913709cea3cf.tar.bz2
cursors starting to work. something on screen, but the images are wrong
additionally, there may be access control issues. blind setting/resetting appears to be the only option
Diffstat (limited to 'src/plugins/graphicssystems')
-rw-r--r--src/plugins/graphicssystems/minimaldfb/qdirectfbcursor.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/plugins/graphicssystems/minimaldfb/qdirectfbcursor.cpp b/src/plugins/graphicssystems/minimaldfb/qdirectfbcursor.cpp
index 9c6cc59..38c6c20 100644
--- a/src/plugins/graphicssystems/minimaldfb/qdirectfbcursor.cpp
+++ b/src/plugins/graphicssystems/minimaldfb/qdirectfbcursor.cpp
@@ -62,7 +62,13 @@ void QDirectFBCursor::changeCursor(QCursor * cursor, QWidget * widget)
//
//windowSurface->Blit(windowSurface, surface, NULL, 0, 0);
- DFBResult res = m_layer->SetCursorShape( m_layer, surface, cursor->hotSpot().x(), cursor->hotSpot().y());
+ int xSpot = cursor->hotSpot().x();
+ int ySpot = cursor->hotSpot().y();
+ // The SetCursorShape() call fails if the cooperative level is DLSCL_SHARED
+ // Question is, how can we determine the level, to reset is properly after?
+ m_layer->SetCooperativeLevel(m_layer, DLSCL_ADMINISTRATIVE);
+ DFBResult res = m_layer->SetCursorShape( m_layer, surface, xSpot, ySpot);
+ m_layer->SetCooperativeLevel(m_layer, DLSCL_SHARED); // This may be wrong. could be DFSCL_FULLSCREEN or DLSCL_ADMINISTRATIVE
qDebug() << "setCursorShape result:";
switch(res) {
case DFB_OK: qDebug() << "OK"; break;