このページでは、Inkscapeのレイヤを管理する画面「レイヤとオブジェクトダイアログ」の上で構成要素をクリックしたときの動きについてメモしておきたいと思います。

(2025.05.16更新)
というのも、バージョン1.4からバージョン1.4.2(バグ修正版)へのアップデートによって、レイヤとオブジェクトダイアログ上の構成要素(オブジェクトやオブジェクトグループ)をクリックしたときの動作が修正されているとリリースノートには書かれているのですが、読んだだけではそもそも何の問題があったのかを今一つ理解できないので、何がどう修正されたのかも分かっていないのです。
そこで、バージョン1.4とバージョン1.4.2の両方で同じ操作をしたときにどんな違いがあるのかを調べることにしました。
次のような構造のレイヤ/オブジェクトグループを作って、いろいろとクリックしてみて、何が起こるのか観察してみました。

すると、例えば次のような違いがありました。バージョン1.4ではグループをクリックするとそのグループが濃い色でハイライト表示されます。

これと同じことをバージョン1.4.2ですると、グループが濃い色でハイライト表示されると同時に、グループ内のメンバも薄い色でハイライト表示されます。

どういうことかというと、レイヤとオブジェクトダイアログ上のレイヤやオブジェクトグループには、「アクティブである」ハイライト表示と「選択されている」ハイライト表示の2種類があって、バージョン1.4ではその2種類のハイライト表示がうまく動いていなかったようなのです。
以下、どんな手順でハイライト表示したときに、どんなことが起こっているのかを(バージョン1.4と1.4.2に違いがある場合も含めて)まとめてみたいと思います。
- オブジェクトグループを1回クリックすると選択されている状態になる(濃いハイライト表示)。ver1.4.2では同時にそのグループ内のオブジェクトもアクティブになる(薄いハイライト表示)。グループ内のオブジェクトはアクティブなだけで選択されている状態ではないので、グループから取り出したりすることはできない。
- オブジェクトグループをもう1回クリックするとアクティブ(そのグループに「入っている」状態)になり(薄いハイライト表示)、同時にそのグループ内のオブジェクトはアクティブではなくなる。そのオブジェクトグループ自体を削除したり階層を移動したりグループ内のオブジェクト等を全選択したりすることはできても、グループ内オブジェクトを対象とした操作(グループ解除など)はできない。
- オブジェクトをクリックすると選択されている状態になり、同時にそのオブジェクトが属しているレイヤ(またはオブジェクトグループ)もアクティブになる(薄いハイライト表示)。
- レイヤを1回クリックするとアクティブ(現在のレイヤ)になり(薄いハイライト表示)、同時にそのレイヤ内のオブジェクトはアクティブではなくなる。そのレイヤ自体を削除したり階層を移動したりレイヤ内のオブジェクト等全選択したりすることはできても、レイヤ内オブジェクトを対象とした操作(他のレイヤへ移動など)はできない。
- レイヤをもう1回クリックすると選択されている状態になる(濃いハイライト表示)。ver1.4.2では同時にそのレイヤ内のオブジェクトもアクティブになる(薄いハイライト表示)。レイヤ内のオブジェクトはアクティブなだけで選択されている状態ではないので、レイヤ内オブジェクトを対象とした操作(他のレイヤへ移動など)はできない。
・・・ということなんですが、思った以上に複雑で、やっぱりよく分かりません。
例えば、オブジェクトグループがアクティブである状態というのは、そのオブジェクトグループに「入っている」状態なのかと思いきや、アクティブだけど入ってない状態もありうるので、相当にややこしいです。
また、オブジェクトグループはクリックするたびに「選択→アクティブ→」と切り替わりますが、レイヤは順番が1つズレていてクリックするたびに「アクティブ→選択→」と切り替わります。なぜそのような違いが必要なのかも分かっていません。
Inkscapeの開発者のみなさんは「アクティブである」という状態と「選択されている」という状態を区別すべきだと考えているようなのですが、その2つの状態にどんな違いがあるのかを常に覚えておくのは難しそうなので、結局は実際にやってみて確認しながら使っていくということになりそうです。