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 {
- ReleaseMouse();
- }
+ else
+ if (HasCapture()) ReleaseMouse();
return retval;
}
ScrollTo(topLineNew);
}
-
-void ScintillaWX::DoMouseWheel(int rotation, int delta, int linesPerAction, int ctrlDown) {
+void ScintillaWX::DoMouseWheel(int rotation, int delta,
+ int linesPerAction, int ctrlDown,
+ bool isPageScroll ) {
int topLineNew = topLine;
int lines;
lines = wheelRotation / delta;
wheelRotation -= lines * delta;
if (lines != 0) {
- lines *= linesPerAction;
+ if (isPageScroll)
+ lines = lines * LinesOnScreen(); // lines is either +1 or -1
+ else
+ lines *= linesPerAction;
topLineNew -= lines;
ScrollTo(topLineNew);
}
void ScintillaWX::DoContextMenu(Point pt) {
- ContextMenu(pt);
+ if (displayPopupMenu)
+ ContextMenu(pt);
}
void ScintillaWX::DoOnListBox() {