Ubuntu日本語フォーラム
ログインしていません。
GNOMEデスクトップ環境において、アプリケーションによってはダイアログウィンドウを移動しようとするとメインウィンドウも一緒に動きます。
この挙動はGeditでAboutのダイアログを表示させ、それを移動させることで簡単に確認出来ます。
アプリケーションの内部的な仕組みはよく分からないですが、このようなダイアログウィンドウはモーダルダイアログと呼ばれるようです。
(余談ですが、モーダルダイアログが開いている状態では、メインウィンドウ側は操作を受け付けない状態となる仕組みのようです。
なお、アプリケーションによってはダイアログを移動してもメインウィンドウは移動せずにそのままのものもありますし、メインウィンドウで操作を受け付けるものもあります)
さて、このモーダルダイアログの移動時の挙動ですが、時として煩わしい状況になることがあります。
モーダルダイアログを移動させようとするとメインウィンドウも一緒に動いてしまうため、モーダルダイアログが開いたままだと背面にあるメインウィンドウの情報を確認することが出来ません。またメインウィンドウを最大表示させている状態でモーダルダイアログを移動しようとすると、メインウィンドウが通常表示サイズに切り替わってしまいます。
煩わしい例として、LibreOfficeのCalcでグラフ作成をする場合について触れておきます。
Calcでグラフ作成を選ぶとシート上にグラフが作成され、グラフ作成のモーダルダイアログが表示されます。モーダルダイアログでグラフの種類やデータ配列を選択すると操作情報がシート上のグラフに即反映されるため、どんなグラフが出来るか分かりやすくなっています。ただモーダルダイアログが表示されると大抵はグラフ上にダイアログが表示されてしまうため、背面のグラフを見ながら操作することが出来なくなってしまいます。モーダルダイアログを移動してもメインウィンドウも一緒に動くためにやはりグラフを見ることは出来ません。こうなるとダイアログを閉じるまで出来上がるグラフを確認することが出来なくなります。
このように状況によってはモーダルダイアログの挙動はややめんどうになるのですが、この挙動は変更することが出来ます。
方法としてはGNOME Tweaksを用います。
GNOME Tweaksの「ウィンドウ」項目にある「モーダルダイアログを親ウィンドウに結び付ける」という項目で挙動のON, OFFの切り替えが行なえます。
OFFにするとモーダルダイアログのみの移動が出来るようになります。ウィンドウを最大表示している場合も、モーダルダイアログを移動しても最大表示のままです。なおメインウィンドウ側で操作を受け付けないのはそのままです。
dconf Editor, gsettingsからでもこの挙動を切り替えることが出来るようですが、GNOMEのバージョンが上がった場合に設定項目が変わることがあるようなのでここでは特に触れません。
今回、確認に用いた環境は
Ubuntu 18.04.1 LTS
GNOMEデスクトップ環境(Ubuntu標準のもの)
GNOME Tweaks 3.28.1
です。
参考にしたページは以下の通り。
How do I move child windows without moving or minimizing parent in Ubuntu 17.10 with GNOME 3? - Ask Ubuntu
オフライン
ちょっと気になったのでくだらないことを書かせてください。
モーダルダイアログとは確か下にあるアプリのウインドウの操作を受けつけるダイアログのことで
対義語はモードレスダイアログです。こちらは下にあるウインドウが操作を受けつけるものです。
モーダルの例は例えばLIBREOFFICEのABOUTのダイアログ
モードレスの例は例えばLIBREOFFICEの検索と置換です。(モードレスの例はいつもこれがでる)
これを習った時は私のプログラミング意識がまだたしかだったのではっきり覚えてます。
だから余談で書いてある部分が本筋でついて動くかどうかはモーダルとは違う話だ。
という書かなくてもいいかもしれない余談を書いてしまった。
気分を悪くしたらすみません。
オフライン
すみません書き間違えました。
全文書き直します
ちょっと気になったのでくだらないことを書かせてください。
モーダルダイアログとは確かアプリの下にあるウインドウが操作を受けつけないダイアログのことで
対義語はモードレスダイアログです。こちらは下にあるウインドウが操作を受けつけるものです。
モーダルの例は例えばLIBREOFFICEのABOUTのダイアログ
モードレスの例は例えばLIBREOFFICEの検索と置換です。(モードレスの例はいつもこれがでる)
これを習った時は私のプログラミング意識がまだたしかだったのではっきり覚えてます。
だから余談で書いてある部分が本筋でついて動くかどうかはモーダルとは違う話だ。
という書かなくてもいいかもしれない余談を書いてしまった。
気分を悪くしたらすみません。
オフライン