[ros-diffs] [rharabien] 54113: [EXPLORER] - If Start Menu is open, WIN key hides it

rharabien at svn.reactos.org rharabien at svn.reactos.org
Thu Oct 13 15:50:24 UTC 2011


Author: rharabien
Date: Thu Oct 13 15:50:24 2011
New Revision: 54113

URL: http://svn.reactos.org/svn/reactos?rev=54113&view=rev
Log:
[EXPLORER] - If Start Menu is open, WIN key hides it

Modified:
    trunk/reactos/base/shell/explorer/taskbar/desktopbar.cpp
    trunk/reactos/base/shell/explorer/taskbar/desktopbar.h
    trunk/reactos/base/shell/explorer/taskbar/startmenu.cpp
    trunk/reactos/base/shell/explorer/taskbar/startmenu.h

Modified: trunk/reactos/base/shell/explorer/taskbar/desktopbar.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/taskbar/desktopbar.cpp?rev=54113&r1=54112&r2=54113&view=diff
==============================================================================
--- trunk/reactos/base/shell/explorer/taskbar/desktopbar.cpp [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/taskbar/desktopbar.cpp [iso-8859-1] Thu Oct 13 15:50:24 2011
@@ -306,7 +306,7 @@
 			else
 				return 0;			// disable any other resizing
 		} else if (wparam == SC_TASKLIST)
-			ShowStartMenu();
+			ShowOrHideStartMenu();
 		goto def;
 
 	  case WM_SIZE:
@@ -430,7 +430,7 @@
 {
 	switch(id) {
 	  case IDC_START:
-		ShowStartMenu();
+		ShowOrHideStartMenu();
 		break;
 
 	  case ID_ABOUT_EXPLORER:
@@ -484,7 +484,7 @@
 }
 
 
-void DesktopBar::ShowStartMenu()
+void DesktopBar::ShowOrHideStartMenu()
 {
 	if (_startMenuRoot)
 	{
@@ -492,7 +492,10 @@
 		if (!Button_GetState(_hwndStartButton))
 			Button_SetState(_hwndStartButton, TRUE);
 
- 		_startMenuRoot->TrackStartmenu();
+        if (_startMenuRoot->IsStartMenuVisible())
+            _startMenuRoot->CloseStartMenu();
+        else
+            _startMenuRoot->TrackStartmenu();
 
 		// StartMenu was closed, release button state
 		Button_SetState(_hwndStartButton, false);

Modified: trunk/reactos/base/shell/explorer/taskbar/desktopbar.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/taskbar/desktopbar.h?rev=54113&r1=54112&r2=54113&view=diff
==============================================================================
--- trunk/reactos/base/shell/explorer/taskbar/desktopbar.h [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/taskbar/desktopbar.h [iso-8859-1] Thu Oct 13 15:50:24 2011
@@ -103,7 +103,7 @@
 	void	ControlResize(WPARAM wparam, LPARAM lparam);
 	void	RegisterHotkeys();
 	void	ProcessHotKey(int id_hotkey);
-	void	ShowStartMenu();
+	void	ShowOrHideStartMenu();
 	LRESULT	ProcessCopyData(COPYDATASTRUCT* pcd);
 
 	WindowHandle _hwndTaskBar;

Modified: trunk/reactos/base/shell/explorer/taskbar/startmenu.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/taskbar/startmenu.cpp?rev=54113&r1=54112&r2=54113&view=diff
==============================================================================
--- trunk/reactos/base/shell/explorer/taskbar/startmenu.cpp [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/taskbar/startmenu.cpp [iso-8859-1] Thu Oct 13 15:50:24 2011
@@ -1872,6 +1872,11 @@
 	ShowWindow(_hwnd, SW_HIDE);
 }
 
+bool StartMenuRoot::IsStartMenuVisible() const
+{
+    return IsWindowVisible(_hwnd);
+}
+
 void StartMenuRoot::ProcessKey(int vk)
 {
 	switch(vk) {

Modified: trunk/reactos/base/shell/explorer/taskbar/startmenu.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/taskbar/startmenu.h?rev=54113&r1=54112&r2=54113&view=diff
==============================================================================
--- trunk/reactos/base/shell/explorer/taskbar/startmenu.h [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/taskbar/startmenu.h [iso-8859-1] Thu Oct 13 15:50:24 2011
@@ -369,6 +369,8 @@
 
 	static HWND Create(HWND hwndDesktopBar, int icon_size);
 	void	TrackStartmenu();
+	void	CloseStartMenu(int id=0);
+	bool    IsStartMenuVisible() const;
 	int	Command(int id, int code);
 
 	HWND	_hwndStartButton;
@@ -383,7 +385,7 @@
 	virtual void ProcessKey(int vk);
 
 	void	Paint(PaintCanvas& canvas);
-	void	CloseStartMenu(int id=0);
+	
 
 	void	ReadLogoSize();
 	UINT	GetLogoResId();




More information about the Ros-diffs mailing list