summaryrefslogtreecommitdiff
path: root/src/core/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/window.c')
-rw-r--r--src/core/window.c18
1 files changed, 12 insertions, 6 deletions
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