diff options
-rw-r--r-- | plugins/TabSRMM/src/mim.cpp | 3 | ||||
-rw-r--r-- | plugins/TabSRMM/src/mim.h | 50 | ||||
-rw-r--r-- | plugins/TabSRMM/src/msglog.cpp | 4 |
3 files changed, 21 insertions, 36 deletions
diff --git a/plugins/TabSRMM/src/mim.cpp b/plugins/TabSRMM/src/mim.cpp index 9834df89ae..be236744f4 100644 --- a/plugins/TabSRMM/src/mim.cpp +++ b/plugins/TabSRMM/src/mim.cpp @@ -186,6 +186,9 @@ bool CMimAPI::getAeroState() void CMimAPI::InitAPI() { + DWORD dwVer = LOWORD(GetVersion());
+ m_winVer = MAKEWORD(HIBYTE(dwVer), LOBYTE(dwVer));
+ m_hUxTheme = 0; // vista+ DWM API diff --git a/plugins/TabSRMM/src/mim.h b/plugins/TabSRMM/src/mim.h index de661242da..4900e1d95b 100644 --- a/plugins/TabSRMM/src/mim.h +++ b/plugins/TabSRMM/src/mim.h @@ -145,40 +145,22 @@ public: __forceinline double getFreq() const { return m_dFreq; }
__forceinline double getMsec() const { return 1000 * ((double)(m_tStop - m_tStart) * m_dFreq); }
- /*
- * os dependant stuff (aero, visual styles etc.)
- */
+ //////////////////////////////////////////////////////////////////////////////////////
+ // os dependent stuff (aero, visual styles etc.)
- /**
- * return status of Vista Aero
- *
- * @return bool: true if aero active, false otherwise
- */
- const bool isAero() const { return(m_isAero); }
- const bool isDwmActive() const { return(m_DwmActive); }
-
- /**
- * Refresh Aero status.
- * Called on:
- * * plugin init
- * * WM_DWMCOMPOSITIONCHANGED message received
- *
- * @return
- */
+ // returns status of Windows Aero
+ const bool isAero() const { return m_isAero; }
+
+ const bool isDwmActive() const { return m_DwmActive; }
+ const DWORD getWinVer() const { return m_winVer; }
+
+ // refresh Aero status.
bool getAeroState();
- /**
- * return status of visual styles theming engine (Windows XP+)
- *
- * @return bool: themes are enabled
- */
- bool isVSThemed()
- {
- return m_isVsThemed;
- }
- /*
- * window lists
- */
+ // returns status of visual styles theming engine (Windows XP+)
+ __forceinline bool isVSThemed() { return m_isVsThemed; }
+
+ // window lists
void BroadcastMessage(UINT msg, WPARAM wParam, LPARAM lParam);
void BroadcastMessageAsync(UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR AddWindow(HWND hWnd, MCONTACT h);
@@ -194,9 +176,8 @@ public: public:
HANDLE m_hMessageWindowList;
- /*
- various function pointers
- */
+
+ // various function pointers
static PDTTE m_pfnDrawThemeTextEx;
static DEFICA m_pfnDwmExtendFrameIntoClientArea;
static DICE m_pfnDwmIsCompositionEnabled;
@@ -225,6 +206,7 @@ private: double m_dFreq;
char m_timerMsg[256];
bool m_hasFolders;
+ DWORD m_winVer;
HANDLE m_hChatLogLock;
void InitAPI();
diff --git a/plugins/TabSRMM/src/msglog.cpp b/plugins/TabSRMM/src/msglog.cpp index 2a451bafd3..08a4aa57df 100644 --- a/plugins/TabSRMM/src/msglog.cpp +++ b/plugins/TabSRMM/src/msglog.cpp @@ -1353,8 +1353,8 @@ void TSAPI StreamInEvents(HWND hwndDlg, HANDLE hDbEventFirst, int count, int fAp ReplaceIcons(hwndDlg, dat, startAt, fAppend, isSent);
dat->clr_added = FALSE;
- bool bForce = (dat->hwndIEView == 0 && dat->hwndHPP == 0);
- DM_ScrollToBottom(dat, bForce, bForce);
+ if (dat->hwndIEView == 0 && dat->hwndHPP == 0 && (!M.isAero() || M.getWinVer() != 0x0601))
+ DM_ScrollToBottom(dat, 1, 1);
HWND hwndLog = GetDlgItem(hwndDlg, IDC_LOG);
SendMessage(hwndLog, WM_SETREDRAW, TRUE, 0);
|