always let GtkTextView have mouse release events to avoid assertion failures in gtk_text_view_start_selection_drag()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
9768729112
commit
8312c461b8
@ -167,6 +167,9 @@ public:
|
||||
// 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);
|
||||
|
@ -1817,6 +1817,18 @@ void wxTextCtrl::OnUrlMouseEvent(wxMouseEvent& 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))
|
||||
|
Loading…
Reference in New Issue
Block a user