| Anonymous | Login | Signup for a new account | 2010-09-08 23:24 PDT |
| Main | My View | View Issues |
| Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | |||||||||||
| ID | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
| 0000107 | [litestep core] core | feature | always | 2010-07-15 05:08 | 2010-07-15 05:09 | |||||||
| Reporter | MamiyaOtaru | View Status | public | |||||||||
| Assigned To | ||||||||||||
| Priority | none | Resolution | open | |||||||||
| Status | feedback | Product Version | CVS-trunk | |||||||||
| Summary | 0000107: handling additional case in trayservice allows correct positioning of vista+ icons | |||||||||||
| Description |
An unhandled case in trayservice is hit when the new icons ask for position info after, and independent from being clicked. Patch handles this case. More changes are needed in the various tray modules, but afaict, this change is needed in core. Patch below, attaching it is failing. Is also here, in case the below gets mangled: http://www.sendspace.com/file/vqmoo3 [^] |
|||||||||||
| Additional Information |
diff -Naur ./litestepOld/TrayService.cpp ./litestep//TrayService.cpp --- ./litestepOld/TrayService.cpp 2010-07-15 05:57:37.036467900 -0600 +++ ./litestep//TrayService.cpp 2010-07-15 05:58:02.711936500 -0600 @@ -459,6 +459,12 @@ } } break; + + case 3: + { + lResult = pTrayService->TrayInfoEvent(pcds->cbData, pcds->lpData); + } + break; default: { @@ -647,6 +653,37 @@ } +LRESULT TrayService::TrayInfoEvent(DWORD cbData, LPVOID lpData) // size, data +{ + LRESULT lr = 0; + struct NOTIFYICONIDENTIFIER_MSGV1* s = (NOTIFYICONIDENTIFIER_MSGV1*)lpData; + + //systemTrayNode *p; + //dolist (p, trayIconList) + // if (IsEqualIID(p->guidItem, s->guidItem)) + // break; + //if (NULL == p) + // return 0; + + //if (s->dwMessage == 1) { + // return MAKELPARAM(p->pt.x, p->pt.y); + //} + + if (s->dwMessage == 2) { + return MAKELONG(16,16); + } + + POINT p; + GetCursorPos(&p); + + if (s->dwMessage == 1) { + return MAKELPARAM(p.x, p.y); + } + + // somehow call this BOOL Tray::onWindowMessage( UINT nMessage, WPARAM wParam, LPARAM lParam, LRESULT &lResult ) + +} + //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // // HandleAppBarCopydata diff -Naur ./litestepOld/TrayService.h ./litestep//TrayService.h --- ./litestepOld/TrayService.h 2010-07-15 05:57:12.869085600 -0600 +++ ./litestep//TrayService.h 2010-07-15 05:57:52.080328400 -0600 @@ -28,6 +28,7 @@ #include "../utility/IService.h" #include <ObjBase.h> #include <vector> +#include "WinUser.h" // shell copy data types #define SH_APPBAR_DATA (0) @@ -39,6 +40,17 @@ #define ABP_NOTIFYSTATECHANGE (WM_USER+351) #define ABP_RAISEAUTOHIDEHWND (WM_USER+360) +struct NOTIFYICONIDENTIFIER_MSGV1 +{ + DWORD dwMagic; + DWORD dwMessage; + DWORD cbSize; + DWORD dwPadding; + HWND hWnd; + UINT uID; + GUID guidItem; +}; + // data sent by shell via Shell_NotifyIcon typedef struct _SHELLTRAYDATA { @@ -127,7 +139,10 @@ LRESULT HandleAppBarCopydata(DWORD cbData, LPVOID lpData); LRESULT HandleAppBarMessage(PSHELLAPPBARDATA psad); - // Handler for system tray notifications + // Handler for tray info event + LRESULT TrayInfoEvent(DWORD cbData, LPVOID lpData); + + // Handler for system tray notifications BOOL HandleNotification(PSHELLTRAYDATA pstd); // Handler for LoadInProc messages |
|||||||||||
| Tags | No tags attached. | |||||||||||
| Attached Files | ||||||||||||
|
|
||||||||||||
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2010-07-15 05:08 | MamiyaOtaru | New Issue | |
| 2010-07-15 05:09 | MamiyaOtaru | Note Added: 0000267 | |
| Copyright © 2000 - 2009 Mantis Group |