Commit graph

469 commits

Author SHA1 Message Date
Nguyen Trung Khanh ff50b0db2e
[NTUSER] Fix stack memory disclosure in NtUserBuildPropList (#3023)
Fix structure alignment cause to stack memory disclosure in NtUserBuildPropList.
2020-08-08 14:05:22 +09:00
Jose Carlos Jesus 62e52c7237
[USER32][NTUSER] Fix wrong return from LB_GETLISTBOXINFO (#2168)
And is now consistent with comctl32 and Wine too...
2020-07-04 15:11:10 +02:00
Nguyen Trung Khanh a279b1d2c6
[WIN32K:NTUSER] Zero allocated memory in IntCbAllocateMemory.
This avoids disclosing pool contents to user mode when not all members
of the respective structure are initialized or when there is padding.

In co_IntCallWindowProc, also zero the stack buffer since this can
be passed to user mode as well, and contains padding.
2020-06-24 09:15:27 +02:00
James Tabor f6d2b34ad0 [NtUser] Fix MSVC_x64 Build
Attempt to fix.
2020-06-18 11:55:13 -05:00
James Tabor 06e01c8968 [NtUser] Fix Crash in Win32k
Use strict thread and desktop verifying. See CORE-15092 and CORE-17133.
2020-06-18 11:06:31 -05:00
Serge Gautherie 95e5877027
[USER32] MDIClientWndProc_common(): Properly sync to old Wine (#2843)
No impact.

Missed part of
fb6304119a

Detected by Cppcheck: identicalInnerCondition.
Addendum to 303ece2421 (r72520).
2020-06-01 12:14:38 +03:00
Serge Gautherie 938df97b54
[WIN32K:NTUSER] NC_IconForWindow(): Remove redundant if() (#2842)
No impact.

Detected by Cppcheck: identicalInnerCondition.
Addendum to 98060c28c8 (r60622).
2020-05-26 20:25:39 +02:00
Julen Urizar Compains 546862babc
[TRANSLATION] Update Spanish, and add Basque translation (#2667)
Add/update translation for:
charmap_new, logoff, mspaint, notepad, usetup, welcome,
hotplug.cpl, sysdm.cpl, aclui.dll, comctl32.dll, comdlg32.dll,
hhctrl.ocx, kernel32.dll, msi.dll, oledlg.dll, shell32.dll,
tapiui.dll, themeui.dll, wininet.dll, winmm.dll, wldap32.dll,
winsrv.dll.
2020-05-17 18:46:36 +02:00
Katayama Hirofumi MZ 97ccef7761
[WIN32SS] Fix DrawTextExWorker extent for Spotify (#2759)
CORE-16747
2020-05-11 18:32:47 +09:00
Katayama Hirofumi MZ 413d722628
Revert "Revert "[COMCTL32][USER32] Fix radio button regression (#2146)" (#2753)" (#2758)
This reverts commit 66b0a48a75.
2020-05-09 15:32:15 +09:00
Katayama Hirofumi MZ 66b0a48a75
Revert "[COMCTL32][USER32] Fix radio button regression (#2146)" (#2753)
This reverts commit 2d4d3f5fce.

Reverts #2146. I think #2135 (e329e83) and #2146 (2d4d3f5) are my mistakes.
CORE-16552, CORE-16747
2020-05-09 11:30:11 +09:00
Jose Carlos Jesus ad591d0269 [USER32] Fixed issue with thumb scrolling on IDC_PICKICON_LIST 2020-04-30 18:58:20 +02:00
Jose Carlos Jesus d0a6727637 [USER32] Fixed scrolling by mouse wheel issue 2020-04-30 18:58:20 +02:00
Jose Carlos Jesus a4483d79da [USER32] Fixed scrolling issue in Change Icon dialog. CORE-16163 2020-04-30 18:58:20 +02:00
Mark Jansen dd8f30f879
[WIN32K] Allocate a buffer for a classname that is too long 2020-04-27 12:54:10 +02:00
Hermès Bélusca-Maïto 73064a7602
[WIN32SS] Fix formatting only. 2020-04-26 19:32:21 +02:00
Serge Gautherie c2dbc18660 [USER32] EDIT_WM_KillFocus(): Restore Wine code, #ifdef'ed out
Use '#ifdef __REACTOS__' for WINESYNC'ed code.

Partially reverts 71ab0b5d4c.
CORE-10266
2020-04-26 17:48:41 +02:00
Joachim Henze 87f6c82d85 [WIN32SS] CORE-16738 Comment an assert
It popped up 2-3 times for me during several
months of ros usage and I could continue without
noticing any side effects.
Giannis who once added it, was ok with commenting it.

His words:
This assertion isn't something fatal,
the worst thing that can happen from continuing on it would be
to make the thread get awake more times than it should.
2020-04-21 23:26:47 +02:00
James Tabor b9d6c5869d [Win32SS] Fix Send and Post Parameters for WM_DEVICECHANGE
For CORE-16492. See CORE-7447.

See 43197e6641
2020-04-19 18:40:59 -05:00
Victor Perevertkin 7e069ccdb2
[CMAKE] Replace custom functions to built-in ones
add_target_compile_definitions -> target_compile_definitions
add_target_compile_flags -> target_compile_options
add_target_include_directories -> target_include_directories
2020-04-16 15:59:38 +03:00
Hermès Bélusca-Maïto c05df38e86
[CONSRV] Move process-initialization-specific functions from handle.c into console.c .
- Move ConSrvInitHandlesTable() & rename it ConSrvInitProcessHandles()
  since its purpose is to initialize the standard input, output and
  error handles for a console process.

- Move ConSrvAllocateConsole(), ConSrvInheritConsole() and
  ConSrvRemoveConsole().
2020-04-14 01:19:48 +02:00
Hermès Bélusca-Maïto 2b64d45377
Fix build. 2020-04-13 18:13:42 +02:00
Hermès Bélusca-Maïto 83c238e490
[CONSRV] Convenience fixes.
- Simplify screen-buffers initialization.
- Get rid of this CONSOLE_SCREEN_BUFFER_VTBL virtual table.
- Move ConsoleInput to a proper header.
2020-04-13 16:22:53 +02:00
Hermès Bélusca-Maïto 9261110760
[CONSRV] Introduce a set of macros CON_API / CON_API_NOCONSOLE for wrapping around the repetitive prologue/epilogue of every console CSR API entrypoint.
All the per-API message structure unpacking and console validation done
with ConSrvGetConsole() is now automatically generated using the macros,
so that the actual implementation of each API can be done independently
of how the console object is obtained.

This could also allow reusing these API implementations with a different
mechanism for obtaining the console without changing anything in them.
2020-04-12 16:09:36 +02:00
James Tabor 7772f97241 [User32] Return Default Window Procedure for WM_DEVICECHANGE
See CORE-16492.
2020-04-11 17:58:38 -05:00
James Tabor 1e0bb66452 [User32] Implement Device Event Message handler
Need a way to send WM_DEVICECHANGE from the Service manager application.
Next step is to process it in the Client/Server Run-time Subsystem.
See CORE-16492.
2020-04-11 17:41:26 -05:00
Hermès Bélusca-Maïto 75d0346c54
[CONSRV] Finally fix CONSOLE vs. CONSRV_CONSOLE/WINSRV_CONSOLE stuff. CORE-9496
What remains to be cleared up are the ugly casts.
2020-04-11 16:27:09 +02:00
Hermès Bélusca-Maïto a3ea0a39f1
[WIN32SS] Get rid of "consrv_new".
Any new features/architectural changes to the console will either be
done in separate branches, or incrementally in master within the
existing console module.
2020-04-11 15:37:27 +02:00
Mas Ahmad Muhammad b8dd046ee4
[TRANSLATION] Add and update Indonesian translations (#2506)
- CMDUTILS: attrib, label (update translation)
- USETUP (add translation)
- HOTPLUG (add translation)
- CONSRV  (update translation)
- USERSRV (update translation)
- USER32  (update translation)
- ACLUI  (update translation)
- LICCPA  (update translation)
- SUBST  (update translation)
- REGSVR32  (update translation)
- REGEDIT-CLB  (update translation)
- ACPPAGE  (update translation)
- TIMEDATE  (update translation)
- SOLITAIRE  (update translation)
- FDEBUG  (update translation)
- SYSSETUP (update translation)
2020-04-09 18:49:45 +02:00
Julen Urizar Compains f7cab5a1d4
[TRANSLATION] Multiple minor fixes and addings. (#2516)
- Applications: eventvwr, fltmgr, servman.
- rosapps: arping, CTM, fontsub, fraginator, imagesoft, systeminfo, vcdcontroltool, vgafontedit.
- CPLs: desk.cpl.
- ReactOS Setup GUI app.
- Screensavers: butterflies, maze, Starfield.
- System: NTVDM, printing/monitors/localmon; the freeze dialog in user32, the error strings in usersrv.
2020-04-09 18:13:46 +02:00
James Tabor ee3ee2a65f [User32] Fix Dialog Hang
Patch by JIRA contributor I_Kill_Bugs. See CORE-5078.

Also: https://bugs.winehq.org/show_bug.cgi?id=48749
2020-04-08 14:49:38 -05:00
James Tabor acf135d16d [Win32SS] Fix Mask for Draw Frame States
Fixes drawing of caption bar buttons.

See CORE-8808.
2020-04-05 21:11:44 -05:00
James Tabor 568b6d0558 [NTUser] Fix Strings and Format to Hooks
Allocate heap instead of data segment to be used for callbacks on user side.
Move and correct initial hook call out setup. Use it in more than one hook call.

This fixes issues with strings out of alignment and use of kernel pointers.

See CORE-13907 and CORE-16769. KsStudio still needs retested.

Small wow update.
2020-04-03 03:58:29 -05:00
jimtabor 915a5764a9 [Win32SS] Form Sanity to Hook Callbacks
Fix WH_CALLWNDPROC/RET data to user hook calls. See CORE-13019 and CORE-13907.
2020-03-28 14:18:14 -05:00
jimtabor d8add40e89 [User32] Fix null return.
See CORE-16769.
2020-03-28 14:03:15 -05:00
Timo Kreuzer 4860aa645c [WINSRV] Use DIB section for frame buffer bitmap 2020-03-22 12:05:05 +01:00
Katayama Hirofumi MZ 8c5308b5e8
[USER32] Relax conditions for creating MDI windows (#2454)
The creation conditions of MDI window was too strict. CORE-15633
2020-03-20 07:38:33 +09:00
Joachim Henze 8bb9434d3e [WIN32SS] Fix regression CORE-16721
"Scrolling by pressing the scrollbar arrows does not draw the arrows as pressed"
Fixed by a patch of JIRA-user 'I_kill_bugs'. Thank you very much!

The regression was introduced by 0.4.11-dev-586-g
929a2c6637
(which itself aimed to fix CORE-13986,
but not CORE-13918 as erroneously stated in commit comment)

I intend to port this back into 0.4.13-RC later.
2020-03-12 22:55:04 +01:00
Hermès Bélusca-Maïto b596a2cc31
[USER32] Fix crash in Edit control. CORE-16727
The #ifdef prevents setting the variable, es, to NULL, which lead to an illegal access.
This didn't match dll/comctl32/edit.c .

Patch by 'I_Kill_Bugs' contributor.
2020-03-06 20:02:03 +01:00
JoachimHenze 848d7ec633
[NTUSER] Fix ShellHook notifications when creating/activating windows (#2396) 2020-03-05 15:39:23 +01:00
Joachim Henze 00adb1a3f9 [WIN32SS] Improve Drawing Scrollbars
A very nice patch of JIRA user "I_kill_Bugs". Many many Thanks!

It addresses:
- CORE-14755 fixed, flashing scrollbar triangles (we know 131 affected apps just from rapps!)
- CORE-13931 fixed, FamiTracker invisible about-dlg
- CORE-14685 improves a bit, but is not entirely fixed
- CORE-11561 improves a bit, but is not entirely fixed
- The patch avoids unnecessary redraws, speeds up GUI interaction and NSIS install times

Jim Tabor had no complains about it, I just did some white-space-tweaks on EOL and indentation.

FTR A testbot run (not on master but on 0.4.13-RC-48-g818e5bc)
https://reactos.org/testman/compare.php?ids=71645,71666 VBox LGTM
https://reactos.org/testman/compare.php?ids=71646,71667 KVM LGTM

I felt tempted to port back, but decided to play safe and commit to master just.
2020-03-04 02:12:06 +01:00
Hermès Bélusca-Maïto e8df1a38bd
[CONSRV] Fix a corruption of the CONSRV memory when converting read input events back to ANSI.
This fixes a 6-year old copy-paste bug introduced by commit b47d51c6 (r64004).
2020-03-02 01:08:41 +01:00
Hermès Bélusca-Maïto 7babd93107
[CONSRV] Some code simplification and tidy up. 2020-03-02 01:08:41 +01:00
Hermès Bélusca-Maïto 31c13e89fe
[CONSRV] Use NtClearEvent() and NtClose() instead of the Win32 functions. 2020-03-02 01:08:40 +01:00
Hermès Bélusca-Maïto e624be1eb2
[CONSRV] Tidy up lineinput.c by moving the History* helper prototypes to a suitable header file. 2020-03-02 01:08:39 +01:00
Hermès Bélusca-Maïto 19596768cb
[CONSRV] Support history resizing from console settings and from SetConsoleHistoryInfo() server implementation.
In addition, honour the maximum number of history buffers allowed when
creating new ones.

Some implementation information has been obtained from
https://github.com/microsoft/terminal
(under MIT License).
2020-03-02 01:08:35 +01:00
Hermès Bélusca-Maïto 1d3fb3e370
[CONSRV] Fix setting the default screenbuffer and console view sizes when creating a new screenbuffer.
For more information, see:
https://docs.microsoft.com/en-us/windows/console/createconsolescreenbuffer#remarks
2020-02-23 22:43:02 +01:00
Joachim Henze 820dbfccd0 [NTUSER] Fix regression CORE-11828
Fixes symptom "mouse pointer vanishes when closing
applications via x in title-bar"

The bug in WIN32SS was unhidden by SVN r65496 == git
5c1a8109c8
, when we introduced explorer_new. The old explorer
had a workaround built within.

Many thanks to patches author James Tabor.
I intend to backport into 0.4.13RC as well.
2020-02-23 13:56:05 +01:00
Hermès Bélusca-Maïto 90d795b0bf
[CONSRV] Keep a count of input events in the console queue + code simplifications.
- Update the documentation of members of CONSOLE_INPUT_BUFFER.
- Simplify ConDrvGetConsoleNumberOfInputEvents().
- Simplify ConDrvFlushConsoleInputBuffer().
- Use also GetConsoleInputBufferMode() more often.
2020-02-22 23:27:42 +01:00
Hermès Bélusca-Maïto 570eba2a52
[KERNEL32][CONSRV] Use more often the internal ConioRectHeight/Width() and ConioIsRectEmpty() macros. 2020-02-22 21:15:58 +01:00
Hermès Bélusca-Maïto 05053b6f18
[CONSRV] ConDrvScrollConsoleScreenBuffer() fixes. (#2278)
- Reimplement ConDrvScrollConsoleScreenBuffer() with separate copy and
  fill helper functions and calculate rectangles in such a way as to
  never use X-Y coordinates pointing outside of the screen buffer.

- Add X-Y coordinates assertions in ConioCoordToPointer().
2020-02-22 19:50:18 +01:00
Hermès Bélusca-Maïto d46e054368
[CONSRV] Miscellaneous console fixes for CJK support and screenbuffer iteration. (#2278)
+ popup.c!DrawBox(): Factor out setting the attribute value.
2020-02-22 19:50:17 +01:00
Joachim Henze feb7df42b4 [WIN32SS] Fix a typo in dbg print 2020-02-22 19:40:52 +01:00
Katayama Hirofumi MZ 9199c90328
[WIN32SS][NTUSER] Fix ScrollWindowEx SW_SCROLLCHILDREN (#2327)
Based on the patch of I_Kill_Bugs of JIRA user. CORE-16687, CORE-12114
2020-02-11 20:59:14 +09:00
Hermès Bélusca-Maïto 53061a4b69
[CONSRV] Additions for the GUI frontend.
- Fix the text-copy code to handle fullwidth characters.
- Move the caret painting code to its own function.
2020-02-09 00:39:16 +01:00
Hermès Bélusca-Maïto 0d500b642b
[CONSRV] Simplify parts of code in the line-input module. 2020-02-09 00:38:32 +01:00
Hermès Bélusca-Maïto fe3d655bc0
[CONSRV] Disable the old code for scrolling via keyboard shortcuts as it is buggy. To be fixed later... 2020-02-09 00:38:31 +01:00
Hermès Bélusca-Maïto 421150d5c3
[CONSRV] Minor code cleanup. 2020-02-09 00:37:44 +01:00
Hermès Bélusca-Maïto d9cbe7dc64
[CONSRV] Fix the definitions of the Console[Input|Output]UnicodeToAnsiChar() and Console[Input|Output]AnsiToUnicodeChar() macros. 2020-02-09 00:37:44 +01:00
Hermès Bélusca-Maïto 07f8b9fe09
[CONSRV] Rephrase/complete some comments. 2020-02-09 00:37:43 +01:00
Aaron Dewes e5813c4644
Update german translation (#2291)
* Update German translations

* Update translation again

* More translations

* Some fixes in the german translation

* Some more fixes

* Little translation tweak

* Updates to 2nd review

* Little update

* Add back keyboard accel for IDS_OPENFILELOCATION.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2020-02-08 12:55:53 +01:00
Hermès Bélusca-Maïto b97977db9c
[USER32] Update the translations of IDS_ASK_TERMINATE. 2020-02-07 19:07:22 +01:00
Assis Duarte 567b2d79fc
[USER32] Update Brazilian-Portuguese translation (#2283) 2020-02-07 18:59:32 +01:00
Mark Jansen bbc97e964f
[WIN32SS] Demote a trace message 2020-01-29 22:58:43 +01:00
Hervé Poussineau 99f979d6e9 [WIN32SS] Replace inline by FORCEINLINE, as in other files of the module 2020-01-22 20:57:42 +01:00
Katayama Hirofumi MZ 8dc90a4c7e [WIN32SS][USERSRV] Add CSR API_NUMBER comments 2020-01-20 08:06:40 +09:00
Katayama Hirofumi MZ b41299470b
[WIN32SS][WINSRV] Fullwidth character handling Part 2 (#2240)
Follow-up of #2231. Also fix FillConsoleOutputAttribute, WriteConsoleOutputCharacterW and WriteConsoleOutputAttribute functions.
CORE-12451
2020-01-12 22:04:57 +09:00
Katayama Hirofumi MZ fa42794a3a
[WIN32SS][WINSRV] Fullwidth character handling for Asian console (#2231)
Far-East Asian language (Chinese, Japanese and Korean; CJK) needs special handling in console.
Especially a fullwidth character (mk_wcwidth_cjk(ch) == 2) needs a double width space. A fullwidth character on the console window is treated as a pair of a leading byte and a trailing byte (COMMON_LVB_LEADING_BYTE and COMMON_LVB_TRAILING_BYTE). CORE-12451
2020-01-07 15:26:58 +09:00
Katayama Hirofumi MZ f84963b0d5
[WIN32SS][WINSRV] Add CSR API_NUMBER info comments (#2192)
Add comments to improve human-readability and referencing of CSR API. CORE-12451
2019-12-31 09:21:42 +09:00
Thomas Faber ef103d7d69
[WIN32K:NTUSER] Avoid user memory access outside of SEH in NtUserEnumDisplaySettings. 2019-12-29 20:08:51 +01:00
Thomas Faber 3d81dc48a7
[WIN32K:NTUSER] Correctly capture UNICODE_STRING in NtUserEnumDisplaySettings. 2019-12-29 20:08:44 +01:00
Thomas Faber be92be2e37
[WIN32K:NTUSER] Add missing probe in NtUserGetClassName. 2019-12-29 20:08:30 +01:00
Hermès Bélusca-Maïto a8e7defb01
[WIN32SS:USER] Some minimal work and fixes concerning message queues timeouts.
CORE-15147

- Rename CLIENTTHREADINFO::tickLastMsgChecked into timeLastRead as
  documented in https://reactos.org/wiki/Techwiki:Win32k/CLIENTTHREADINFO .
  This is the last time the message queue was read.

- This is the structure member one must compare against the current tick
  count timestamp in order to heuristically determine whether a message
  queue thread is hung!! Fix MsqIsHung() in accordance, add extra debug
  logging in order to help us determining which of our code present
  regular GUI hangs, and add as well an extra "TimeOut" parameter so as
  not to hardcode a fixed value within that function but instead
  allowing its caller to specify possible different values.

- THREADINFO::timeLast is on the contrary the last message time stamp,
  and will definitively differ from CLIENTTHREADINFO::timeLastRead .
  It should only be used for information purposes!

- Accordingly, in NtUserGetThreadState()::THREADSTATE_UPTIMELASTREAD
  and in InitThreadCallback(), only (re-)initialize the timeLastRead
  member of the CLIENTTHREADINFO structure of the THREADINFO of interest.

- In co_IntPeekMessage(), update more often the timeLastRead timestamp
  whenever the current message queue has been read (but NOT timeLast!!
  That one will be updated ONLY WHEN a message is found!).

- In co_IntSendMessageTimeoutSingle() first check whether the window to
  which we send the message is being destroyed, before checking for
  queue hangs etc. Collapse the logic checks for queue hang and increase
  the hang timeout check to 4 times MSQ_HUNG (== 4 * 5 seconds) and
  display a debug trace.
2019-12-29 16:14:15 +01:00
Thomas Faber 975e117780
[WIN32K:NTUSER] Add missing parameter probe in NtUserGetClassInfo. 2019-12-29 15:22:03 +01:00
Katayama Hirofumi MZ 22f883278b
[NTUSER] Fix caret display mistake (#2180)
Take care of caret visibility. co_IntSetCaretPos function wrongly drawn the caret upon invisible caret. @Doug-Lyons did test this patch. CORE-15661
2019-12-26 19:08:01 +09:00
Katayama Hirofumi MZ dfa3065e19
[CONSRV] Preparation for Asian console support (#2171)
Make preparation for console support of Chinese, Japanese and Korean (CJK) codepages. CORE-12451
- Add consrv/frontends/wcwidth.c.
- Add GuiPaintTextModeBufferCJK function.
2019-12-25 23:35:01 +09:00
Katayama Hirofumi MZ 9ce12f0b4c
[BOOTDATA][NTUSER] Fix some system parameters (#2162)
CORE-16547
- Add IconTitleWrap registry value.
- Modify gspv.dwMenuShowDelay initial value.
- Initialize gspv.bFastTaskSwitch as TRUE.
2019-12-25 18:12:43 +09:00
Hermès Bélusca-Maïto 18a51dc7f5
[VIDEOPRT][WIN32K] Use a Windows-compatible way of communicating the 'BaseVideo' state from VIDEOPRT to WIN32K.
This is done by creating the volatile key
\Registry\Machine\System\CurrentControlSet\Control\GraphicsDrivers\BaseVideo .

Also cache during first initialization of VIDEOPRT the state of the boot
options BASEVIDEO and NOVESA, so that they can be readily retrieved later
(for example, in VideoPortIsNoVesa()).
2019-12-24 13:51:20 +01:00
Katayama Hirofumi MZ eba2d5d30a
[BOOTDATA][NTUSER] Fix GetSystemMetrics values (#2137)
Fix user32!GetSystemMetrics values. CORE-16547
SM_MENUDROPALIGNMENT and SM_CXSMSIZE
2019-12-21 22:38:49 +09:00
Katayama Hirofumi MZ 2af9e7dfac
[USER32] Add ICO_ExtractIconExW RetPtr NULL check (#2149)
CORE-16557
2019-12-16 20:37:23 +09:00
Hermès Bélusca-Maïto bfd8a84865
[BLUE] Improve initialization and interfacing with INBV.
CORE-15901

This fixes display reset transition when an external module acquired
INBV ownership and then released it, similarly to what was done in
commit 0ad65796 for VIDEOPRT.

For this a backup screenbuffer is used to store the contents of the
screen just before an INBV screen acquire transition, and these contents
are restored when it is detected that INBV ownership has been released.
Also, the active text font associated with the active console code-page
is restored, as well as the cursor state and shape.

In addition, any user of BLUE.SYS is now required to explicitly issue
a new IOCTL_CONSOLE_RESET_SCREEN to either enable or disable the screen.
This allows avoiding nasty unwanted screen mode switches when a handle
to the \Device\BlueScreen device is opened but no screen mode switch was
actually wanted - This "fixes" this annoyance on ReactOS and Windows,
when these are running witha VGA-compatible video driver and one wants
to look at properties of the \Device\BlueScreen device using
Sysinternals' WinObj.

Following this, we don't need to check anymore for explicit INBV
ownership by issuing calls to InbvCheckDisplayOwnership(), but instead
we check whether the screen has beeen manually enabled using the
aforementioned IOCTL. This partly supersedes commit 8b553a4b, and allows
fixing the second bug, namely that if we start ReactOS without the
/NOGUIBOOT option (and thus, INBV is active during boot), USETUP would
not show up anything because BLUE.SYS wouldn't display anything on screen.
See CORE-15901.

[USETUP][CONSRV] Call IOCTL_CONSOLE_RESET_SCREEN to tell BlueScreen device to enable the screen.
2019-12-15 03:37:52 +01:00
Doug Lyons c917c442ad [CONSRV] Fix for console windows shrinking on Minimize and Restore (#2014)
CORE-14200
2019-12-14 16:51:49 +01:00
Katayama Hirofumi MZ 2d4d3f5fce
[COMCTL32][USER32] Fix radio button regression (#2146)
PR #2135 (e329e83) caused radiobutton regression. This PR will fix it.
- Clear DT_BOTTOM | DT_VCENTER flags upon calculating the button text height.
CORE-16552
2019-12-10 11:07:56 +09:00
jimtabor d447b41198 Merge branch 'master' of https://github.com/reactos/reactos 2019-12-09 11:19:18 -06:00
jimtabor 5214a38fd0 [Win32SS] Fix Opaque Text Fade while in Desktop Startup
See CORE-16498.
2019-12-09 11:18:32 -06:00
Katayama Hirofumi MZ e329e83857
[WIN32SS][COMCTL32] Improve button text position (#2135)
Improve DrawText function especially DT_CALCRECT and DT_VCENTER. CORE-15478
2019-12-09 21:16:28 +09:00
Katayama Hirofumi MZ 1793dcc864
[NTUSER] Improve loading settings (SystemParamtersInfo) (#2139)
Fix SPI_GETSCREENSAVETIMEOUT, SPI_GETKEYBOARDSPEED and SPI_GETKEYBOARDDELAY values. CORE-16547
2019-12-09 10:50:04 +09:00
Joachim Henze bd149e8a11 [CONSRV] Speed up console txt output CORE-16187
By demoting good-path DPRINT1 to DPRINT.
HBelusca agreed.

The more important commit to solve CORE-16187 has
been done beforehand in 0.4.14-dev-553-g
1dcdb4c2d0
2019-12-07 18:35:06 +01:00
Katayama Hirofumi MZ 007f32a223
[WIN32SS][WINSRV] Do CJK font choose workaround (#2134)
Don't choose Asian charset font if there is no preferred font for CJK. CORE-12451
2019-12-06 22:18:51 +09:00
Katayama Hirofumi MZ 1dcdb4c2d0
[WIN32SS][WINSRV] Optimize console background drawing (#2132)
Console needs speed. This PR will optimize drawing of console.
- Set NULL to the background brush.
- Skip WM_ERASEBKGND.
2019-12-05 20:19:00 +09:00
Hermès Bélusca-Maïto 0ad65796bb
[WIN32K][VIDEOPRT] Improve initialization and interfacing with INBV.
CORE-12149

VIDEOPRT:
=========

Improve interfacing with INBV, so as to detect when an external module
acquired INBV display ownership, and whether ownership is being released
later on. (This does NOT rely on hooking!)

For this purpose we improve the IntVideoPortResetDisplayParameters(Ex)
callback that gets registered with an InbvNotifyDisplayOwnershipLost()
call during initialization, and we add a monitoring thread.

The callback is called whenever an external module calls
InbvAcquireDisplayOwnership(), for example the bugcheck code or the KDBG
debugger in SCREEN mode. When this happens, a flag that tells the
monitoring thread to start monitoring INBV is set (ReactOS-specific),
and the display adapters get reset with HwResetHw() (as done on Windows).

Due to the fact that this INBV callback can be called at *ANY* IRQL, we
cannot use dispatcher synchronization mechanisms such as events to tell
the INBV monitoring thread to start its operations, so we need to rely
instead on a flag to be set. And, since INBV doesn't provide with any
proper callback/notification system either, we need to actively monitor
its state by pooling. To reduce the load on the system the monitoring
thread performs 1-second waits between each check for the flag set by
the INBV callback, and during checking the INBV ownership status.

When the INBV ownership is detected to be released by an external module,
the INBV callback is re-registered (this is *MANDATORY* since the
external module has called InbvNotifyDisplayOwnershipLost() with a
different callback parameter!), and then we callout to Win32k for
re-enabling the display.

This has the virtue of correctly resetting the display once the KDBG
debugger in SCREEN mode is being exited, and fixes CORE-12149 .

The following additional fixes were needed:

VIDEOPRT & WIN32K:
==================

Remove the registration with INBV that was previously done in a ReactOS-
specific hacked IRP_MJ_WRITE call; it is now done correctly during the
video device opening done by EngpRegisterGraphicsDevice() in the VIDEOPRT's
IRP_MJ_CREATE handler, as done on Windows.

WIN32K:
=======

- Stub the VideoPortCallout() support, for VIDEOPRT -> WIN32 callbacks.
  This function gets registered with VIDEOPRT through an
  IOCTL_VIDEO_INIT_WIN32K_CALLBACKS call in EngpRegisterGraphicsDevice().

- Only partially implement the 'VideoFindAdapterCallout' case, that just
  re-enables the primary display by refreshing it (using the new function
  UserRefreshDisplay()).

VIDEOPRT:
=========

- PVIDEO_WIN32K_CALLOUT is an NTAPI (stdcall) callback.

- In the IntVideoPortResetDisplayParameters(Ex) callback, reset all the
  "resettable" adapters registered in the HwResetAdaptersList list.
  We thus get rid of the global ResetDisplayParametersDeviceExtension.

- Make the IntVideoPortResetDisplayParameters(Ex) callback slightly more
  robust (using SEH) against potential HwResetListEntry list corruption
  or invalid DriverExtension->InitializationData.HwResetHw() that would
  otherwise trigger a BSOD, and this would be disastrous since that
  callback is precisely called when INBV is acquired, typically when the
  BSOD code initializes the display for displaying its information...

Extras:
- Validate the IrpStack->MajorFunction in IntVideoPortDispatchDeviceControl()
  and implement IRP_MJ_SHUTDOWN handling. Stub out the other IOCTLs that
  are handled by VIDEOPRT only (and not by the miniports).

- VIDEOPRT doesn't require IRP_MJ_INTERNAL_DEVICE_CONTROL (unused).

- Implement IOCTL_VIDEO_PREPARE_FOR_EARECOVERY that just resets the
  display to standard VGA 80x25 text mode.
2019-12-02 02:33:20 +01:00
Hermès Bélusca-Maïto 0ad90f83d3
[WIN32K] Code formatting. 2019-11-25 00:41:49 +01:00
Katayama Hirofumi MZ 141cf04239
[NTUSER] Fix condition of HSHELL_WINDOWCREATED (#2046)
CORE-15655
If the owner window doesn't exist or is invisible or has WS_EX_TOOLWINDOW style, HSHELL_WINDOWCREATED regards the window a non-owned window. You can watch the shell hook information by using CORE-15655 ShellHookChecker.zip.
2019-11-19 17:54:23 +09:00
Katayama Hirofumi MZ fa264251a7 [USER32] Check whether the window is minimized upon SM_REPOSITION CORE-16490 2019-11-19 10:32:06 +09:00
Katayma Hirofumi MZ f981a68ee0 [USER32] Improve DM_REPOSITION CORE-16490 2019-11-16 12:52:40 +09:00
Katayma Hirofumi MZ 657887adf4 [USER32] Fix DM_REPOSITION (rc.bottom minus 4) 2019-11-16 11:21:16 +09:00
Katayama Hirofumi MZ 8249d2a3fa
[USER32] Implement DM_REPOSITION message (#2020)
DM_REPOSITION is dialog message that can reposition the dialog to the workarea when the dialog is partially/entirely in outside of the workarea. CORE-16490
2019-11-16 09:51:16 +09:00
Katayama Hirofumi MZ 462b1b7444
[NTUSER] Support MK_SHIFT/MK_CONTROL of mouse messages (#2038)
Upon mouse message generation, The states of Shift key and/or Ctrl key must be used. If Shift key is pressed, it enables MK_SHIFT flag of the mouse message. If Ctrl key is pressed, it enables MK_CONTROL flag of the mouse message. CORE-16279
2019-11-16 09:49:49 +09:00
Joachim Henze 19fbdda95c [WIN32SS] Prevent disabled scrollbars being clickable CORE-15557
Thanks to JIRA user 'I_Kill_Bugs.

VBox: https://reactos.org/testman/compare.php?ids=69671,69747
KVM: https://reactos.org/testman/compare.php?ids=69672,69748
2019-11-09 15:50:50 +01:00
James Tabor 34b4b96461 [User32] Properly handle WM_CTLCOLOR* messages.
Patch by Fabian Maurer : Properly handle WM_CTLCOLOR* messages.

See CORE-15560 and
fbec0ba9ee
.

Added support for module versions.
2019-11-06 21:43:00 -06:00
Hermès Bélusca-Maïto 3b2f158593
[NTOS][CLASS2][FFS][WIN32SS] Fix some pool tags so that they correctly appear in pool dump lists.
Reminder: in the code they are defined using reverse byte order
(Windows/ReactOS are little-endian OSes).
2019-11-01 19:12:27 +01:00
Katayama Hirofumi MZ b3033b81a4
[WIN32SS][NTUSER][USER32] Fix menu checkmarks (#2009)
CORE-16470
The checkmarks of menu were black boxes. This PR will fix drawing.
- Don't change background mode.
2019-11-01 09:52:18 +09:00
Joachim Henze 9e14a762d5 [WIN32SS] Fix last user visible parts of regression CORE-10855
When Themesvc was disabled, some Window titlebar
frames were drawn too thin until the window
was actively resized in y by the user.

That and similar symptoms started to show up after SVN r68904 ==
6dfa71c487

Many thanks to patches author Doug Lyons.

We leave the ticket unresolved still due to explicit request of
James Tabor, who wants to continue working in that context.

I will merge that back into 0.4.13RCs as well.
2019-10-25 00:42:01 +02:00
Mark Jansen e1984d03b4
[WIN32K:menu] Use signed types for negative values...
CORE-16306
2019-10-12 16:19:58 +02:00
Joachim Henze 96ef605f4b [WIN32SS] Fix regression CORE-16393
Symptom "cmd did not hide the taskbar anymore when switching to fullscreen"

It regressed by SVN r75407 == git
09ab5ea7ed

VBox LGTM https://reactos.org/testman/compare.php?ids=69295,69297
 KVM LGTM https://reactos.org/testman/compare.php?ids=69296,69298

Many thanks to the patches author James Tabor.
2019-10-11 23:21:39 +02:00
James Tabor 1f78e8ec47 [Win32SS] Support Module Versioning.
Set the appropriate flags supporting versions of software modules.
Fix arguments for getting desktop DC.
2019-09-24 17:40:18 -05:00
James Tabor c57d4d7b9e [User32|Tests] Sync Port Wine Combo Controls.
Need to cross check these changes with WINE ComCtl32 before you PANIC
HACK!!!!

Not in order:
Piotr Caban : Remove unneeded RECT parameter from CBPaintText helper.
              Don't invalidate ComboBox on CB_SETCURSEL message.
Don't invalidate ComboBox on LBN_SELCHANGE and
LBN_SELCANCEL.
              Add more CB_SETCURSEL tests on ComboBox.
              Redraw combo text field even if it's empty.
Let ComboBox edit control handle the redraw even if
CBF_NOREDRAW is set.
Don't do the painting if combobox is not visible in
CBPaintText.

Dmitry Timoshkov : Don't force a combobox repaint on WM_SIZE.

This breaks z-order based painting and causes side effects
for
applications that during the WM_PAINT processing reference
internal
             data associated with a not fully initialized window.
Ref :
2d9e3236ea

Fabian Maurer : Set listbox popup height correctly and add tests.

                Properly set dropdown height.

             Now that user32 and comctl32 combo are separated,
             this won't lead to a regression anymore
             Ref :
3d0be0bad8
             Info by Sebastian Lackner Ref:
f0fc034997

Nikolay Sivov : Remove some misleading TODOs and confusing comments.
2019-09-21 08:47:56 -05:00
Katayama Hirofumi MZ 81e27f0be7
[WIN32SS][NTUSER] Fix hit test position of popup menu
The submenu of desktop popup menu was erroneously shown at first right click.
- Fix the hit test position that was modified by window style change.
CORE-16382
2019-09-21 18:21:17 +09:00
Stanislav Motylkov b16ca9cd65 [WIN32SS][NTUSER] Fix debug print in winpos.c (#1893) 2019-09-12 15:53:29 +02:00
Jose Carlos Jesus d5dca45e51 [WIN32SS][USER][EXPLORER] Add/Update portuguese translation (#1882) 2019-08-26 21:01:41 +02:00
Joachim Henze 4193b8d8ac [WIN32SS] WindowSnap must not affect the taskbar
This fixes regression CORE-16289 where we could not longer
move the taskbar at a different than default location,
as WindowSnap would interfere.

Many Thanks to the patches author Doug Lyons.

Eventually the heuristic that we use here to identify the
taskbar via used window-styles could be improved later.
Theoretically possible that it bails out on some other windows.

The regression was introduced by 0.4.12-dev-373-g
7e396787ed
2019-08-20 12:07:56 +02:00
Timo Kreuzer 21c9f2a488 [WIN32K] InitVideo() should return NTSTATUS, so return STATUS_SUCCESS instead of 1 2019-08-15 18:04:57 +02:00
Katayama Hirofumi MZ b863ecc33f
[WIN32SS][NTUSER] Fix menu drawing after style change (#1821)
There were menu drawing regression after 03adec8141.
This PR will fix it. CORE-16244

- We don't have to draw the frame manually because of WS_EX_DLGMODALFRAME extended style.
- We don't need the margins (MENU_TOP_MARGIN and MENU_BOTTOM_MARGIN) in the client area any more because the client area doesn't contain the frame width.
- Use GetSystemMetrics(SM_CXDLGFRAME) and GetSystemMetrics(SM_CYDLGFRAME) for frame width.
2019-08-11 07:46:14 +09:00
Katayama Hirofumi MZ 03adec8141 [WIN32SS][NTUSER] Fix popup menu freezing 2019-08-10 15:40:32 +09:00
Katayama Hirofumi MZ 0749a868fc
[WIN32SS][NTUSER] Fix popup menu window styles (#1814)
Fix the class style, the window style and the extended style of the popup menu window. CORE-16244
2019-08-10 08:33:25 +09:00
Mark Jansen 6948764b21
[WIN32SS] Ensure the last menu item is not accidentally selected when a system menu is off-screen
CORE-16297
2019-08-08 19:51:28 +02:00
Mark Jansen 84e263ceb2
[WIN32SS] Do not propagate TPM_VERTICAL to sub-menus
With this change we can remove the workaround from the off-screen
menus dropping below their parent.
Many thanks to Joachim for his help debugging / testing this.

CORE-16297
2019-08-08 19:51:28 +02:00
Mark Jansen 1c8cdaa470
[WIN32SS] Fix tray popup menus stuck to the bottom of the screen
Dedicated to Joachim
CORE-16297
2019-08-08 19:51:28 +02:00
Mark Jansen 33f77af348
[WIN32SS] Fix off-screen menu's dropping below their parent 2019-08-08 19:51:28 +02:00
Mark Jansen 3cbdcc6363
[WIN32SS] For application menu's, only exclude the menu item,
not the entire window.
Because the application menu is part of the application window,
this would lead to bad results.
2019-08-08 19:51:15 +02:00
Katayama Hirofumi MZ 65e4efd475
[WIN32SS][NTUSER] Fix MENU_DrawScrollArrows (#1753)
Fix drawing the menu scrolling arrows. CORE-13211
2019-08-08 13:56:23 +09:00
Mark Jansen b5c6af459c
[WIN32SS] Exclude the entire menu from overlapping, not just the menu item
CORE-15863
2019-08-06 21:17:47 +02:00
Mark Jansen 7c45a646e9
[WIN32SS] Iteratively mutate menu flags until we find a 'best fit'
CORE-15863
2019-08-06 21:17:47 +02:00
Mark Jansen a59df3858c
[WIN32SS] Rewrite MENU_ShowPopup to take the exclude rectangle into account
CORE-15863
2019-08-06 21:17:35 +02:00
Katayama Hirofumi MZ 4414f45cc0
[WIN32SS][NTUSER] Fix default menu item font weight (#1804)
CORE-16294
We had added "Arial Black" font, so a request for heavy weight font will be realized as it is. This PR will fix font weight (FW_*) calculation of default menu items.
2019-08-05 23:16:01 +09:00
Katayama Hirofumi MZ 6642dbc470
[WIN32SS][NTGDI][NTUSER] Make gusLanguageID USHORT (#1776)
Every language ID is an unsigned integer.

- Make gusLanguageID unsigned.
- Make the return value type of UserGetLanguageID unsigned.
2019-07-31 22:24:01 +09:00
Hermès Bélusca-Maïto 8831328081 [USER32] Fix build after 51d031cc ; addendum to f21871fb (r69249) and cf98f01e (r72650). CORE-10194 2019-07-29 01:38:43 +02:00
Hermès Bélusca-Maïto 51d031cc5d
[USER32] Use the correct __REACTOS__ define. 2019-07-29 00:33:20 +02:00
Timo Kreuzer 08c6d21e1f [REACTOS] Fix warning C4146: unary minus operator applied to unsigned type, result still unsigned 2019-07-27 11:21:28 +02:00
Katayama Hirofumi MZ 1e91a1690d
[USER32][NTUSER] Fix menu arrow drawing (of DrawFrameControl) (#1752)
CORE-13211
user32!DrawFrameControl drawed invalid menu arrow when the width is shorter than the height.

- Use the squared rectangle.
- Draw it in the transparent background mode.
- Save the old background mode of HDC.

This PR will fix UltraISO's bug.
2019-07-25 01:40:33 +09:00
Katayama Hirofumi MZ c17a8770a3
[USER32] Switch to only one window (Alt+Tab) (#1718)
Fix app switcher (Alt+Tab)'s behavior when there is only one app window. CORE-16176
2019-07-07 09:05:10 +09:00
jimtabor a8d6e12bc1 [User32] Sync Port Wine.
Patch :
Nikolay Sivov : Use correct brush color for centered image background.
Nikolay Sivov : Remove confusing comments.
2019-06-28 22:22:49 -05:00
jimtabor 65a814203f [User32] Sync Port Wine.
Patch :
Vijay Kiran Kamuju : Add DlgDirList wildcard checks.
Nikolay Sivov : Fix setting negative dialog item ids.
Alistair Leslie-Hughes : Don't reset focus if current dialog is a child.
Dmitry Timoshkov : If there is no dialog controls to set focus to then
set focus to dialog itself.
Zhiyi Zhang : Send notification for the focused button in
IsDialogMessage().
Huw Davies : Avoid using the comma operator in a while condition.

Patch skipped : a525631920d74e9d797f38305b89e63aed1c5c41 : Scale dialog
base units based on DPI awareness.
2019-06-28 21:52:04 -05:00
Hermès Bélusca-Maïto 78d20a9b3a
[WIN32K] Fix spelling typo. 2019-06-23 02:12:23 +02:00
Joachim Henze 1158c24194 [WIN32SS] Fix multiple scrollbar redraw issues
This fixes:
- CORE-15911 "Scrollbars do not dissapear when Maximizing and not needed"
- CORE-10617 "ListView corrupt scrollbar upon resizing the column-header"

and will appease regression:
- CORE-15429 "Uninitialized scrollbars in 'My Computer'"

By applying clientFix.patch from CORE-15911 contributed by JIRA-user 'I_Kill_Bugs'.

https://reactos.org/testman/compare.php?ids=66723,66729

Earlier I already committed this fix into 0.4.12-RC-9-g
5ac548544f
2019-06-22 22:27:23 +02:00
jimtabor 8c7705eb5d [Win32SS] Complete Print Driver Callbacks
This callback works. Haven't commit the rest yet. Still thinking about
the data packets types and shapes. Using wordpad to test this. It works,
loads and unloads due to incomplete driver support and no PDEV. It
crashes in ComCtl32 while loading a text file. When this gets committed
without a solution, the code will be commented out.
2019-06-22 12:02:51 -05:00
James Tabor 40c42305c3 [Win32SS] Add Driver Callback
Add user driver callback to be used later on.
2019-06-21 13:10:03 -05:00
Mark Jansen 04712d418c
[WIN32K] Use KeStackAttachProcess 2019-06-15 21:26:41 +02:00
Mark Jansen 97d1590914
[WIN32K] Attach to the target process before unhooking
CORE-16083
2019-06-15 21:26:41 +02:00
Mark Jansen 7a3937ddaf
[WIN32K] Fix indenting in IntRemoveHook 2019-06-15 21:26:35 +02:00
Joachim Henze 3cc50cedaf [WIN32SS][NTUSER] Addendum to 0.4.12-dev-956-g0197c4f CORE-15893
Aims PixelPerfection for a regression that was introduced by
0.4.12-dev-954-g
1f619b2781

and then improved already by
0.4.12-dev-956-g
0197c4f875

The tweaking got ack of Jim Tabor. Test results:
https://reactos.org/testman/compare.php?ids=68026,68029
2019-06-10 15:33:31 +02:00
Serge Gautherie 7804cf035a [USER32] RegisterClipboardFormatA(): Enable a SetLastError() (#1612) 2019-06-05 18:15:02 +02:00
Serge Gautherie 38db074491 Misc addendum to CORE-14271 (#1529)
* [ADVAPI32] Simplify RtlCreateUnicodeStringFromAsciiz() return value check

RtlCreateUnicodeStringFromAsciiz() returns a BOOLEAN, not a BOOL.

No functional change.

Addendum to
CORE-14271

* [USER32] Simplify RtlCreateUnicodeStringFromAsciiz() return value check

RtlCreateUnicodeStringFromAsciiz() returns a BOOLEAN, not a UINT.

Also, add a FIXME.

No functional change.

Addendum to
CORE-14271

* [USER32] Simplify RegisterClipboardFormatA/W() a bit

No functional change.

* [UDFS] Simplify SeSinglePrivilegeCheck() return value check

No functional change.

Addendum to
CORE-14271
2019-06-04 16:56:33 +02:00
Katayama Hirofumi MZ a73c17fcd9
Revert "[USER32] Make App Switcher use the owner window's icon (#1299)" (#1605)
This reverts commit 484943d04f.
2019-06-03 08:47:43 +09:00
Katayama Hirofumi MZ f7fc10c17c
[WIN32SS][USER32] Fix Task Switcher more (#1602)
This PR will fix task switcher (Alt+Tab) as Win2k3. It became more reliable. CORE-15653
c.f. Raymond Chen's article: http://blogs.msdn.com/b/oldnewthing/archive/2007/10/08/5351207.aspx
2019-06-02 19:17:50 +09:00
James Tabor 931c72fde5 [NtUser] Fix Clipboard Synthesized Returns
Add supported for Meta file synthesized renderings.
See CORE-12143.
2019-06-01 07:23:58 -05:00
jimtabor 73558e94df [User32] Fix Clipboard Meta Test Results
Fix meta data handle returns.
2019-05-31 22:59:29 -05:00
jimtabor da264743e1 [Win32SS] Support Clipboard Metafile
Major fix ups and plugging in missing code changes. Handle code is from
another project currently being developed for ReactOS.
See CORE-12143
2019-05-31 21:44:17 -05:00
Katayama Hirofumi MZ 1010f3796e
[USER32] Fix behavior of Task Switcher (Alt+Tab) (#1591)
Task Switcher didn't correctly behave on the windows with WS_EX_APPWINDOW extended style. CORE-15653
2019-05-31 17:02:47 +09:00
Hermès Bélusca-Maïto 5ca9c9c138
[CONSRV] Minor code cleanup. 2019-05-26 00:00:39 +02:00