「マーカーバー」の中クリックで「削除」したい。

  1. タブバーの中クリック」が「閉じる」なのであれば、
    「マーカーバーの中クリック」で「削除」できると直感的!と思いました。
    (個人の感想です)

    そういった設定は可能でしょうか?

     |  tak  |  返信
  2. 現時点では、そのような設定はありません。

    タブを中ボタンクリックで閉じるのはよく見かけますが、項目を中ボタンクリックで削除するのはあまり一般的ではないかと思います。

    たとえば、Edge や Chrome では中ボタンでタブを閉じることができますが、お気に入りバーの項目を中ボタンクリックしても削除はされませんよね。

    こういった操作は個人向けのカスタマイズにあたるため、現時点では Mery 側での対応予定はありませんが、もしご要望が多ければ検討してみたいと思います。

    ちなみに、AutoHotkey や X-Mouse Button Control といったフリーソフトを使えば、マウスの中ボタンに好きな操作を割り当てることができます。

    AutoHotkey はスクリプトで細かく設定できて自由度が高くて便利ですが、少しスクリプトの知識が必要になる点が難点かもしれませんね。

    X-Mouse Button Control は GUI で簡単に設定できるので、初心者の方でも扱いやすいです。ただ、AutoHotkey ほど細かい動作を指定するのは少し難しいところがあります。

    たとえば、Mery で中ボタンを使ってマーカーを削除したい場合、中ボタンクリックで [右クリック] と [L] を送信するように設定すれば、どちらのアプリでも実現できると思います。

    こうしたアプリを使えば、Mery だけでなく、さまざまなアプリで自由に操作を割り当てることができるので便利ですよ。

     |  Kuro  |  返信
  3. > こういった操作は個人向けのカスタマイズにあたるため、現時点では Mery 側での対応予定はありませんが、もしご要望が多ければ検討してみたいと思います。
    私もマーカーの削除は多用するため、中ボタンクリックで削除できると便利かなと思いました。

    AutoHotKeyで下記のスクリプトを組んでみましたが、マーカーバーの何もないところで実行すると「ツール バーを固定する(L)」になってしまい、ちゃんと対応するのは難しそうです。

    #IfWinActive,ahk_exe Mery.exe
    	MButton::
    	MouseGetPos, , , , control
    	if control = TToolBarEx1
    		Send,{RButton}L
    	return
    #IfWinActive
     |  Noah  |  返信
  4. ご意見ありがとうございます。

    > 私もマーカーの削除は多用するため、中ボタンクリックで削除できると便利かなと思いました。

    確かに、中ボタンでサクッと削除できるのは便利な場面もあるかもしれませんね。

    ただ、中ボタンはタブを閉じる操作にも使われているため、誤ってクリックして大事なマーカーが消えてしまう…なんてことが起きると、ちょっと怖い気もします。

    マーカー機能は簡単に追加・削除できるのが魅力ですが、正規表現やタイトル設定、グループ化などで細かく作り込むことも可能です。

    そのため、誤クリックで「あれ、消えちゃった…!」となると、結構ショックを受ける場面も出てきそうですからね。

    かといって、「削除します。よろしいですか? [はい] [いいえ]」のようなダイアログが毎回表示されるよりは、右クリック メニューから [削除] を選ぶ方がスムーズかな、と思いますし…。

    標準機能として取り入れるのは、便利さと安全性のバランスを考えると、なかなか難しいところがありそうです。

    > AutoHotKeyで下記のスクリプトを組んでみましたが、マーカーバーの何もないところで実行すると「ツール バーを固定する(L)」になってしまい、ちゃんと対応するのは難しそうです。

    なるほど、右クリックと L キーを送信する方法でいけるかなと思っていたのですが、そのような問題があったのですね。

    マウスがツールボタンの上にあるかどうかをチェックできれば良いのですが、別プロセスからボタンの状態を取得するのはちょっと難しそうです。

    メニュー項目をチェックする方法なら、こんな感じで比較的簡単にできるかもです。

    #IfWinActive, ahk_exe Mery.exe
    	MButton::
    	MouseGetPos, , , , control
    	; control が "TToolBarEx1" でない場合は、通常の中ボタン動作
    	if (control != "TToolBarEx1") {
    		Send, {MButton}
    		return
    	}
    
    	; 右クリックを送信し、メニュー表示待機
    	Send, {RButton}
    	Sleep, 100 ; 必要に応じて調整
    
    	; メニューウィンドウの ID を取得
    	WinGet, id, ID, ahk_class #32768
    
    	; メニューハンドルを取得 (MN_GETHMENU)
    	SendMessage, 0x1E1, 0, 0, , ahk_id %id%
    	if (ErrorLevel = 0) {
    		return
    	}
    
    	; 一番上のメニュー項目のテキストを取得
    	VarSetCapacity(text, 64)
    	DllCall("GetMenuString", "ptr", ErrorLevel, "int", 0, "str", text, "int", 64, "uint", 0x400)
    
    	; メニュー項目に "&E" が含まれるかを確認し、含む場合は "L" を送信
    	if (InStr(text, "&E")) {
    		Send, L
    	} else {
    		Send, {Esc} ; 含まない場合は Esc でメニューを閉じる
    	}
    	return
    #IfWinActive
     |  Kuro  |  返信
  5. > ただ、中ボタンはタブを閉じる操作にも使われているため、誤ってクリックして大事なマーカーが消えてしまう…なんてことが起きると、ちょっと怖い気もします。
    これはあるかもしれないですね。
    マーカーのロック機能や削除したマーカーを復元する機能(ブラウザの閉じたタブを開きなおすみたいな機能)があれば話は別ですが、そこまですると機能過剰な気もしますし。

    > メニュー項目をチェックする方法なら、こんな感じで比較的簡単にできるかもです。
    おぉ、すごい。AutoHotKeyってメニューのテキストまで判別できるんですね。
    外部ツールでどうにかできるなら、なおさらコストかけてまで実装する必要は薄いですね。

     |  Noah  |  返信
スポンサーリンク