Commit graph

55 commits

Author SHA1 Message Date
Whindmar Saksit
751641c2be
[SHELL32][COMCTL32][BROWSEUI][EXPLORER] Update color usage on WM_SYSCOLORCHANGE (#7325) 2024-09-14 13:07:11 +02:00
Jose Carlos Jesus
045333e890
[EXPLORER] Restore windows on second click of Show Desktop button (#7184)
On the second click on "Show desktop" button, the minimized windows
are not restored, because after the first click, and the addition to
`CSimpleArray<MINWNDPOS> g_MinimizedAll`, a call to `RestoreMinimizedNonTaskWnds()`
via `HSHELL_WINDOWACTIVATED` message clears the list of minimized windows.

Don't empty `g_MinimizedAll` while processing HSHELL_WINDOWCREATED or
HSHELL_WINDOWACTIVATED messages (bDestroyed=FALSE).

Empty `g_MinimizedAll` only when SendPulseToTray is called with bDestroyed=TRUE.

Addendum to e6bced7a35 and 70d7009ad9. CORE-19703 CORE-15369
2024-08-02 17:36:26 +03:00
Ethan Rodensky
70d7009ad9 [EXPLORER] Improve appearance of Show Desktop button (#5744)
While functional, Katayama's show desktop button left much to be desired
in the realm of appearances. This commit brings improvements for it:

- When using the classic theme, the Show Desktop button now appears
  more faithful to its Microsoft counterpart, emblazoned with an icon,
  and encased in a border only when hovered or pressed.
- With a visual style applied, the button behaves in one of two ways:
  - If present, the Show Desktop button now properly uses the relevant
    information from the visual style, just like on Windows 7.
  - Otherwise, the Show Desktop button uses an icon akin to when the
    classic theme is used, but with the button background's appearance
    repurposed from the taskbar toolbar buttons, which are guaranteed to
    exist in any Windows XP or Vista visual style you can find out there.

ReactOS's own Lautus and Mizu visual styles will be updated in the
following commits to utilize these features, while Lunar and Modern visual
styles left untouched to display Show Desktop button with icon instead.

CORE-15369
2024-07-24 11:08:36 +03:00
Whindmar Saksit
802dc9714b
[SHELL32][SHLWAPI][BROWSEUI][EXPLORER] Save folder view state (#7127)
Saves/restores the Listview icon mode, columns and sort info per-folder.
2024-07-19 14:40:20 +02:00
Katayama Hirofumi MZ
92551f540c
[EXPLORER] Check IsHungAppWindow before minimizing (#7080)
Reduce system freezing on Win+D.
Normal minimizing causes message
transfer. If the window was hanging,
then it fell into endless message loop.
JIRA issue: CORE-19673
2024-07-07 06:50:46 +09:00
Whindmar Saksit
43b3280f69
[EXPLORER] Don't use Explorers ID_SHELL_CMD IDs in IShellFolder menu (#6872)
Explorer does not control the IDs used by CFSFolder::QueryContext menu and therefore cannot share its ID range with it. The range passed to CFSFolder::QueryContext also cannot start at 0 because CTrayWindow::TrackCtxMenu would interpret that as user cancel.
2024-05-21 12:57:54 +02:00
Katayama Hirofumi MZ
17b0623cf8
[EXPLORER] Start menu: Fix Small Icons flag (#6651)
Follow-up to #6646.
Fix wrong flag use: #6646 (comment)
JIRA issue: CORE-19494
- Delete SmallStartMenu flag (wrong) from
  _TW_STUCKRECTS2.
- Rename _TW_STUCKRECTS2.SmallIcons as
  SmSmallIcons.
- Use SmSmallIcons flag.
2024-03-22 21:15:22 +09:00
Katayama Hirofumi MZ
ad748b0b3b
[EXPLORER][SHELL32] Smaller Start Menu (#6646)
Improve customization of Start Menu.
JIRA issue: CORE-19494
- Add SmallStartMenu flag to TW_STRUCKRECTS2
  structure.
- Add IDS_ADVANCED_SMALL_START_MENU
  resource string.
- Update g_TaskbarSettings.sr.SmallStartMenu via
  a callback function.
- Check g_TaskbarSettings.sr.SmallStartMenu
  when Start Menu is updated.
2024-03-20 07:32:52 +09:00
Katayama Hirofumi MZ
d1ac33a9bd
[EXPLORER][SHELL32] Strengthen Start Menu Customize Part 1 (#6544)
Strengthen customization of Start menu.
JIRA issue: CORE-16956
- Modify IDD_CLASSICSTART_CUSTOMIZE dialog.
- Add some resource strings to shell32.dll.
- Add some helper functions.
- Disable Clear button if necessary.
- Add "Display Favorites" and "Display Log Off"
  items into IDC_CLASSICSTART_SETTINGS treeview
  control.
- Implement two items' action.
- Recreate the start menu if WM_SETTINGCHANGE
  message received.
2024-02-27 20:41:43 +09:00
Carl J. Bialorucki
28ae9fb738
[EXPLORER] Set icon size and show or hide desktop button from taskbar properties (#5510)
CORE-11698, CORE-15369

Allows a user to set the icon size and show or hide the desktop button in
the taskbar using the taskbar properties menu. After applying these changes,
the taskbar updates and resizes without requiring a restart.

- This PR moves the 'Notification Area' section into its own separate tab.
  This allows us to include more options for users without increasing the
  size of the window. It is also very similar to the Windows Vista taskbar
  properties menu.

- Some minor changes to allow the taskbar to refresh its view when the icon
  size or show desktop button setting changes.
2023-08-10 17:06:55 +02:00
Andrew Dent
72ea2d4c26
[REACTOS] Spelling fixes (#5534)
Fix spellings / hyphenation: `unassociate` ; `read-only` ; `double-click`
2023-08-09 11:48:07 +02:00
Katayama Hirofumi MZ
22ab8c812a
[EXPLORER] Improve the minimize-condition on Win+D (#5423)
- Add CanBeMinimized helper function to determine whether the window should be minimized.
- Use them in FindEffectiveProc and MinimizeWindowsProc functions.
- Improve the Minimize code.
CORE-18427
2023-07-14 18:03:15 +09:00
Carl J. Bialorucki
7fafeb6390
[EXPLORER] Save taskbar position and locked state after reboot (#5393)
- Save locked state of the taskbar when toggled using its context menu.
- Save position of the taskbar after dragging it around the desktop.
- Invoke TRAYCMD_LOCK_TASKBAR command when (un)locking the taskbar
  by the context menu, instead of duplicating this functionality.

CORE-11621 CORE-16997
2023-07-04 16:16:24 +03:00
Katayama Hirofumi MZ
e6bced7a35
[EXPLORER][RUNDLL32] Restore minimized non-task windows (#5228)
The minimized non-task windows were not usable due to the bugs. In some situations, the system will restore the minimized non-task windows.
- Add IsTaskWnd helper function.
- Add SendPulseToTray function to send a pulse to the tray window.
- At some shell hook handlings, send a pulse to the tray window.
- Add IgnorePulse flag to control the timing of restoring.
- Add a timer to reset IgnorePulse flag.
- If the pulse has come and IgnorePulse flag is false, then restore the minimized non-task windows.
- Modify the rundll32 window procedure.
- Use WINDOWPLACEMENT to restore the minimized windows.
CORE-13895, CORE-18350
2023-05-03 07:39:05 +09:00
Tuur Martens
be970d8d31
[EXPLORER] Implement "Undo Cascade/Tile" menu items (#4817)
Implement taskbar context menu items "Undo Cascade" and "Undo Tile".
Based on patch by KRosUser.

CORE-18383
2022-11-03 15:48:18 +03:00
Katayama Hirofumi MZ
802a87dfb2
[EXPLORER] Hide Start Menu before Run dialog (#4823)
- Add HideStartMenu helper method.
- Hide Start Menu before opening Run dialog.
CORE-13330
2022-11-02 11:29:08 +09:00
Mark Jansen
cd2d284142
[EXPLORER][BROWSEUI][SHELL32][NETSHELL] Fix wrong usage of CComPtr 2022-10-02 00:38:23 +02:00
Joachim Henze
63fa674782
[EXPLORER] Cleanup after last commit (#4722)
Improves code that was added by 0.4.15-dev-5078-g 46de3a22ac
without any review yesterday.

CORE-15369
2022-09-25 16:48:54 +03:00
Katayama Hirofumi MZ
46de3a22ac [EXPLORER] Follow-up of #4718 (ba2cead)
Handle click OnNcLButtonUp instead of OnNcLButtonDown/OnNcLButtonDblClick.
CORE-15369
2022-09-23 08:25:27 +09:00
Katayama Hirofumi MZ
ba2cead8a2
[EXPLORER] 'Show Desktop' button should work on button up (#4718)
Follow-up of PR #4715. CORE-15369
- The 'Show Desktop' button of taskbar works on button up instead of button down.
- Add NULL checks for m_ShowDesktopButton.
- Fix hung-up in rebooting.
2022-09-22 23:01:12 +09:00
Katayama Hirofumi MZ
26efda4d8d
[EXPLORER] Add 'Show Desktop' button at right edge of taskbar (#4715)
This PR adds a tiny button of window class "TrayShowDesktopButtonWClass" at right/bottom edge of taskbar.
This button allows the user to access "Show/Restore Desktop" feature by mouse.
You can toggle visibility of this button by registry value "TaskbarSd" in key "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced".
The button is themed when theme is available.
CORE-15369
2022-09-22 12:18:59 +09:00
Katayama Hirofumi MZ
255f43086d
[EXPLORER] Fix assertion failure on start button (#4581)
CORE-18024
2022-07-18 22:20:25 +09:00
Katayama Hirofumi MZ
d958950217
[EXPLORER] Enable _DEBUG and fix assertion failures (#4306)
- Enable _DEBUG if debugging.
- Fix assertion failures.
CORE-18013
2022-01-24 10:26:13 +09:00
Katayama Hirofumi MZ
4ed752e2c5 [EXPLORER] Adjust Taskbar AUTOHIDE size Part 2
The previous commit 2cc893f was too thick. CORE-17927
2021-12-24 07:52:02 +09:00
Katayama Hirofumi MZ
2cc893f514 [EXPLORER] Adjust AUTOHIDE size
GetSystemMetrics(SM_CXBORDER) is too thin. CORE-17927
2021-12-24 07:26:11 +09:00
Jose Carlos Jesus
c3a4309d0c
[EXPLORER] Fixed issue in TaskBar AUTOHIDE CORE-17093 (#2863)
CORE-17093
2021-12-17 12:42:19 +09:00
Katayama Hirofumi MZ
e055b0623c [EXPLORER] Use ShowWindowAsync in CTrayWindow::RestoreAll()
Here, ShowWindowAsync is better than ShowWindow.
CORE-17894
2021-12-14 23:12:01 +09:00
Doug Lyons
67ad4e7f60
[EXPLORER] Fix for Start Button Wrong size when Using Themes (#4121) CORE-16742
The problem once was unhidden by
0.4.7-dev-705-g 85ae842105
2021-11-30 22:48:46 +01:00
Timo Kreuzer
ce537f1ae9 [EXPLORER] Check m_Position for -1 before using it as an index
This fixes a crash on x64.
2021-06-04 09:15:55 +02:00
Katayama Hirofumi MZ
9259ded8ae
[ATL][SHELL32][EXPLORER] Disable ATLASSERT (#3527)
We are not ready for enabling ATLASSERT. Enabling ATL assertions takes time to realize. CORE-17505
- Disable ATLASSERT by undefining _DEBUG.
- Revert currently non-fixable codes.
2021-03-11 20:26:45 +09:00
Mark Jansen
1952e5b795
Fix some assertions now that they are enabled (#3524)
Fix some assertions, hack out some others (they need more ATL work).
CORE-17505
2021-03-11 07:43:06 +09:00
Katayama Hirofumi MZ
451a9c6f52
[EXPLORER] Implement ABN_WINDOWARRANGE (#3033)
The AppBar window has to receive the ABN_WINDOWARRANGE notification message before and after the window arrangement from taskbar. CORE-7237
2020-08-12 06:00:09 +09:00
Katayama Hirofumi MZ
1c40070561
[EXPLORER] Improve CTrayWindow::OnCopyData (#3028)
Check pCopyData->dwData value. Don't send message needlessly.
CORE-7237
2020-08-10 07:15:21 +09:00
Brock Mammen
4d097cf8b4 [EXPLORER] Open search from start menu 2019-09-15 19:46:36 +03:00
Ioannis Adamopoulos
e419195d37 [HEADERS] Move some helpers from undocshell.h to shellutils.h as they didn't cover anything undocumented. Merge traycmd.h in undocshell.h as both contain just undocumented shell definitions. 2019-08-25 12:20:52 +03:00
Mark Jansen
6940d9fdf0
[EXPLORER] Add TWM_GETTASKSWITCH, which seems to be used on windows
to get a handle to the task switch control.
This can then be used to send messages to it, like hiding/showing buttons
CORE-15424
2018-12-17 20:38:38 +01:00
Giannis Adamopoulos
84fa20ec8b [EXPLORER]
-Rename StartMenuBtnCtxMenuCreator to CStartMenuBtnCtxMenu_CreateInstance.
-Rename CreateStartMenuSite to CStartMenuSite_CreateInstance.
-Remove a couple of definitions that were not used.
2018-11-27 10:33:42 +02:00
Timo Kreuzer
cf77354dce [REACTOS] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Katayama Hirofumi MZ
75b09f3f88 [EXPLORER][SHELL32][USER32] Implement 'Show the Desktop' action of Task Bar (#668)
The keyboard shortcuts Win+D and Win+M are also enabled.

- Implement IShellDispatch4::ToggleDesktop().
- Implement some commands in CTrayWindow.
- Add "sdk/include/reactos/traycmd.h" for tray commands.
- Fix task window switching.
- Improve the user32!SwitchToThisWindow() function and use it.

CORE-14318, CORE-13157
See also: CORE-14806 and CORE-8723
2018-07-13 10:34:42 +02:00
Katayama Hirofumi MZ
58825de892 [EXPLORER] Fix TrackCtxMenu about NULL ppt (#666)
CORE-14772
2018-07-08 16:36:28 +02:00
Katayama Hirofumi MZ
a882ec7a02 [SHELL32][EXPLORER] Update system-wide environment variables (#663)
- Implement shell32 RegenerateUserEnvironment() function and use it.
- CShellBrowser and CDesktopBrowser implements WM_SETTINGCHANGE actions.

CORE-1459, CORE-14397
2018-07-08 16:32:42 +02:00
Katayama Hirofumi MZ
c84f398306 [EXPLORER] 'Run' (Win+R) should set the proper current directory (#593) 2018-06-21 18:18:57 +02:00
Hermès Bélusca-Maïto
c62bccdda0
[EXPLORER] Implement the feature of cleanly shutting down the explorer shell when cancelling the shutdown-dialog while pressing the CTRL-ALT-SHIFT keys.
See the feature description in https://msdn.microsoft.com/en-us/library/windows/desktop/cc144064(v=vs.85).aspx
and the additional observations reported in CORE-14358 .
2018-04-08 00:36:56 +02:00
Hermès Bélusca-Maïto
6093abdebb
[EXPLORER] Remove trailing whitespace. 2018-04-08 00:36:51 +02:00
Hermès Bélusca-Maïto
eff4c2138d
[EXPLORER] Remove double 'return' statement. Determining whether it should be HTBORDER or HTCLIENT is left as an exercise to the reader.
Spotted by 'mudhead'. CORE-14528
2018-04-07 19:06:22 +02:00
Giannis Adamopoulos
b95fff5bce [EXPLORER] CTrayWindow: Set the initial lock state in the band site
This alongside the previous commit, fix locking and unlocking the taskbar.
2018-02-28 17:21:19 +02:00
Giannis Adamopoulos
fabf069daf [EXPLORER] Fix showing the lock status in the taskbar popup menu 2018-01-29 18:15:31 +02:00
Giannis Adamopoulos
c54c5ebb5f [EXPLORER] CTrayWindow: Draw the sizer only when the taskbar is not locked. 2018-01-29 00:27:45 +02:00
Giannis Adamopoulos
455bce68b5 [EXPLORER] -Make CSysPagerWnd, CTaskSwitchWnd, CTrayClockWnd and CTrayNotifyWnd proper com objects so that their lifetime is managed properly. 2018-01-28 18:35:16 +02:00
Giannis Adamopoulos
7f35908ad2 [EXPLORER] CTrayNotifyWnd: Simplify how it interacts with its parent and children. Clean up. 2018-01-27 19:41:09 +02:00