From: Sergei Chernyadyev serg.cherniadjev@gmail.com
Icon-related NIIF_ flags are now handled properly when used alongside with other flags such as NIIF_LARGE_ICON and others. --- programs/explorer/systray.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/programs/explorer/systray.c b/programs/explorer/systray.c index 275c683e3ff..fe58f4d1df4 100644 --- a/programs/explorer/systray.c +++ b/programs/explorer/systray.c @@ -239,9 +239,17 @@ static void balloon_create_timer( struct icon *icon ) ti.lpszText = icon->info_text; SendMessageW( balloon_window, TTM_ADDTOOLW, 0, (LPARAM)&ti ); if ((icon->info_flags & NIIF_ICONMASK) == NIIF_USER) + { SendMessageW( balloon_window, TTM_SETTITLEW, (WPARAM)icon->info_icon, (LPARAM)icon->info_title ); + } else - SendMessageW( balloon_window, TTM_SETTITLEW, icon->info_flags, (LPARAM)icon->info_title ); + { + UINT info_flags_wparam = icon->info_flags & NIIF_ERROR; + + if (icon->info_flags & NIIF_LARGEICON) + info_flags_wparam += TTI_ERROR; + SendMessageW( balloon_window, TTM_SETTITLEW, info_flags_wparam, (LPARAM)icon->info_title ); + } balloon_icon = icon; balloon_pos.x = balloon_pos.y = MAXLONG; update_systray_balloon_position();