reactos/win32ss/user/ntuser
Joachim Henze 28129ea676 [0.4.11][WIN32SS] State of the art for positioning popups, menus and submenus
This is the hard work of Mark Jansen, and in sum reflects the state of 0.4.13-rls-0
when leaving out all work of Jim Tabor and Katayama in this file.
I picked only one unrelated single-line-commit of Timo Kreuzer additionally.

In sum it fixes the following tickets: CORE-16306, CORE-16297, CORE-15863, CORE-15001, CORE-16298.

And is a backport of the following master-commits:
0.4.14-dev-40-g e1984d0 CORE-16306 "Regression, UltraISO shows Languages popup menu at wrong position" (ported back earlier into 0.4.13-RC-12-g 609f2ae)
0.4.13-dev-815-g 6948764 CORE-16297 "Regression, The popup menus position is not perfect for systray icons context menu of Abyss webserver"
0.4.13-dev-814-g 84e263c CORE-16297 "Regression, The popup menus position is not perfect for systray icons context menu of Abyss webserver"
0.4.13-dev-813-g 1c8cdaa CORE-16297 "Regression, The popup menus position is not perfect for systray icons context menu of Abyss webserver"
0.4.13-dev-793-g b5c6af4 CORE-15863 "Regression, popup-menus that expand a sub-popup-menu may erroneously overlay itself"
0.4.13-dev-792-g 7c45a64 CORE-15863 "Regression, popup-menus that expand a sub-popup-menu may erroneously overlay itself"
0.4.13-dev-791-g a59df38 CORE-15863 "Regression, popup-menus that expand a sub-popup-menu may erroneously overlay itself"
0.4.13-dev-713-g 08c6d21 just fixes a compiler warning, unrelated one-liner, only commit of Timo in here
0.4.12-dev-369-g 007ec03 CORE-15001 "Wrong placement of the context menu in systray leads to autoselection, e.g. Abyss WebServer"
0.4.12-dev-346-g d2626f0 CORE-15001 "Wrong placement of the context menu in systray leads to autoselection, e.g. Abyss WebServer"
CORE-16298 "Window system menu does not appear where expected" which is a dupe of one of the tickets above, don't ask me which exactly

There is only one ticket in this context that will NOT get fixed in the final state, but we do accept that,
as it is minor and also MS Windows is not really deterministic in all cases for that:
CORE-15733 "[Win32SS?] dropdown-menu position may be wrong, when the window overflows the screen-borders"

This patch supersedes / is a better replacement for the safe-intermediate-state-fixes that I committed earlier into:
0.4.12-RC-49-g d52cac4 & 0.4.12-RC-48-g 3113d13
0.4.11-RC-35-g a9be77c & 0.4.11-RC-30-g 83e4a61 & 0.4.11-RC-27-g 1d47cfd
2020-12-08 18:09:47 +01:00
..
misc [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
accelerator.c
accelerator.h
callback.c
callback.h
callproc.c
caret.c
caret.h
class.c [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
class.h
clipboard.c [WIN32SS] Fix NtUserGetClipboardData for text paste (#645) 2018-06-30 17:12:23 +02:00
clipboard.h
console.c
csr.c [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
csr.h
cursoricon.c [REACTOS] Improve/Fix some "printf" formats (#555) 2018-05-30 14:18:23 +02:00
cursoricon.h
dce.h
dde.c
defwnd.c [0.4.11][WIN32SS] Fix last user visible parts of regression CORE-10855 2020-11-09 23:19:04 +01:00
desktop.c [WIN32K:NTUSER] For processes that start without any window station and no desktops but manage these (e.g. winlogon.exe), assign their startup desktop when they assign a desktop to one of their threads. 2018-08-19 22:18:41 +02:00
desktop.h [WIN32K:NTUSER] Make NtUserResolveDesktop() and IntResolveDesktop() work in a more Win2k3-compatible manner. 2018-08-19 22:18:37 +02:00
display.c [0.4.11][WIN32SS] Fix many regressions of fullscreen switching, all caused by SVN r75407 2020-10-07 02:32:44 +02:00
draw.c [0.4.11][WIN32SS] Fix RIGHT-expansion-arrow in submenus being drawn too large CORE-13211 2020-12-02 16:07:45 +01:00
event.c [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
focus.c [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
focus.h
ghost.c [0.4.11] [WIN32SS] Shhhhh! CORE-11944 2018-12-09 22:23:37 +01:00
ghost.h [WIN32SS] Add IntGoGhost function (stub) (#1081) 2018-12-01 20:59:07 +09:00
guicheck.c
guicheck.h
hook.c [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
hook.h [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
hotkey.c
hotkey.h
ime.c
input.c [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
input.h
kbdlayout.c [NDK] Replace the SYSTEMTIME fields StandardDate and DaylightDate in RTL_TIME_ZONE_INFORMATION by TIME_FIELDs and fix resulting errors 2018-05-31 17:48:29 +02:00
keyboard.c [WIN32K] Work around GCC builds inventing dead keys. 2018-09-23 20:03:14 +02:00
layered.c
main.c [0.4.11][NTUSER] Fix regression CORE-11828 2020-10-11 23:44:54 +02:00
menu.c [0.4.11][WIN32SS] State of the art for positioning popups, menus and submenus 2020-12-08 18:09:47 +01:00
menu.h
message.c [WIN32SS] Add IntGoGhost function (stub) (#1081) 2018-12-01 20:59:07 +09:00
metric.c
misc.c [WIN32K:NTUSER] Similarly to what was done in USERSRV for harderrors, introduce the _scwprintf() helper function based on the imported _vscwprintf(). 2018-08-19 22:18:34 +02:00
mmcopy.h
monitor.c
monitor.h
mouse.c [WIN32K] Check if the window being destroyed is currently tracked. (#103) 2017-11-04 15:00:54 +01:00
msgqueue.c [WIN32K] Fix DBG_PRINT macro. 2018-06-10 04:00:06 +02:00
msgqueue.h
nonclient.c [0.4.11] [WIN32K:NTUSER] Avoid dereferencing a null pointer in NC_DoNCPaint. 2019-01-08 23:54:32 +01:00
ntstubs.c [WIN32K][NTUSER] Tiny codestyle fix to NtUserLockWindowUpdate (#1066) 2018-11-25 14:31:04 +01:00
ntuser.c [NTDLL][NTUSER][SPOOLSS][WINSPOOL] Add some missing VOIDs. CORE-11799 (#94) 2017-10-28 13:46:11 +01:00
ntuser.h [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
object.c [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
object.h
painting.c [WIN32SS][LPK] Add BiDi support to menus and window captions (#738) 2018-08-23 19:43:12 +02:00
painting.h
prop.c
prop.h
scroll.h
scrollbar.c [0.4.11][WIN32SS] Fix regression CORE-16721 & scrollbar bug CORE-15557 2020-12-01 00:58:12 +01:00
scrollex.c
session.c
shutdown.c [WIN32K:NTUSER] Add an extra optional "Process" parameter to the GetProcessLuid() function to be used alternatively in place of "Thread" to retrieve the LUID. 2018-08-19 22:18:30 +02:00
shutdown.h
simplecall.c [WIN32SS] Fix SwitchToThisWindow for #998 (#999) 2018-10-30 17:24:47 +09:00
sysparams.c [WIN32K:NTUSER] Code style fixes only. 2018-08-19 22:18:36 +02:00
sysparams.h [WIN32K][DESK.CPL]: Add fit and fill background placement options (#28) 2017-10-13 21:44:02 +02:00
tags.h
timer.c
timer.h
useratom.c
useratom.h
userfuncs.h [WIN32K:NTUSER] Similarly to what was done in USERSRV for harderrors, introduce the _scwprintf() helper function based on the imported _vscwprintf(). 2018-08-19 22:18:34 +02:00
usrheap.c
usrheap.h
vis.c
vis.h
win32.h [WIN32K] Fix 64 bit issues (#420) 2018-03-18 15:53:52 +01:00
win32kdebug.h [CMAKE] Zap builddir.h.cmake and instead define macros globally 2018-06-30 13:26:56 +02:00
windc.c
window.c [WIN32K:NTUSER] co_UserDestroyWindow(): Simplify the destruction of the owned windows. 2018-09-01 23:46:21 +02:00
window.h [USER32][WIN32SS] Fix display of owned popup windows (#683) 2018-07-13 16:03:45 +02:00
winpos.c [0.4.11][WIN32SS] Fix maximized window positioning and 2 addendum commits 2020-11-09 19:43:49 +01:00
winpos.h
winsta.c [WIN32K:NTUSER] In UserSetProcessWindowStation(), use a duplicated window station handle to be set in the EPROCESS:Win32WindowStation cache. 2018-08-19 22:18:42 +02:00
winsta.h [WIN32K:NTUSER] Fixes for NtUserCreateWindowStation(), IntCreateWindowStation() and NtUserOpenWindowStation(). 2018-08-19 22:18:35 +02:00