--- trunk/reactos/subsys/system/explorer/dialogs/searchprogram.cpp 2005-04-02 18:01:18 UTC (rev 14450)
+++ trunk/reactos/subsys/system/explorer/dialogs/searchprogram.cpp 2005-04-02 18:24:13 UTC (rev 14451)
@@ -1,5 +1,5 @@
/*
- * Copyright 2003, 2004 Martin Fuchs
+ * Copyright 2003, 2004, 2005 Martin Fuchs
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -42,10 +42,11 @@
} catch(COMException&) {
}
- try {
- collect_programs(SpecialFolderPath(CSIDL_PROGRAMS, _hwnd));
- } catch(COMException&) {
- }
+ if (_alive)
+ try {
+ collect_programs(SpecialFolderPath(CSIDL_PROGRAMS, _hwnd));
+ } catch(COMException&) {
+ }
if (_alive)
_cache_valid = true;
@@ -60,16 +61,13 @@
dir->smart_scan(SORT_NONE, /*SCAN_EXTRACT_ICONS|*/SCAN_FILESYSTEM);
- for(Entry*entry=dir->_down; entry; entry=entry->_next) {
- if (!_alive)
- break;
-
+ for(Entry*entry=dir->_down; _alive && entry; entry=entry->_next) {
if (entry->_shell_attribs & SFGAO_HIDDEN)
continue;
- if (entry->_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+ if (entry->_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
collect_programs(entry->create_absolute_pidl());
- } else if (entry->_shell_attribs & SFGAO_LINK)
+ else if (entry->_shell_attribs & SFGAO_LINK)
if (_alive)
_callback(entry, _para);
}
@@ -139,6 +137,8 @@
FindProgramDlg::~FindProgramDlg()
{
+ _thread.Stop();
+
unregister_pretranslate(_hwnd);
}
@@ -262,6 +262,10 @@
LRESULT FindProgramDlg::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
{
switch(nmsg) {
+ case WM_CLOSE:
+ ListView_SetImageList(_list_ctrl, 0, LVSIL_SMALL); // detach system image list
+ goto def;
+
case PM_TRANSLATE_MSG: {
MSG* pmsg = (MSG*) lparam;
@@ -270,7 +274,7 @@
return FALSE;}
- default:
+ default: def:
return super::WndProc(nmsg, wparam, lparam);
}
--- trunk/reactos/subsys/system/explorer/explorer.cpp 2005-04-02 18:01:18 UTC (rev 14450)
+++ trunk/reactos/subsys/system/explorer/explorer.cpp 2005-04-02 18:24:13 UTC (rev 14451)
@@ -387,7 +387,7 @@
SHFILEINFO sfi;
-#if 1 // use system image list
+#if 1 // use system image list - the "search program dialog" needs it
HIMAGELIST himlSys = (HIMAGELIST) SHGetFileInfo(path, 0, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX|SHGFI_SMALLICON);
if (himlSys) {
--- trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp 2005-04-02 18:01:18 UTC (rev 14450)
+++ trunk/reactos/subsys/system/explorer/taskbar/startmenu.cpp 2005-04-02 18:24:13 UTC (rev 14451)
@@ -425,7 +425,7 @@
break;
case PM_SELECT_ENTRY:
- SelectButtonIndex(0, wparam?true:false);
+ SelectButtonIndex(0, wparam!=0);
break;
#ifdef _LIGHT_STARTMENU