mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[BROWSEUI] Apply a hack to prevent truncating the address bar text.
CORE-13003
This commit is contained in:
parent
e49ef251b7
commit
ea0cc1c783
2 changed files with 30 additions and 2 deletions
|
@ -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;
|
||||
|
|
|
@ -43,6 +43,7 @@ private:
|
|||
bool fGoButtonShown;
|
||||
HIMAGELIST m_himlNormal;
|
||||
HIMAGELIST m_himlHot;
|
||||
INT fAdjustNeeded;
|
||||
|
||||
public:
|
||||
CAddressBand();
|
||||
|
|
Loading…
Reference in a new issue