summaryrefslogtreecommitdiff
path: root/alf/alfnotebook.cpp
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-20 17:18:20 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-04-20 17:18:20 +0200
commit079fdbf1a553e314cbba386b85ca92b67c61b8df (patch)
tree7b025b94cd6cdcb26e5dde27207f7761ac1a394d /alf/alfnotebook.cpp
parent4efad16e663d33f4700ab77c133ad99e2cdea40f (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.cpp18
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);