#endif
+#ifdef __WXGTK__
+#undef wxSTC_USE_POPUP
+#define wxSTC_USE_POPUP 0
+#endif
+
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
#include <wx/popupwin.h>
#define wxSTCCallTipBase wxPopupWindow
m_ct = ct;
}
+ ~wxSTCCallTip() {
+ if (HasCapture()) ReleaseMouse();
+ }
+
void OnPaint(wxPaintEvent& evt) {
wxPaintDC dc(this);
Surface* surfaceWindow = Surface::Allocate();
virtual bool Show( bool show = TRUE ) {
bool retval = wxSTCCallTipBase::Show(show);
- if (show) {
+ if (show)
CaptureMouse();
- }
- else {
+ else
if (HasCapture()) ReleaseMouse();
- }
return retval;
}
if (currentPos != anchor) {
SelectionText st;
CopySelectionRange(&st);
- wxTheClipboard->Open();
- wxTheClipboard->UsePrimarySelection();
- wxString text = stc2wx(st.s, st.len);
- wxTheClipboard->SetData(new wxTextDataObject(text));
- wxTheClipboard->Close();
+ if (wxTheClipboard->Open()) {
+ wxTheClipboard->UsePrimarySelection();
+ wxString text = stc2wx(st.s, st.len);
+ wxTheClipboard->SetData(new wxTextDataObject(text));
+ wxTheClipboard->Close();
+ }
}
}
ClearSelection();
wxTextDataObject data;
- bool gotData;
+ bool gotData = FALSE;
- wxTheClipboard->Open();
- wxTheClipboard->UsePrimarySelection();
- gotData = wxTheClipboard->GetData(data);
- wxTheClipboard->Close();
+ if (wxTheClipboard->Open()) {
+ wxTheClipboard->UsePrimarySelection();
+ gotData = wxTheClipboard->GetData(data);
+ wxTheClipboard->Close();
+ }
if (gotData) {
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(data.GetText());
int len = strlen(buf);
bool ScintillaWX::CanPaste() {
- bool canPaste;
+ bool canPaste = FALSE;
+ bool didOpen;
- wxTheClipboard->Open();
- wxTheClipboard->UsePrimarySelection();
- canPaste = wxTheClipboard->IsSupported(wxUSE_UNICODE ? wxDF_UNICODETEXT : wxDF_TEXT);
- wxTheClipboard->Close();
+ if ( (didOpen = !wxTheClipboard->IsOpened()) )
+ wxTheClipboard->Open();
+ if (wxTheClipboard->IsOpened()) {
+ wxTheClipboard->UsePrimarySelection();
+ canPaste = wxTheClipboard->IsSupported(wxUSE_UNICODE ? wxDF_UNICODETEXT : wxDF_TEXT);
+ if (didOpen)
+ wxTheClipboard->Close();
+ }
return canPaste;
}