2017-02-08 22 views
1

kitchensinkにマウスの中央ボタンを使用して、キャンバスの空き領域をマウスでクリックしてマウスを動かしてみます。中マウスボタンでドラッグ選択を無効にする方法は?

選択矩形が表示されます。これを無効にするには?私はマウスの中ボタンをクリックして、以前のバージョンのファブリックのキャンバスパンにバインドしてドラッグしているからです。新しいバージョンにアップグレードすると、キャンバスは予期しない動作をします。


私はマウスダウンでcanvas.selectable = false;を行うことによってevent.button == 1場合はマウスを押したときに、キャンバス上の選択を無効にして、バックのmouseupイベントハンドラでこれをtrueに設定しようとしました。

これは機能しませんでした。

マウスの中ボタンをクリックしてドラッグして選択を無効にする方法はありますか?

答えて

1

Prasanth、あなたの問題は簡単です。あなたはタイプミスがあります。このように使用してみてください:ここで

canvas.selection = false; 

はあなたが試すことができますコードです:

canvas.on('mouse:down',function(e){ 
    canvas.selection = true; 
}); 
canvas.on('mouse:down',function(e){ 
    if(e.e.button == 1) { 
    canvas.selection = false; 
    }; 
}); 
+0

ohhh!私は古い文書に惑わされていたと思います。おかげでたくさん、良い観察:) – Prasanth

3

問題は生地が、最近はむしろ左以外のボタンにクリックしてください有効になっていることです。 ポイントは左が処理され、右が処理され、中がノーマルです。 中ボタンは左ボタンの流れに従うと思うのは、それが正しいものではないからです。

ここでは、バージョン1.7.3(現行のfeb 2017)のファブリックのmousedownハンドラ機能のスニペットです。

__onMouseDown: function (e) { 

     var target = this.findTarget(e); 

    // if right click just fire events 
    var isRightClick = 'which' in e ? e.which === 3 : e.button === 2; 
    if (isRightClick) { 
    if (this.fireRightClick) { 
     this._handleEvent(e, 'down', target ? target : null); 
    } 
    return; 
    } 

    ... continue normal flow ... 

です。これには、適切な修正が必要です。

提案されているようにカスタムイベントをポストするのはパッチですが、これはまったく起こりません。 (私はこの問題を解決しようとしているので、私はこの問題を解決するつもりです)

関連する問題