Skip to content

Intercepterタブでもsendのショートカットが効いてしまう #41

@prprhyt

Description

@prprhyt

再現方法

macOS

  1. 予め適当なパケットをresenderに送る
  2. IntercepterをONにして適当なパケットを止める
  3. IntercepterタブのRawタブのテキスト領域にフォーカスする
  4. その状態でショートカットcommand+sを押す
  5. Historyタブに行くと余計に1つパケットが送信されている

原因

おそらく、RawTextPane.javaにあるショートカットが実行されてしまっている。
RawTextPane.javaは少なくともHistoryタブとIntercepterで使われている。
現状ではRawTextPaneからは呼び出し元を知る術がないので難しいが、
何らかの方法で呼び出し元がHistoryかそれ以外かが識別できれば対策できそうです。

send.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.META_MASK));
send.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
try {
JButton parentSend = getParentSend();
if (parentSend != null) {
parentSend.doClick();
} else {
Packet packet = GUIPacket.getInstance().getPacket();
ResendController.getInstance().resend(packet.getOneShotPacket(getData()));
packet.setSentData(getData());
packet.setResend();
Packets.getInstance().update(packet);
GUIHistory.getInstance().updateRequestOne(GUIHistory.getInstance().getSelectedPacketId());
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions