If you recall from the last report, I had a few issues that I couldn’t fix myself. Well, Huw (Frontier) surprised me by sending me a patch to fix the activation issue!
One of the issues in explorer-new was that every time you clicked on the desktop to open a new folder, it would launch a new instance of explorer.exe and run the new window on it. While the underlying issue still remains (it requires implementing the DDE handler for explorer), by disabling the version of the desktop window from RShell and using the existing one from shell32 instead, the shell takes a shortcut and runs the window directly on its own instance. I then changed the taskbar to be always on top, and I made it detect resolution changes, and reposition itself afterwards.
I moved on to browseui, where I hid the brand box (the little white box at the top-right, where Windows shows a logo) since ReactOS has issues positioning it where it should be, I fixed the style of the window so it gets a proper default size provided by the system, and I changed the default view mode to Icons instead of List.
Giannis told me it should be relatively simple to implement parsing a path typed into the taskbar, and suggested how I could do it. I implemented his idea, but I couldn’t get it to properly act on pressing the enter key, so only the Go button works for now.
While doing all the testing, I had noticed some icons don’t appear on the taskbar. Together with other developers, we traced the issue to the function used to draw an icon while resizing it. Since explorer was not supposed to use this feature, I retraced back to it, and noticed that the icons were indeed the wrong size: I had swapped the big and small pointers in a function call. The actual issue was fixed later in trunk, and the sync from Saturday included it in the branch.
Having closed this issue, I moved on to start looking at other bugs and missing features, and decided to try getting the accelerators (the feature that makes hotkeys work) to work. I had to fix some parts of the code flow to allow the accelerator functions to run, and in the end, although I left them working, they don’t exactly work the way Windows manages them.
Later that day, I fixed the toolbar to load a second bitmap, used for the hover state of the buttons, and later included Robert Naumann’s toolbar bitmaps, which greatly improve the experience of using explorer-new.
Around the same time, I also started looking into the menubar, and how the CDefView and ShellBrowser interact. I decided to dump part of the menu-related code, which was recreating the whole menu every time the user clicked on the window. In its place, I put some temporary code that empties the menu, and refills it. This fixes multiple issues with the menubar in the shell browser window, which is now working more reliably, although many of the items are either not working, or fully missing.
Before I go, I don't really have anything special to show in the screenshots, so I will show you how the menu looked like, while there was a bug and the menu wasn't wiped before adding new items:
Until next week!