diff --git a/src/core/window.c b/src/core/window.c index c11720b08..93422aa1a 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -198,12 +198,18 @@ prefs_changed_callback (MetaPreference pref, { MetaWindow *window = data; - if (pref != META_PREF_WORKSPACES_ONLY_ON_PRIMARY) - return; - - meta_window_update_on_all_workspaces (window); - - meta_window_queue (window, META_QUEUE_CALC_SHOWING); + if (pref == META_PREF_WORKSPACES_ONLY_ON_PRIMARY) + { + meta_window_update_on_all_workspaces (window); + meta_window_queue (window, META_QUEUE_CALC_SHOWING); + } + else if (pref == META_PREF_ATTACH_MODAL_DIALOGS && + window->type == META_WINDOW_MODAL_DIALOG) + { + window->attached = meta_window_should_attach_to_parent (window); + recalc_window_features (window); + meta_window_queue (window, META_QUEUE_MOVE_RESIZE); + } } static void