From 05dc25965637281d8b8f4357b6062da3e15f711e Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 1 Apr 2015 23:41:39 +0100 Subject: [PATCH] Make sure popups don't appear outside the controls. Refs #128 --- renderdocui/Windows/ShaderViewer.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/renderdocui/Windows/ShaderViewer.cs b/renderdocui/Windows/ShaderViewer.cs index ba874666d..4a0e27296 100644 --- a/renderdocui/Windows/ShaderViewer.cs +++ b/renderdocui/Windows/ShaderViewer.cs @@ -782,17 +782,23 @@ namespace renderdocui.Windows { var pt = m_HoverItem.ListView.PointToClient(Cursor.Position); - hoverPoint = new Point(m_HoverItem.ListView.ClientRectangle.Left + pt.X + 10, m_HoverItem.ListView.ClientRectangle.Top + pt.Y + 10); - hoverVar = m_HoverItem.Tag as ShaderVariable; - hoverWin = m_HoverItem.ListView; + if (m_HoverItem.ListView.ClientRectangle.Contains(pt)) + { + hoverPoint = new Point(m_HoverItem.ListView.ClientRectangle.Left + pt.X + 10, m_HoverItem.ListView.ClientRectangle.Top + pt.Y + 10); + hoverVar = m_HoverItem.Tag as ShaderVariable; + hoverWin = m_HoverItem.ListView; + } } else if (m_HoverNode != null) { var pt = m_HoverNode.OwnerView.PointToClient(Cursor.Position); - hoverPoint = new Point(m_HoverNode.OwnerView.ClientRectangle.Left + pt.X + 10, m_HoverNode.OwnerView.ClientRectangle.Top + pt.Y + 10); - hoverVar = m_HoverNode.Tag as ShaderVariable; - hoverWin = m_HoverNode.OwnerView; + if (m_HoverNode.OwnerView.ClientRectangle.Contains(pt)) + { + hoverPoint = new Point(m_HoverNode.OwnerView.ClientRectangle.Left + pt.X + 10, m_HoverNode.OwnerView.ClientRectangle.Top + pt.Y + 10); + hoverVar = m_HoverNode.Tag as ShaderVariable; + hoverWin = m_HoverNode.OwnerView; + } } if(hoverVar != null)