Compare commits

...

2 Commits

Author SHA1 Message Date
32a8141504 Fix text selection at RichText. 2025-11-28 02:03:18 +03:00
nillerusr
ed8209cc35 fix build with clang-20 ref #389 #433 #436 fix #379 2025-11-25 06:24:23 +03:00
4 changed files with 18 additions and 11 deletions

View File

@@ -151,7 +151,7 @@ InitReturnVal_t CDataModel::Init( )
//#define _ELEMENT_HISTOGRAM_
#ifdef _ELEMENT_HISTOGRAM_
CUtlMap< UtlSymId_t, int > g_typeHistogram( 0, 100, DefLessFunc( UtlSymId_t ) );
#endif _ELEMENT_HISTOGRAM_
#endif //_ELEMENT_HISTOGRAM_
//-----------------------------------------------------------------------------
@@ -166,7 +166,7 @@ void CDataModel::Shutdown()
Msg( "%d\t%s\n", g_typeHistogram.Element( i ), GetString( g_typeHistogram.Key( i ) ) );
}
Msg( "\n" );
#endif _ELEMENT_HISTOGRAM_
#endif //_ELEMENT_HISTOGRAM_
int c = GetAllocatedElementCount();
if ( c > 0 )
@@ -1934,7 +1934,7 @@ CDmElement* CDataModel::CreateElement( const DmElementReference_t &ref, const ch
{
g_typeHistogram.Insert( typeSym, 1 );
}
#endif _ELEMENT_HISTOGRAM_
#endif //_ELEMENT_HISTOGRAM_
}
return pElement;

View File

@@ -92,7 +92,7 @@ public:
void Init( CDmElement *pOwner, const char *pAttributeName, int flags = 0 );
// Returns the type of elements allowed into this attribute. UTL_INVAL_SYMBOL allows everything.
UtlSymId_t GetElementType() const;
//UtlSymId_t GetElementType() const;
// Get/set
void Set( T* pElement );
@@ -1149,11 +1149,13 @@ inline void CDmaElement<T>::Init( CDmElement *pOwner, const char *pAttributeName
}
}
/*
template <class T>
inline UtlSymId_t CDmaElement<T>::GetElementType() const
{
return this->Data().m_ElementType;
}
*/
template <class T>
inline T* CDmaElement<T>::GetElement() const

View File

@@ -109,8 +109,8 @@ protected:
T** m_pMemory;
int m_nBlocks;
int m_nIndexMask : 27;
int m_nIndexShift : 5;
int m_nIndexMask;
int m_nIndexShift;
};
//-----------------------------------------------------------------------------
@@ -130,17 +130,16 @@ CUtlBlockMemory<T,I>::~CUtlBlockMemory()
Purge();
}
//-----------------------------------------------------------------------------
// Fast swap
//-----------------------------------------------------------------------------
template< class T, class I >
void CUtlBlockMemory<T,I>::Swap( CUtlBlockMemory< T, I > &mem )
{
this->swap( m_pMemory, mem.m_pMemory );
this->swap( m_nBlocks, mem.m_nBlocks );
this->swap( m_nIndexMask, mem.m_nIndexMask );
this->swap( m_nIndexShift, mem.m_nIndexShift );
V_swap( m_pMemory, mem.m_pMemory );
V_swap( m_nBlocks, mem.m_nBlocks );
V_swap( m_nIndexMask, mem.m_nIndexMask );
V_swap( m_nIndexShift, mem.m_nIndexShift );
}

View File

@@ -862,6 +862,12 @@ void RichText::Paint()
if ( m_LineBreaks.IsValidIndex( lineBreakIndexIndex ) && m_LineBreaks[lineBreakIndexIndex] < iLim )
iLim = m_LineBreaks[lineBreakIndexIndex];
// Stop when entering or exiting the selected range
if ( i < selection0 && iLim >= selection0 )
iLim = selection0;
if ( i >= selection0 && i < selection1 && iLim >= selection1 )
iLim = selection1;
// Handle non-drawing characters specially
for ( int iT = i; iT < iLim; iT++ )
{