diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-04-20 17:18:20 +0200 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-04-20 17:18:20 +0200 |
| commit | 079fdbf1a553e314cbba386b85ca92b67c61b8df (patch) | |
| tree | 7b025b94cd6cdcb26e5dde27207f7761ac1a394d /alf/alfnotebook.cpp | |
| parent | 4efad16e663d33f4700ab77c133ad99e2cdea40f (diff) | |
fixup transparent background work and add test in widgetfactory
Win32s bites once again with its 16bit WPARAM
Diffstat (limited to 'alf/alfnotebook.cpp')
| -rw-r--r-- | alf/alfnotebook.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/alf/alfnotebook.cpp b/alf/alfnotebook.cpp index 898c601..1db4011 100644 --- a/alf/alfnotebook.cpp +++ b/alf/alfnotebook.cpp @@ -96,9 +96,9 @@ ALF_Notebook_InternalHandleThemeChange(HWND hwndNotebook, ALFNotebookPriv *priv) HWND panel = ALF_Notebook_InternalTabPanel(hwndNotebook, priv->hwndTabCtrl, i); if (priv->hTheme) { - SendMessage(panel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_TRANSPARENT, 0); + ALF_SetBackgroundColor(panel, ALF_COLOR_TRANSPARENT); } else { - SendMessage(panel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_SYS(COLOR_BTNFACE), 0); + ALF_SetBackgroundColor(panel, ALF_COLOR_SYS(COLOR_BTNFACE)); } } } @@ -118,9 +118,9 @@ ALF_Notebook_InternalAddTab(HWND notebook, ALFNotebookPriv *priv, const TCHAR *t SendMessage(hwndPanel, WM_SETFONT, (WPARAM)SendMessage(priv->hwndTabCtrl, WM_GETFONT, 0, 0), 0); if (priv->hTheme) { - SendMessage(hwndPanel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_TRANSPARENT, 0); + ALF_SetBackgroundColor(hwndPanel, ALF_COLOR_TRANSPARENT); } else { - SendMessage(hwndPanel, ALF_WM_SETBGCOLOR, (WPARAM)ALF_COLOR_SYS(COLOR_BTNFACE), 0); + ALF_SetBackgroundColor(hwndPanel, ALF_COLOR_SYS(COLOR_BTNFACE)); } TCITEM tie; @@ -282,6 +282,9 @@ ALF__NotebookWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) GetClientRect(hwnd, &r); int n = ALF_Notebook_InternalTabCount(hwnd, priv->hwndTabCtrl); + RECT oldR; + GetWindowRect(priv->hwndTabCtrl, &oldR); + HDWP hdwp = BeginDeferWindowPos(n+1); // SWP_COPYBITS: NT 3.51 sadness, will not invalidate bottom edge properly on resize @@ -302,6 +305,13 @@ ALF__NotebookWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } EndDeferWindowPos(hdwp); + + if (priv->hTheme && ((oldR.bottom - oldR.top) != (r.bottom - r.top))) { + // only needed when height changes, since bg is tiled horizontally + HWND panel = ALF_NotebookSelectedPanel(hwnd); + if (panel != NULL) + ALF_InvalidateBackground(panel); + } } } else if (uMsg == ALF_NB_ADDTAB) { return (LRESULT)ALF_Notebook_InternalAddTab(hwnd, priv, (TCHAR *)lParam); |
