git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48183
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// encoding
wxFontEncoding GetTextEncoding() const;
// encoding
wxFontEncoding GetTextEncoding() const;
+ // returns either m_text or m_buffer depending on whether the control is
+ // single- or multi-line; convenient for the GTK+ functions which work with
+ // both
+ void *GetTextObject() const
+ {
+ return IsMultiLine() ? wx_static_cast(void *, m_buffer)
+ : wx_static_cast(void *, m_text);
+ }
+
+ // the widget used for single line controls
GtkWidget *m_text;
bool m_modified:1;
GtkWidget *m_text;
bool m_modified:1;
- void* blockWidget = IsMultiLine() ? (void*)m_buffer : (void*)m_text;
- g_signal_handlers_block_by_func(blockWidget,
- (gpointer)gtk_text_changed_callback, this);
+ if ( !(flags & SetValue_SendEvent) )
+ {
+ g_signal_handlers_block_by_func(GetTextObject(),
+ (gpointer)gtk_text_changed_callback, this);
+ }
+
if ( IsMultiLine() )
{
gtk_text_buffer_set_text( m_buffer, buffer, strlen(buffer) );
if ( IsMultiLine() )
{
gtk_text_buffer_set_text( m_buffer, buffer, strlen(buffer) );
{
gtk_entry_set_text( GTK_ENTRY(m_text), buffer );
}
{
gtk_entry_set_text( GTK_ENTRY(m_text), buffer );
}
- g_signal_handlers_unblock_by_func(blockWidget,
- (gpointer)gtk_text_changed_callback, this);
+
+ if ( !(flags & SetValue_SendEvent) )
+ {
+ g_signal_handlers_unblock_by_func(GetTextObject(),
+ (gpointer)gtk_text_changed_callback, this);
+ }
// This was added after discussion on the list
SetInsertionPoint(0);
// This was added after discussion on the list
SetInsertionPoint(0);