[BROWSEUI] Apply a hack to prevent truncating the address bar text.

CORE-13003
This commit is contained in:
Doug Lyons 2018-04-22 15:42:10 +02:00 committed by Mark Jansen
parent e49ef251b7
commit ea0cc1c783
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
2 changed files with 30 additions and 2 deletions

View file

@ -43,6 +43,7 @@ CAddressBand::CAddressBand()
fGoButton = NULL;
fComboBox = NULL;
fGoButtonShown = false;
fAdjustNeeded = 0;
}
CAddressBand::~CAddressBand()
@ -66,7 +67,10 @@ HRESULT STDMETHODCALLTYPE CAddressBand::GetBandInfo(DWORD dwBandID, DWORD dwView
{
if (pdbi->dwMask & DBIM_MINSIZE)
{
pdbi->ptMinSize.x = 100;
if (fGoButtonShown)
pdbi->ptMinSize.x = 100;
else
pdbi->ptMinSize.x = 150;
pdbi->ptMinSize.y = 22;
}
if (pdbi->dwMask & DBIM_MAXSIZE)
@ -81,7 +85,10 @@ HRESULT STDMETHODCALLTYPE CAddressBand::GetBandInfo(DWORD dwBandID, DWORD dwView
}
if (pdbi->dwMask & DBIM_ACTUAL)
{
pdbi->ptActual.x = 100;
if (fGoButtonShown)
pdbi->ptActual.x = 100;
else
pdbi->ptActual.x = 150;
pdbi->ptActual.y = 22;
}
if (pdbi->dwMask & DBIM_TITLE)
@ -451,6 +458,8 @@ LRESULT CAddressBand::OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHan
long newHeight;
long newWidth;
fAdjustNeeded = 1;
if (fGoButtonShown == false)
{
bHandled = FALSE;
@ -505,6 +514,24 @@ LRESULT CAddressBand::OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lPara
positionInfoCopy = *reinterpret_cast<WINDOWPOS *>(lParam);
newHeight = positionInfoCopy.cy;
newWidth = positionInfoCopy.cx;
/*
Sometimes when we get here newWidth = 100 which comes from GetBandInfo and is less than the 200 that we need.
We need room for the "Address" text (50 pixels), the "GoButton" (50 pixels), the left and right borders (30 pixels)
the icon (20 pixels) and the ComboBox (50 pixels) for handling the text of the current directory. This is 200 pixels.
When newWidth = 100 the Addressband ComboBox will only have a single character because it becomes 2 pixels wide.
The hack below readjusts the width to the minimum required to allow seeing the whole text and prints out a debug message.
*/
if ((newWidth < 200) && (newWidth != 0))
{
if (fAdjustNeeded == 1)
{
ERR("CORE-13003 HACK: Addressband ComboBox width readjusted from %ld to 200.\n", newWidth);
newWidth = 200;
fAdjustNeeded = 0;
}
}
SendMessage(fGoButton, TB_GETITEMRECT, 0, reinterpret_cast<LPARAM>(&buttonBounds));
buttonWidth = buttonBounds.right - buttonBounds.left;

View file

@ -43,6 +43,7 @@ private:
bool fGoButtonShown;
HIMAGELIST m_himlNormal;
HIMAGELIST m_himlHot;
INT fAdjustNeeded;
public:
CAddressBand();