mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 17:52:56 +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? */
|
/* 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)
|
if (sr.Position > ABE_BOTTOM)
|
||||||
This->Position = ABE_BOTTOM;
|
This->Position = ABE_BOTTOM;
|
||||||
else
|
else
|
||||||
|
@ -794,6 +785,7 @@ ITrayWindowImpl_RegLoadSettings(IN OUT ITrayWindowImpl *This)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
This->Position = ABE_BOTTOM;
|
This->Position = ABE_BOTTOM;
|
||||||
|
This->AlwaysOnTop = TRUE;
|
||||||
|
|
||||||
/* Use the minimum size of the taskbar, we'll use the start
|
/* Use the minimum size of the taskbar, we'll use the start
|
||||||
button as a minimum for now. Make sure we calculate the
|
button as a minimum for now. Make sure we calculate the
|
||||||
|
@ -813,6 +805,15 @@ ITrayWindowImpl_RegLoadSettings(IN OUT ITrayWindowImpl *This)
|
||||||
MONITOR_DEFAULTTOPRIMARY);
|
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
|
/* Determine a minimum tray window rectangle. The "client" height is
|
||||||
zero here since we cannot determine an optimal minimum width when
|
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
|
loaded as a vertical tray window. We just need to make sure the values
|
||||||
|
@ -2151,6 +2152,19 @@ TrayWndProc(IN HWND hwnd,
|
||||||
|
|
||||||
switch (uMsg)
|
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:
|
case WM_COPYDATA:
|
||||||
{
|
{
|
||||||
if (This->hwndTrayNotify)
|
if (This->hwndTrayNotify)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue