@@ -466,17 +466,20 @@ - (void) processEvent: (XEvent *) event
466466 deltaX = 0.0 ;
467467 deltaY = 0.0 ;
468468
469+ /* -[NSEvent buttonNumber] uses the AppKit numbering, where the left
470+ * button is 0, the right button is 1 and the middle button is 2,
471+ * unlike the X11 numbering held in generic.lMouse and friends. */
469472 if (xEvent.xbutton .button == generic.lMouse )
470473 {
471474 if (swapMouseButtons)
472475 {
473476 eventType = NSRightMouseDown ;
474- buttonNumber = generic. rMouse ;
477+ buttonNumber = 1 ;
475478 }
476479 else
477480 {
478481 eventType = NSLeftMouseDown ;
479- buttonNumber = generic. lMouse ;
482+ buttonNumber = 0 ;
480483 }
481484 }
482485 else if (xEvent.xbutton .button == generic.rMouse
@@ -485,19 +488,19 @@ - (void) processEvent: (XEvent *) event
485488 if (swapMouseButtons)
486489 {
487490 eventType = NSLeftMouseDown ;
488- buttonNumber = generic. lMouse ;
491+ buttonNumber = 0 ;
489492 }
490493 else
491494 {
492495 eventType = NSRightMouseDown ;
493- buttonNumber = generic. rMouse ;
496+ buttonNumber = 1 ;
494497 }
495498 }
496499 else if (xEvent.xbutton .button == generic.mMouse
497500 && generic.mMouse != 0 )
498501 {
499502 eventType = NSOtherMouseDown ;
500- buttonNumber = generic. mMouse ;
503+ buttonNumber = 2 ;
501504 }
502505 else if (xEvent.xbutton .button == generic.upMouse
503506 && generic.upMouse != 0 )
@@ -579,7 +582,7 @@ - (void) processEvent: (XEvent *) event
579582 eventNumber: xEvent.xbutton.serial
580583 clickCount: clickCount
581584 pressure: 1.0
582- buttonNumber: buttonNumber /* FIXME */
585+ buttonNumber: buttonNumber
583586 deltaX: deltaX
584587 deltaY: deltaY
585588 deltaZ: 0 .];
@@ -594,12 +597,12 @@ - (void) processEvent: (XEvent *) event
594597 if (swapMouseButtons)
595598 {
596599 eventType = NSRightMouseUp ;
597- buttonNumber = generic. rMouse ;
600+ buttonNumber = 1 ;
598601 }
599602 else
600603 {
601604 eventType = NSLeftMouseUp ;
602- buttonNumber = generic. lMouse ;
605+ buttonNumber = 0 ;
603606 }
604607 }
605608 else if (xEvent.xbutton .button == generic.rMouse
@@ -608,19 +611,19 @@ - (void) processEvent: (XEvent *) event
608611 if (swapMouseButtons)
609612 {
610613 eventType = NSLeftMouseUp ;
611- buttonNumber = generic. lMouse ;
614+ buttonNumber = 0 ;
612615 }
613616 else
614617 {
615618 eventType = NSRightMouseUp ;
616- buttonNumber = generic. rMouse ;
619+ buttonNumber = 1 ;
617620 }
618621 }
619622 else if (xEvent.xbutton .button == generic.mMouse
620623 && generic.mMouse != 0 )
621624 {
622625 eventType = NSOtherMouseUp ;
623- buttonNumber = generic. mMouse ;
626+ buttonNumber = 2 ;
624627 }
625628 else
626629 {
@@ -652,7 +655,7 @@ - (void) processEvent: (XEvent *) event
652655 eventNumber: xEvent.xbutton.serial
653656 clickCount: clickCount
654657 pressure: 1.0
655- buttonNumber: buttonNumber /* FIXMME */
658+ buttonNumber: buttonNumber
656659 deltaX: 0.0
657660 deltaY: 0.0
658661 deltaZ: 0.0 ];
@@ -1539,18 +1542,22 @@ - (void) processEvent: (XEvent *) event
15391542 if (state & generic.lMouseMask )
15401543 {
15411544 eventType = NSLeftMouseDragged ;
1545+ buttonNumber = 0 ;
15421546 }
15431547 else if (state & generic.rMouseMask )
15441548 {
15451549 eventType = NSRightMouseDragged ;
1550+ buttonNumber = 1 ;
15461551 }
15471552 else if (state & generic.mMouseMask )
15481553 {
15491554 eventType = NSOtherMouseDragged ;
1555+ buttonNumber = 2 ;
15501556 }
15511557 else
15521558 {
15531559 eventType = NSMouseMoved ;
1560+ buttonNumber = 0 ;
15541561 }
15551562
15561563 eventFlags = process_modifier_flags (state);
@@ -1579,7 +1586,7 @@ - (void) processEvent: (XEvent *) event
15791586 eventNumber: xEvent.xbutton.serial
15801587 clickCount: clickCount
15811588 pressure: 1.0
1582- buttonNumber: 0 /* FIXME */
1589+ buttonNumber: buttonNumber
15831590 deltaX: deltaX
15841591 deltaY: deltaY
15851592 deltaZ: 0 ];
0 commit comments