mirror of
https://github.com/reactos/reactos.git
synced 2025-02-21 16:04:57 +00:00
[EXPLORER-NEW]
* Default to always-on-top if the registry setting is not found. * Reload and apply settings on display change. Fixes taskbar not repositioning on resolution changes. CORE-7330 svn path=/branches/shell-experiments/; revision=63369
This commit is contained in:
parent
a8667b0ffe
commit
14c68ccd3f
1 changed files with 23 additions and 9 deletions
|
@ -768,15 +768,6 @@ ITrayWindowImpl_RegLoadSettings(IN OUT ITrayWindowImpl *This)
|
|||
|
||||
/* FIXME: Are there more flags? */
|
||||
|
||||
if (This->hWnd != NULL)
|
||||
SetWindowPos (This->hWnd,
|
||||
This->AlwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
SWP_NOMOVE | SWP_NOSIZE);
|
||||
|
||||
if (sr.Position > ABE_BOTTOM)
|
||||
This->Position = ABE_BOTTOM;
|
||||
else
|
||||
|
@ -794,6 +785,7 @@ ITrayWindowImpl_RegLoadSettings(IN OUT ITrayWindowImpl *This)
|
|||
else
|
||||
{
|
||||
This->Position = ABE_BOTTOM;
|
||||
This->AlwaysOnTop = TRUE;
|
||||
|
||||
/* Use the minimum size of the taskbar, we'll use the start
|
||||
button as a minimum for now. Make sure we calculate the
|
||||
|
@ -813,6 +805,15 @@ ITrayWindowImpl_RegLoadSettings(IN OUT ITrayWindowImpl *This)
|
|||
MONITOR_DEFAULTTOPRIMARY);
|
||||
}
|
||||
|
||||
if (This->hWnd != NULL)
|
||||
SetWindowPos(This->hWnd,
|
||||
This->AlwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
SWP_NOMOVE | SWP_NOSIZE);
|
||||
|
||||
/* Determine a minimum tray window rectangle. The "client" height is
|
||||
zero here since we cannot determine an optimal minimum width when
|
||||
loaded as a vertical tray window. We just need to make sure the values
|
||||
|
@ -2151,6 +2152,19 @@ TrayWndProc(IN HWND hwnd,
|
|||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_DISPLAYCHANGE:
|
||||
|
||||
/* Load the saved tray window settings */
|
||||
ITrayWindowImpl_RegLoadSettings(This);
|
||||
|
||||
/* Move the tray window to the right position and resize it if neccessary */
|
||||
ITrayWindowImpl_CheckTrayWndPosition(This);
|
||||
|
||||
/* Align all controls on the tray window */
|
||||
ITrayWindowImpl_AlignControls(This, NULL);
|
||||
|
||||
break;
|
||||
|
||||
case WM_COPYDATA:
|
||||
{
|
||||
if (This->hwndTrayNotify)
|
||||
|
|
Loading…
Reference in a new issue