git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40954
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// should we mark the control as dirty? always resets the flag
bool MarkDirtyOnChange();
// should we mark the control as dirty? always resets the flag
bool MarkDirtyOnChange();
+ // always let GTK have mouse release events for multiline controls
+ virtual bool GTKProcessEvent(wxEvent& event) const;
+
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
GetEventHandler()->ProcessEvent(url_event);
}
GetEventHandler()->ProcessEvent(url_event);
}
+bool wxTextCtrl::GTKProcessEvent(wxEvent& event) const
+{
+ bool rc = wxTextCtrlBase::GTKProcessEvent(event);
+
+ // GtkTextView starts a drag operation when left mouse button is pressed
+ // and ends it when it is released and if it doesn't get the release event
+ // the next click on a control results in an assertion failure inside
+ // gtk_text_view_start_selection_drag() which simply *kills* the program
+ // without anything we can do about it, so always let GTK+ have this event
+ return rc && (IsSingleLine() || event.GetEventType() != wxEVT_LEFT_UP);
+}
+
// static
wxVisualAttributes
wxTextCtrl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
// static
wxVisualAttributes
wxTextCtrl::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))