Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8351611

[macos] MouseEvent "isPopupTrigger" returns false when tapping with two fingers on a Mac OS trackpad

XMLWordPrintable

    • generic
    • os_x

      ADDITIONAL SYSTEM INFORMATION :
      Mac OS Sequoia 15.3.1, Java 17.0.4.1

      A DESCRIPTION OF THE PROBLEM :
      On a Mac OS M1 Laptop I place the focus inside a JTextArea and I tap on the trackpad with two fingers (which means right click, but just tap, not physically click on the trackpad).
      The generated mousePressed(MouseEvent e) callback has "e.isPopupTrigger()" false instead of true.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Add a mouse listener to a JTextArea, tap with two fingers on a Mac OS trackpad.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The generated mousePressed(MouseEvent e) callback should have "e.isPopupTrigger()" set to true.
      ACTUAL -
      The generated mousePressed(MouseEvent e) callback has "e.isPopupTrigger()" false.

      ---------- BEGIN SOURCE ----------
      public class ABC {

        /**
         * @param args
         */
        public static void main(String[] args) {
          JFrame fr = new JFrame();
          fr.setSize(500, 500);
          JTextArea jta = new JTextArea();
          jta.addMouseListener(new MouseListener() {
            
            @Override
            public void mouseReleased(MouseEvent e) {
             System.err.println("REL " + e.isPopupTrigger());
            }
            
            @Override
            public void mousePressed(MouseEvent e) {
              System.err.println("PRE " + e.isPopupTrigger());
            }
            
            @Override
            public void mouseExited(MouseEvent e) {
      // System.err.println("EX " + e);
            }
            
            @Override
            public void mouseEntered(MouseEvent e) {
      // System.err.println("ENTER " + e);
            }
            
            @Override
            public void mouseClicked(MouseEvent e) {
              System.err.println("CLICK " + e.isPopupTrigger());
            }
          });
          fr.getContentPane().add(jta, BorderLayout.CENTER);
          fr.setVisible(true);
        }

      }
      ---------- END SOURCE ----------

            honkar Harshitha Onkar
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: