diff options
author | Joerg Bornemann <joerg.bornemann@trolltech.com> | 2009-07-14 14:50:51 (GMT) |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@trolltech.com> | 2009-07-14 14:57:40 (GMT) |
commit | 5a2027850cd476046143f70d19a7fc07b76d46e7 (patch) | |
tree | 5f8ff9daf0065936a9e4651a22a9281d1e94f073 | |
parent | 93db2c44b7b01eb08ef6f447d4a84198b2dcd1e3 (diff) | |
download | Qt-5a2027850cd476046143f70d19a7fc07b76d46e7.zip Qt-5a2027850cd476046143f70d19a7fc07b76d46e7.tar.gz Qt-5a2027850cd476046143f70d19a7fc07b76d46e7.tar.bz2 |
support context menu for system tray icons on Windows CE
This is Windows CE only. For Windows mobile we don't support context
menus for system tray icons.
Task-number: 250528
Reviewed-by: thartman
-rw-r--r-- | src/gui/util/qsystemtrayicon_win.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/gui/util/qsystemtrayicon_win.cpp b/src/gui/util/qsystemtrayicon_win.cpp index dea9264..85eae26 100644 --- a/src/gui/util/qsystemtrayicon_win.cpp +++ b/src/gui/util/qsystemtrayicon_win.cpp @@ -314,7 +314,6 @@ bool QSystemTrayIconSys::winEvent( MSG *m, long *result ) emit q->activated(QSystemTrayIcon::Trigger); break; -#if !defined(Q_WS_WINCE) case WM_LBUTTONDBLCLK: emit q->activated(QSystemTrayIcon::DoubleClick); break; @@ -322,20 +321,30 @@ bool QSystemTrayIconSys::winEvent( MSG *m, long *result ) case WM_RBUTTONUP: if (q->contextMenu()) { q->contextMenu()->popup(gpos); +#if defined(Q_WS_WINCE) + // We must ensure that the popup menu doesn't show up behind the task bar. + QRect desktopRect = qApp->desktop()->availableGeometry(); + int maxY = desktopRect.y() + desktopRect.height() - q->contextMenu()->height(); + if (gpos.y() > maxY) { + gpos.ry() = maxY; + q->contextMenu()->move(gpos); + } +#endif q->contextMenu()->activateWindow(); //Must be activated for proper keyboardfocus and menu closing on windows: } emit q->activated(QSystemTrayIcon::Context); break; +#if !defined(Q_WS_WINCE) case NIN_BALLOONUSERCLICK: emit q->messageClicked(); break; +#endif case WM_MBUTTONUP: emit q->activated(QSystemTrayIcon::MiddleClick); break; -#endif default: break; } |