閉じるボタンとタブ名が重なって表示される

  1. Kuroさん、こんにちは。

    閉じるボタンとタブ名が重なって表示され、閉じるボタンが見づらくなっていたため投稿しました。
    再現方法は下記の通りです。

    まずは、オプションダイアログの [タブとウィンドウ] カテゴリを開き、[閉じるボタン] オプションの [アクティブなタブの上] または [すべてのタブの上] のいずれかを選択します。
    この状態で [タブの幅] オプションの [指定した幅に固定する] を選択すると、閉じるボタンとタブ名が重なって表示されます。
    https://imgur.com/gallery/mery-160px-sZ3Bx4p

    なお、[タブの幅] オプションの [指定した幅より長い場合は切り詰める] を選択した場合は、閉じるボタンとタブ名は重なりません。
    それで、上記で閉じるボタンとタブ名が重なって表示されるのは仕様でしょうか?

    一応、下記フォーラムではTN24さんが「閉じるボタンも見えにくくなります」と投稿していますが、それに対しての回答がなかったので仕様かどうかが分かりませんでした。
    https://www.haijin-boys.com/discussions/6327

    【環境情報】
    Mery: 3.7.5 (x64)
    Onigmo: 6.2.0
    C/Migemo: 1.3
    Tidy: 5.8.0
    Hunspell: 1.7.1
    アウトライン: 3.2.1 (Outline.dll)
    OS: Windows 11 (Version 23H2, OS Build 22631.4037, 64-bit Edition)

     |  MSY-07  |  返信
  2. こんばんは。ご報告ありがとうございます。

    > それで、上記で閉じるボタンとタブ名が重なって表示されるのは仕様でしょうか?

    はい、残念ながらこれは Windows 標準コントロールの仕様です。

    同じ Windows 標準コントロールを使用していると思われる EmEditor さんでも同様の表示となっており、この部分に対応するのは非常に難しいです。

    というのも、Mery は Windows XP から 11 まで複数の OS に対応しているため、Windows 標準コントロールを使用せずに閉じるボタンの背景を塗りつぶすなどのカスタマイズを行うと、古い OS で使った場合に違和感が生じてしまいます。

    また、Windows はユーザーがテーマをカスタマイズでき、それに合わせてタブのデザインや色も変わります。

    閉じるボタンを OS の描画に任せず、たとえばグレーで塗りつぶすと、OS のテーマによっては浮いた感じになってしまう可能性があります。

    一応、Windows 10 以降をお使いの場合、[オプション] で [ダーク] テーマを選択するか、[タブとウィンドウ] カテゴリの [アクセントカラーを使用する] をオンにすると、独自描画のタブになり、アクティブなタブの閉じるボタンの背景が塗りつぶされるようになります。

    ただし、アクティブではないタブは、タブの内容ができるだけ見えた方が良いと考え、塗りつぶしは行っておりません。

    仕様上の制限事項ということで、ご了承ください。

     |  Kuro  |  返信
  3. こんにちは、ご返信ありがとうございます。

    > はい、残念ながらこれは Windows 標準コントロールの仕様です。
    >
    > 同じ Windows 標準コントロールを使用していると思われる EmEditor さんでも同様の表示となっており、この部分に対応するのは非常に難しいです。
    >
    > というのも、Mery は Windows XP から 11 まで複数の OS に対応しているため、Windows 標準コントロールを使用せずに閉じるボタンの背景を塗りつぶすなどのカスタマイズを行うと、古い OS で使った場合に違和感が生じてしまいます。

    Windowsの仕様ということですね。
    承知しました。

     |  MSY-07  |  返信
  4. ご返信ありがとうございます。

    > 閉じるボタンを OS の描画に任せず、たとえばグレーで塗りつぶすと、OS のテーマによっては浮いた感じになってしまう可能性があります。

    その後、何か良い方法がないか考えていたのですが、ボタンの背景を塗りつぶさずに (つまり、OS のテーマに影響されずに)、タブの文字列と干渉しないようにするアイデアを思いつきました。

    ただ、この方法が使えるのは独自描画の場合だけです。

    お使いの設定では、おそらく [ライト] テーマで [アクセント カラーを使用する] がオフになっているのではないかと思います。

    この設定だと、独自描画が使えず、描画はすべて Windows 任せになるので、タブの文字列との干渉を避けるようなカスタマイズはできません。

    [オプション] で [ダーク] テーマを選んだり、[ライト] テーマでも [アクセント カラーを使用する] をオンにしたりすれば、描画を Mery 側で制御できるようになります。

    この設定の場合に限られてしまいますが、閉じるボタンとタブの文字列が重ならないようにする仕組みを用意できるかもしれません。

    ちょっと制限がありますが、ご理解いただけると嬉しいです。

     |  Kuro  |  返信
  5. こんにちは、ご返信ありがとうございます。

    > お使いの設定では、おそらく [ライト] テーマで [アクセント カラーを使用する] がオフになっているのではないかと思います。
    >
    > この設定だと、独自描画が使えず、描画はすべて Windows 任せになるので、タブの文字列との干渉を避けるようなカスタマイズはできません。

    [アプリのテーマ] オプションは [システム設定を使用する] を設定していますが、Windowsのアプリモードを [ライト] テーマに設定しているので、実質的には [ライト] テーマを使用していることになります。
    また、[アクセント カラーを使用する] もオフにしています。

    > [オプション] で [ダーク] テーマを選んだり、[ライト] テーマでも [アクセント カラーを使用する] をオンにしたりすれば、描画を Mery 側で制御できるようになります。
    >
    > この設定の場合に限られてしまいますが、閉じるボタンとタブの文字列が重ならないようにする仕組みを用意できるかもしれません。
    >
    > ちょっと制限がありますが、ご理解いただけると嬉しいです。

    上記の設定にすることで、閉じるボタンとタブの文字列が重ならないのであれば嬉しいですね。
    その方向でよろしくお願いします。

     |  MSY-07  |  返信
  6. Kuroさん、Mery Ver 3.7.6のリリースお疲れさまでした。

    Ver 3.7.6を試しましたが、[タブの幅] を [指定した幅に固定する] 設定時、以下のいずれかの設定が有効な場合、タブ内の文字列と閉じるボタンが重ならないことを確認しました。

    ・[アプリのテーマ] で [ダーク] を選択
    ・[アクティブなタブを強調表示する] をオン
    ・[アクセント カラーを使用する] をオン

    今までは、上記の設定をしても(今回追加された [アクティブなタブを強調表示する] は除く)、アクティブではないタブでは閉じるボタンの背景は塗りつぶされていなかったので、閉じるボタンが見づらかったです。

    ですが、今回のバージョンからは、上記の設定をするとアクティブではないタブでも閉じるボタンの背景が塗りつぶされるようになったので、以前より見やすくなりました。

    ご対応いただきありがとうございます。

     |  MSY-07  |  返信
  7. ご確認いただき、ありがとうございます。

    > ですが、今回のバージョンからは、上記の設定をするとアクティブではないタブでも閉じるボタンの背景が塗りつぶされるようになったので、以前より見やすくなりました。

    実は、思っていたよりも実装が難しかったので、そう言ってもらえると嬉しいです。

    ただ、ファイル名が表示領域に収まりきらないときに「...」が末尾に付いてしまう仕様で、「その分スペースがもったいないんじゃ?」ってツッコミが来るかも、とちょっと心配してました。

    それに、「...」が付くなら、末尾じゃなくてファイル名の真ん中あたりを省略できたら、拡張子や更新マーク「*」も見えて便利だなぁと思ったのですが、技術的にちょっと無理でした。

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