diff options
-rw-r--r-- | doc/ScintillaDoc.html | 10 | ||||
-rw-r--r-- | gtk/ScintillaGTK.cxx | 20 | ||||
-rw-r--r-- | include/Scintilla.h | 1 | ||||
-rw-r--r-- | src/Editor.cxx | 6 | ||||
-rw-r--r-- | src/Editor.h | 2 | ||||
-rw-r--r-- | win32/ScintillaWin.cxx | 4 |
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; |