mirror of
https://github.com/brl/mutter.git
synced 2025-07-23 01:51:38 +00:00
Optionally attach modal dialogs
Add a preference /apps/mutter/general/attach_modal_dialogs. When true, instead of having independent titlebars, modal dialogs appear attached to the titlebar of the parent window and are moved together with the parent window. https://bugzilla.gnome.org/show_bug.cgi?id=612726
This commit is contained in:
@ -5192,6 +5192,34 @@ prefs_changed_callback (MetaPreference pref,
|
||||
else
|
||||
disable_compositor (display);
|
||||
}
|
||||
else if (pref == META_PREF_ATTACH_MODAL_DIALOGS)
|
||||
{
|
||||
MetaDisplay *display = data;
|
||||
GSList *windows;
|
||||
GSList *tmp;
|
||||
|
||||
windows = meta_display_list_windows (display, META_LIST_DEFAULT);
|
||||
|
||||
for (tmp = windows; tmp != NULL; tmp = tmp->next)
|
||||
{
|
||||
MetaWindow *w = tmp->data;
|
||||
MetaWindow *parent = meta_window_get_transient_for (w);
|
||||
meta_window_recalc_features (w);
|
||||
|
||||
if (w->type == META_WINDOW_MODAL_DIALOG && parent && parent != w)
|
||||
{
|
||||
int x, y;
|
||||
/* Forcing a call to move_resize() does two things: first, it handles
|
||||
* resizing the dialog frame window to the correct size when we remove
|
||||
* or add the decorations. Second, it will take care of positioning the
|
||||
* dialog as "attached" to the parent when we turn the preference on
|
||||
* via the constrain_modal_dialog() constraint.
|
||||
**/
|
||||
meta_window_get_position (w, &x, &y);
|
||||
meta_window_move (w, FALSE, x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user