Author: dquintana
Date: Mon May 19 10:44:33 2014
New Revision: 63369
URL:
http://svn.reactos.org/svn/reactos?rev=63369&view=rev
Log:
[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
Modified:
branches/shell-experiments/base/shell/explorer-new/traywnd.c
Modified: branches/shell-experiments/base/shell/explorer-new/traywnd.c
URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/ex…
==============================================================================
--- branches/shell-experiments/base/shell/explorer-new/traywnd.c [iso-8859-1]
(original)
+++ branches/shell-experiments/base/shell/explorer-new/traywnd.c [iso-8859-1] Mon
May 19 10:44:33 2014
@@ -768,15 +768,6 @@
/* 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 @@
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
@@ -812,6 +804,15 @@
&rcScreen,
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
@@ -2151,6 +2152,19 @@
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)