CORE-20124
Since `TB_HITTEST` returns negative numbers for ID for separator menu items [^1],
shell menu assumes mouse moved outside of the menu popup, highlighting the menu
item for currently open submenu.
To fix this behavior, we can detect separators in `CMenuFocusManager::ProcessMouseMove`
and negate the ID returned by `TB_HITTEST` to make it a positive number again,
so the shell menu wouldn't glitch.
[^1]: https://learn.microsoft.com/en-us/windows/win32/controls/tb-hittest
CORE-19833
wine commit id d551564f1b by Orin Varley <ovarley@codeweavers.com>
comctl32: Make CBS_NOINTEGRALHEIGHT only set minimum combobox height.
When the combobox height is to be set by the application (as the CBS_NOINTEGRALHEIGHT style is on),
and when a large size is specified but only a small number of items in the list, the height of the
combobox should be set by the number of items rather than the size specified to avoid empty lines.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57360
The font object `infoPtr->Font` is not owned by the `syslink` control, therefore freeing it would make the whole system use a different font. The fix provided by Wine removes the code that deletes this font object.
Imports Wine commit 480598680c
Fixes deleting system font object when destroying syslink. CORE-20127
- `CBindStatusCallback_UpdateProgress`:
* Rework the failsafe check to enable percentage to be at 100%.
* More thorough failsafe check, to avoid displaying 100% (or even 101%) where the actual and expected file sizes don't match.
- `case BINDSTATUS_ENDDOWNLOADDATA`: Do update the progress one last time to be at 100%, on download success.
CORE-20023
- Besides copying the event information, copy also its formatted data.
- Update translations with new IDS_COPY* strings.
- Eliminate all statically-sized temporary buffers, in favour of
carefully calculating the size, and allocating an adequately
sized buffer to hold the data to be copied.
- By default, the "title" and event info on the single-line fields,
are separated with TABs (to facilitate data import in spreadsheets).
Add a mode where, when the user presses the SHIFT key while clicking
on the "Copy" button, the separation is instead done with space
padding, to be able to prettify information display when copying
into text files instead.
* Check is FontGDI->OriginalWeight > FontGDI->RequestWeight and if so, then return original weight.
* Do not handle FontGDI->OriginalWeight as a boolean. Use 'FontGDI->OriginalWeight = FW_DONTCARE;'.
CORE-17011
Supporting soft keyboard will improve IME
usability.
JIRA issue: CORE-19268
- Define IMS_SOFTKBDONOFF constant as
0x13 in <immdev.h>.
- Implement
WM_IME_SYSTEM.IMS_SOFTKBDONOFF
message handling in ImeWnd_OnImeSystem.
Add missing status text for the "Multi-String Value" and
"Expandable String Value" in the "New" menu of the registry editor
for the English and German languages.
CORE-19886
Fixes erroneous addition of "Properties" item into its context menu.
- Addendum to 0241b5c4e9 and 5aaead3fdb. CORE-20152
- Also remove FIXME for CORE-19477 which is fixed now. CORE-20151
- Add accelerators to the IDD_EVENTDETAILS_CTRL controls, in _some_
translations but NOT all. Anyone is welcome to add the missing ones
in the translations to their own language!
- Fix "Data" static text tab-ordering. It should be just before the
IDC_EVENTDATAEDIT control, so that when pressing its accelerator,
focus is given to the edit control and NOT on the Bytes/Words buttons.
- Change IDC_WORDRADIO -> IDC_WORDSRADIO
CORE-20021, CORE-20023, CORE-20037
Complements commits 1786a68256 (#7757) and d1aa59982d (#7921)
- When starting eventvwr, the details buttons are disabled and the fields
are empty.
- During events enumeration, i.e. when refreshing the events list, the
Previous/Next navigation arrow buttons are disabled. They get re-enabled
once enumeration is done. No default event item is auto-selected at first.
- When the user selects an item, the details fields are filled (and the
Copy button is enabled; the Byte/Word mode buttons are enabled only if
the selected event has associated data).
- When changing the current filter via the TreeView, the events list is
refreshed, but also the event details fields are emptied and buttons
are disabled. The navigation arrows are re-enabled once enumeration is
finished, but the details fields remain empty until an event is selected.
- Pressing the Previous/Next buttons just after the events list refresh
(when no item is selected), automatically selects respectively the
last/the first event in the list.
The rationale for this behaviour is the following: in this situation,
no item is selected, so it is as if the "current" item is at the same
time, at the top and at the end (i.e. at the borders) of the list.
- Temporary HACK: When disabling the navigation arrows, this is usually
because the events list is being refreshed, so we loose access to the
event's data and we cannot use the bytes/words mode buttons anymore.
Supporting AppBars.
JIRA issue: CORE-7237
- Rewrite shell32!SHAppBarMessage
function.
- Introduce CAppBarManager class in
base/shell/explorer/appbar.cpp.
- Add support of ABM_NEW,
ABM_REMOVE, ABM_QUERYPOS,
and ABM_SETPOS messages for
AppBar in Tray Window.
The menu band window is about to go away, don't pass it to InvokeCommand because it's invalid as an owner window for any dialogs the callee might display.
This is a very small revert of PR #5227 to simplify the code and eliminate an MSVC warning.
It was pointed out by Timo Kreuzer as probably not doing what I intended and he was correct.
I added this code in PR #5227 to try and correct some return values from SetDIBitsToDevice.
After testing with this new PR, there was no difference in the regression tests for either
1) gdi32:bitmap or 2) gdi32:SetDIBitsToDevice after deleting the code here and the MSVC warning was fixed.
While PROFILE_LEVEL is defined as 27 on x86, this does not match the vector for the profiling interrupt, which is 0xFD (see https://community.osr.com/t/odd-ioapic-output/45216), implying IRQL 31.
Fixes boot with x86 APIC hal (CORE-20093)