From 0dd85f249e21d92adf56eaa3ac984502d9c5ae8a Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Thu, 3 Feb 2005 17:02:37 +0300 Subject: [PATCH] Paste from X11 should only be enabled when pasting onto editor's editing area. --- .../editor/actions/PasteFromX11Action.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/source/com/intellij/openapi/editor/actions/PasteFromX11Action.java b/source/com/intellij/openapi/editor/actions/PasteFromX11Action.java index 24630dfb29b2..ca39f7ff149a 100644 --- a/source/com/intellij/openapi/editor/actions/PasteFromX11Action.java +++ b/source/com/intellij/openapi/editor/actions/PasteFromX11Action.java @@ -5,13 +5,18 @@ import com.intellij.openapi.editor.actionSystem.EditorActionHandler; import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.EditorModificationUtil; +import com.intellij.openapi.editor.event.EditorMouseEventArea; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.Presentation; +import com.intellij.openapi.actionSystem.DataConstants; import com.intellij.openapi.util.SystemInfo; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.Transferable; +import java.awt.event.MouseEvent; +import java.awt.event.InputEvent; /** * Author: msk @@ -22,8 +27,19 @@ public class PasteFromX11Action extends EditorAction { } public void update(AnActionEvent e) { - super.update(e); - e.getPresentation().setEnabled(SystemInfo.isUnix); + Presentation presentation = e.getPresentation(); + DataContext dataContext = e.getDataContext(); + Editor editor = (Editor) dataContext.getData(DataConstants.EDITOR); + if (editor == null) { + presentation.setEnabled(false); + } else { + boolean rightPlace = true; + final InputEvent inputEvent = e.getInputEvent(); + if (inputEvent instanceof MouseEvent) { + rightPlace = editor.getMouseEventArea((MouseEvent)inputEvent) == EditorMouseEventArea.EDITING_AREA; + } + presentation.setEnabled(SystemInfo.isUnix && rightPlace); + } } public static class Handler extends EditorWriteActionHandler {