Use signal blocking rather than disconnection to temporarily disable events
This commit is contained in:
@@ -4681,7 +4681,8 @@ bool wxDataViewCtrl::Create(wxWindow *parent,
|
|||||||
|
|
||||||
PostCreation(size);
|
PostCreation(size);
|
||||||
|
|
||||||
GtkEnableSelectionEvents();
|
g_signal_connect_after(gtk_tree_view_get_selection(GTK_TREE_VIEW(m_treeview)),
|
||||||
|
"changed", G_CALLBACK(wxdataview_selection_changed_callback), this);
|
||||||
|
|
||||||
g_signal_connect_after (m_treeview, "row-activated",
|
g_signal_connect_after (m_treeview, "row-activated",
|
||||||
G_CALLBACK (wxdataview_row_activated_callback), this);
|
G_CALLBACK (wxdataview_row_activated_callback), this);
|
||||||
@@ -5287,15 +5288,15 @@ void wxDataViewCtrl::DoSetIndent()
|
|||||||
void wxDataViewCtrl::GtkDisableSelectionEvents()
|
void wxDataViewCtrl::GtkDisableSelectionEvents()
|
||||||
{
|
{
|
||||||
GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
|
GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
|
||||||
g_signal_handlers_disconnect_by_func( selection,
|
g_signal_handlers_block_by_func(
|
||||||
(gpointer) (wxdataview_selection_changed_callback), this);
|
selection, (void*)wxdataview_selection_changed_callback, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDataViewCtrl::GtkEnableSelectionEvents()
|
void wxDataViewCtrl::GtkEnableSelectionEvents()
|
||||||
{
|
{
|
||||||
GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
|
GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
|
||||||
g_signal_connect_after (selection, "changed",
|
g_signal_handlers_unblock_by_func(
|
||||||
G_CALLBACK (wxdataview_selection_changed_callback), this);
|
selection, (void*)wxdataview_selection_changed_callback, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user