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
Since my machine performance
became lower, we have to adjust
timeout to get correct pattern of
user32!TileWindows function.
JIRA issue: CORE-19674
Adjust timeout value in QuerySizeFix
function.
* improve some accels in consistency to en-US (we are free to change them in rapps to our hearts desire, because there is no MS rapps), in general:
where nothing speaks against use &B for ID_RESETDB, because &t looks poor with Tahoma
where nothing speaks against use &E for ID_REGREMOVE (because &R is often used for &Refresh and tends to collide)
where nothing speaks against use &R for ID_REFRESH
where nothing speaks against use &I for ID_INSTALL
where nothing speaks against use &U for ID_UNINSTALL
where nothing speaks against use &M for ID_MODIFY
* Fix some accelerator collisions:
* en-US.rc: fix an accelerator collision between "&Refresh" and "&Remove from Registry" in 2 menus
* et-EE.rc: Fix accel collision between "&Desinstalli" and ""Uuenda an&dmebaasi"
* hu-HU.rc: Fix an existing accel collision between "&Telepítés" and "Ada&tbázis frissítése", by using the english accelerator for the ID_INSTALL for best consistency
* pl-PL.rc: Fix an accel collision between "&Plik" and "&Programmi", stick with the english accels for uninstall and "remove from registry" for consistency.
* pt-BR.rc: Fix an accel collision between "A&tualizar" and "Update Da&tabase", stick with the english accel also for "R&emover do Registro" for consistency.
* pt-PT.rc: Fix an inconsistency between "&Instalar" and "I&nstalar" between 2 menus, which is not only unintuitive, but also will hurt string pooling. Other changes are for consistency to en-US.
* ru-RU.rc: Reduce inconsistency between the 2 ID_INSTALL in 2 different menus, this will help string-pooling. It will also avoid defining "&Установить" next to "&Удалить" in the same dlg, although that might not be necessarily a collision here, as I am not sure whether Install/Uninstall is even both displayed as activated at the same time. Still better like that.
* sv-SE.rc: Fix accel collision between "&Ta bort från Registret" and "Update Da&tabase", the rest is for improving consistency to en-US
* tr-TR.rc: Fix inconsistency in the accels between "Uyg&ulama" and "Uy&gulama", as that will hurt string-pooling. Use "Uygulama Veri &Tabanını Yenile\tCtrl+F5" for both menus instead. That's the english accel also.
* uk-UA.rc: Fix accel inconsistency between the 2 menus for ID_UNINSTALL. This will help with string-pooling.
* uk-UA.rc: Use "Вида&лити з реєстру" in both menus for ID_REGREMOVE, because that will help with string pooling and improves user experience
* ja-JP.rc: Fix accel collision between "レジストリから削除(&R)" ID_REGREMOVE and "更新(&R)" ID_REFRESH in both menus, also this syncs the accels to en-US. Also add an accel for ID_ABOUT, just because I am friendly.
* A bunch of accel-changes for the sole purpose of matching en-US more closely. Those are only really important for the 3 chinese languages which always aim to follow en-US accels to the point, and for zh-TW that stuff was unintentionally offsync also between their 2 ID_RESETDB in the different menus. For all other languages this is just a nice addition for consistency to en-US. But no absolute must-have.
* The small &t within "Da&tabase" renders poorly in Tahoma because it is a very small-in-x-letter. By using &b in majority of languages, same as ru-RU and pt-BR.rc did already, we can make that look much better. I checked that this will not cause any new collisions.
* fr-FR.rc: Hermes' feedback: A french extrawurst for ID_REGREMOVE doesn't hurt me at all.
* de-DE.rc: Avoid accels of the kind &Ä &Ö &Ü. They are not wrong strictly speaking, but they are suboptimal.
* Strip some comments from sk-SK
* Strip some whitespace from ja-JP
The ampersand (&) a.k.a. prefix of
DrawText are specially treated for
adding underscores.
We have to fix drawing on toolbar
button with BTNS_NOPREFIX style.
JIRA issue: CORE-11619
- Delete DT flags hack in taskswnd.cpp.
- Add TOOLBAR_GetButtonDTFlags
helper function.
- Extend TOOLBAR_DrawString
parameters for the button info.
- Fix DrawText flags for drawing
when the button has
BTNS_NOPREFIX style.
These settings are cached per-process (and invalidated by the global counter). This should reduce the number of registry reads performed by DefView and CFSFolder.
Reduce log spams that @julenuri reported.
JIRA issue: CORE-19268
- Use Imm32IsCrossThreadAccess
instead of IS_CROSS_THREAD_HIMC in
ImmSetCompositionWindow function.
- Reduce ERR logging in
NtUserQueryInputContext function.
Fix file association UX.
JIRA issue: CORE-19670
- Check the return value of
shell32!SHOpenWithDialog function.
- If changed, then update the UI display
and internal data.
- Use OAIF_FORCE_REGISTRATION flag.
Fix wrong MAKEINTRESOURCEW() macro usage cases in LoadCursorW() system-wide.
MSDN documentation for this function states we need to use MAKEINTRESOURCEW() macro only for internal application-defined cursors (loaded from the app instance specified by hInstance parameter), but not for system-defined cursors (those begin with IDC_* prefix), in case when hInstance is NULL.
So get rid from MAKEINTRESOURCEW() macro usage for all cases when hInstance parameter is NULL. And on the contrary, when hInstance is valid and points to the application instance, then use it for the resource identifier.
The idea is reminiscent of the SetupCommitFileQueue() function:
filesystem volume operations are "queued" and processed via a
"commit queue".
The commit queue uses a user-specified callback, that is used to
interact with the user whenever an operation (filesystem formatting,
checking) is started, ended, or fails, for example by displaying
appropriate UI screens and choices, etc.
If East Asian people were unable
to see the Latin characters, it
becomes a barrier to mutual
understanding.
FontLink will break that barrier.
JIRA issue: CORE-9616
JIRA issue: CORE-15480
- Modify font substitutes.
- Unify the lock variables.
- Add FONTLINK and
FONTLINK_CHAIN structures.
- Add FontLink_Create and
FontLink_Destroy functions.
- Add FontLink_Chain_Init,
FontLink_Chain_Free,
FontLink_Chain_LoadReg,
FontLink_Chain_Populate, and
FontLink_Chain_FindGlyph
functions.
- Implement FontLink.
- Add font file DroidSansFallback.ttf
for LiveCD.
Improve font file micross.ttf for better
compatibility.
Eliminate blurry font rendering.
JIRA issue: N/A
- Edit the font file with FontForge.
- Improve vector glyphs.
- Add 8px, 9px, 10px, 11px, 12px,
and 13px bitmap glyphs.
- Cover English alphabet, digits,
French, German, Cyrillic, and
Greek characters.
Version: 3
License: SIL Open Font License, Version 1.1
1. MountMgrMountedDeviceArrival():
Fix the conditions under which the device's online notifications
are skipped (SkipNotifications == TRUE) and fix the code comments.
Now, things make much more sense:
online notifications are skipped when the device is already offline
or is a legacy (NT <= 4) fault-tolerant volume (see point 2 below),
or is NOT mounted (doesn't have a drive letter).
Previously, we were sending an online notification if the device
was NOT mounted (why?!...) or if it was deemed as "valid" (wrongly
determined, see point 2 below).
2. QueryDeviceInformation():
* The usage of the "Valid" parameter didn't make much sense. Indeed,
when a partition/volume device is reported to the Mount Manager,
it's already valid. (Also, setting "Valid" to TRUE only in the case
of an MBR partition while ignoring GPT ones, and resetting it to
FALSE if IOCTL_STORAGE_GET_DEVICE_NUMBER returned success, pointed
to something incorrect was going on.)
Instead, what we are checking here is whether the device is a
legacy fault-tolerant volume: such volume can only reside on an
MBR disk, have the expected partition type, and does not really
reside on a specific storage device (hence the check for
IOCTL_STORAGE_GET_DEVICE_NUMBER returning failure).
* Take also the opportunity to SAL2-ify the function.
This "NoAutoMount" member was not consistently used. Sometimes it was
used correctly, some other times it was used as "not NoAutoMount" i.e.
"AutoMount" enabled.
Fix this consistently throughout the source, and fix also some comments.
- Sync translations of the same menu items in MENU_002 and MENU_003.
- Add missing accelerators.
- Also fix colliding accelerators/mnemonic keys where possible.
CORE-19243
- IShellExtInit cannot rely on a folder PIDL being present
- Use common QueryContextMenu function for both menu items
- Allow copy to the same folder
- Disable toolbar buttons when the selection is not valid
- Minor DefView cache enhancement and bugfixes
- Synchronize PARTITION_*** definitions between ntdddisk.h and winioctl.h
- Make IsFTPartition() macro definition more accurate with Win2003/Vista+
WDK definition. In particular, partition types that would conflict with
3rd-party ones are not present in this macro. (See comment in header
for more details.)
Simplify also its definition by factoring the common
((PartitionType) & PARTITION_NTFT)
piece.
- It can be recognized, in all DDK/WDK versions, that the first part of
the IsRecognizedPartition() macro definition is basically the definition
of IsFTPartition(). So, take this opportunity to simplify the definition
of IsRecognizedPartition() accordingly without losing any functionality.
Save/Restore the state of the ShellBrowser toolbar/addressbar/statusbar.
Windows shares the state of the Go button and the locked state between Explorer and Internet Explorer but the bar states are not shared.
Notes:
- Seems to fix CORE-17236.
- The stream layout does not match Windows so it uses a different name. The toolbar customize dialog needs to be fixed before it makes sense trying to save the toolbar state and the layout of other bands.
CORE-17236
See commits ebcf3cf38 and c9c6902f0 (PR #5837)
In addition, correctly set the type of extended partition being used,
depending on whether it is contained below or above the 1024-cylinder
boundary (tested on NT).