Paste from X11 should only be enabled when pasting onto editor's editing area.

This commit is contained in:
Maxim Shafirov
2005-02-03 17:02:37 +03:00
parent e7d64e8310
commit 0dd85f249e
@@ -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 {