aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaDoc.html10
-rw-r--r--gtk/ScintillaGTK.cxx20
-rw-r--r--include/Scintilla.h1
-rw-r--r--src/Editor.cxx6
-rw-r--r--src/Editor.h2
-rw-r--r--win32/ScintillaWin.cxx4
6 files changed, 32 insertions, 11 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html
index fc86444af..fde329522 100644
--- a/doc/ScintillaDoc.html
+++ b/doc/ScintillaDoc.html
@@ -637,6 +637,16 @@ SCI_CLEARALLCMDKEYS
SHIFT_PRESSED and LEFT_CTRL_PRESSED.
</p>
<h3>
+ Popup edit menu
+ </h3>
+<pre>
+SCI_USEPOPUP
+</pre>
+ <p>
+ Clicking the wrong button on the mouse pops up a short default editing menu.
+ This may be turned off with SCI_USEPOPUP(0).
+ </p>
+ <h3>
Macro Recording
</h3>
<pre>
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx
index 3bd3b0168..da3a98a75 100644
--- a/gtk/ScintillaGTK.cxx
+++ b/gtk/ScintillaGTK.cxx
@@ -668,7 +668,7 @@ void ScintillaGTK::Resize(int width, int height) {
gint ScintillaGTK::MoveResize(GtkWidget *, GtkAllocation *allocation, ScintillaGTK *sciThis) {
// Platform::DebugPrintf("sci move resize %d %d\n", allocation->width, allocation->height);
sciThis->Resize(allocation->width, allocation->height);
- return TRUE;
+ return FALSE;
}
gint ScintillaGTK::Press(GtkWidget *, GdkEventButton *event, ScintillaGTK *sciThis) {
@@ -694,7 +694,7 @@ gint ScintillaGTK::Press(GtkWidget *, GdkEventButton *event, ScintillaGTK *sciTh
gtk_selection_convert(GTK_WIDGET(sciThis->wDraw.GetID()),
GDK_SELECTION_PRIMARY,
gdk_atom_intern("STRING", FALSE), event->time);
- } else if (event->button == 3) {
+ } else if (event->button == 3 && sciThis->displayPopupMenu) {
// PopUp menu
// Convert to screen
int ox = 0;
@@ -719,7 +719,7 @@ gint ScintillaGTK::MouseRelease(GtkWidget *, GdkEventButton *event, ScintillaGTK
pt = sciThis->ptMouseLast;
sciThis->ButtonUp(pt, event->time, event->state & 4);
}
- return TRUE;
+ return FALSE;
}
gint ScintillaGTK::Motion(GtkWidget *, GdkEventMotion *event, ScintillaGTK *sciThis) {
@@ -742,7 +742,7 @@ gint ScintillaGTK::Motion(GtkWidget *, GdkEventMotion *event, ScintillaGTK *sciT
pt.y = y;
sciThis->ButtonMove(pt);
}
- return TRUE;
+ return FALSE;
}
// Map the keypad keys to their equivalent functions
@@ -779,19 +779,19 @@ gint ScintillaGTK::KeyPress(GtkWidget *, GdkEventKey *event, ScintillaGTK *sciTh
sciThis->KeyDown(key, shift, ctrl, alt);
//Platform::DebugPrintf("SK-key: %d %x %x\n",event->keyval, event->state, GTK_WIDGET_FLAGS(widget));
- return 1;
+ return TRUE;
}
gint ScintillaGTK::KeyRelease(GtkWidget *, GdkEventKey *event, ScintillaGTK *sciThis) {
//Platform::DebugPrintf("SC-keyrel: %d %x %3s\n",event->keyval, event->state, event->string);
- return TRUE;
+ return FALSE;
}
gint ScintillaGTK::DestroyWindow(GtkWidget *, ScintillaGTK *sciThis) {
//Platform::DebugPrintf("Destroying window %x %x\n", sciThis, widget);
sciThis->Finalise();
delete sciThis;
- return TRUE;
+ return FALSE;
}
gint ScintillaGTK::Expose(GtkWidget *, GdkEventExpose *ose, ScintillaGTK *sciThis) {
@@ -819,7 +819,7 @@ gint ScintillaGTK::Expose(GtkWidget *, GdkEventExpose *ose, ScintillaGTK *sciThi
}
sciThis->paintState = notPainting;
- return TRUE;
+ return FALSE;
}
void ScintillaGTK::ScrollSignal(GtkAdjustment *adj, ScintillaGTK *sciThis) {
@@ -857,7 +857,7 @@ gboolean ScintillaGTK::DragMotion(GtkWidget *, GdkDragContext *context,
sciThis->inDragDrop = true;
sciThis->SetDragPosition(sciThis->PositionFromLocation(npt));
gdk_drag_status(context, context->suggested_action, dragtime);
- return TRUE;
+ return FALSE;
}
void ScintillaGTK::DragLeave(GtkWidget *, GdkDragContext *context,
@@ -879,7 +879,7 @@ gboolean ScintillaGTK::Drop(GtkWidget *, GdkDragContext *context,
gint, gint, guint, ScintillaGTK *sciThis) {
//Platform::DebugPrintf("Drop %x\n", sciThis);
sciThis->SetDragPosition(invalidPosition);
- return TRUE;
+ return FALSE;
}
void ScintillaGTK::DragDataReceived(GtkWidget *, GdkDragContext *context,
diff --git a/include/Scintilla.h b/include/Scintilla.h
index e030aa859..a320fccbd 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -312,6 +312,7 @@ extern "C" {
#define SCI_SETCARETPOLICY SCI_START + 369
#define SCI_LINESONSCREEN SCI_START + 370
+#define SCI_USEPOPUP SCI_START + 371
// GTK+ Specific
#define SCI_GRABFOCUS SCI_START + 400
diff --git a/src/Editor.cxx b/src/Editor.cxx
index bcefa8aec..8550286ac 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -88,6 +88,8 @@ Editor::Editor() {
modEventMask = SC_MODEVENTMASKALL;
+ displayPopupMenu = true;
+
pdoc = new Document();
pdoc ->AddRef();
pdoc->AddWatcher(this, 0);
@@ -3523,6 +3525,10 @@ LRESULT Editor::WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam) {
case SCI_LINESONSCREEN:
return LinesOnScreen();
+ case SCI_USEPOPUP:
+ displayPopupMenu = wParam;
+ break;
+
#ifdef INCLUDE_DEPRECATED_FEATURES
case SCI_SETFORE:
vs.styles[STYLE_DEFAULT].fore.desired = Colour(wParam);
diff --git a/src/Editor.h b/src/Editor.h
index 46fc52d94..16bcd4b22 100644
--- a/src/Editor.h
+++ b/src/Editor.h
@@ -116,6 +116,8 @@ protected: // ScintillaBase subclass needs access to much of Editor
int searchAnchor;
+ int displayPopupMenu;
+
#ifdef MACRO_SUPPORT
int recordingMacro;
#endif
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index 4a23a4f03..2e3143054 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -448,7 +448,9 @@ LRESULT ScintillaWin::WndProc(UINT iMessage, WPARAM wParam, LPARAM lParam) {
case WM_CONTEXTMENU:
#ifdef TOTAL_CONTROL
- ContextMenu(Point::FromLong(lParam));
+ if (displayPopupMenu) {
+ ContextMenu(Point::FromLong(lParam));
+ }
#endif
break;