X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f40fdaa339e19bbdf60c9c065c82daae4ca77b36..31ad423e4fb556ec225a63b161154d3bf3445c1b:/src/gtk/textctrl.cpp diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp index 2d5b6460a5..ced9cf41e8 100644 --- a/src/gtk/textctrl.cpp +++ b/src/gtk/textctrl.cpp @@ -1157,27 +1157,36 @@ void wxTextCtrl::Cut() { wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") ); -#ifndef __WXGTK20__ - gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) DUMMY_CLIPBOARD_ARG ); +#ifdef __WXGTK20__ + if (m_windowStyle & wxTE_MULTILINE) + g_signal_emit_by_name(m_text, "cut-clipboard"); + else #endif + gtk_editable_cut_clipboard(GTK_EDITABLE(m_text) DUMMY_CLIPBOARD_ARG); } void wxTextCtrl::Copy() { wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") ); -#ifndef __WXGTK20__ - gtk_editable_copy_clipboard( GTK_EDITABLE(m_text) DUMMY_CLIPBOARD_ARG ); +#ifdef __WXGTK20__ + if (m_windowStyle & wxTE_MULTILINE) + g_signal_emit_by_name(m_text, "copy-clipboard"); + else #endif + gtk_editable_copy_clipboard(GTK_EDITABLE(m_text) DUMMY_CLIPBOARD_ARG); } void wxTextCtrl::Paste() { wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") ); -#ifndef __WXGTK20__ - gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) DUMMY_CLIPBOARD_ARG ); +#ifdef __WXGTK20__ + if (m_windowStyle & wxTE_MULTILINE) + g_signal_emit_by_name(m_text, "paste-clipboard"); + else #endif + gtk_editable_paste_clipboard(GTK_EDITABLE(m_text) DUMMY_CLIPBOARD_ARG); } // Undo/redo @@ -1416,14 +1425,6 @@ bool wxTextCtrl::SetBackgroundColour( const wxColour &colour ) if (!m_widget->window) return FALSE; - wxColour sysbg = wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ); - if (sysbg.Red() == colour.Red() && - sysbg.Green() == colour.Green() && - sysbg.Blue() == colour.Blue()) - { - return FALSE; // FIXME or TRUE? - } - if (!m_backgroundColour.Ok()) return FALSE; @@ -1633,7 +1634,9 @@ wxSize wxTextCtrl::DoGetBestSize() const { // FIXME should be different for multi-line controls... wxSize ret( wxControl::DoGetBestSize() ); - return wxSize(80, ret.y); + wxSize best(80, ret.y); + CacheBestSize(best); + return best; } // ----------------------------------------------------------------------------