users: Make FileChooser inside AvatarChooser transient to main window

Depends on
https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1253

Fixes #1677
This commit is contained in:
Felipe Borges 2022-03-03 15:42:23 +01:00
parent dc032c338d
commit dfb2fa31af
3 changed files with 7 additions and 5 deletions

View file

@ -43,6 +43,8 @@
struct _CcAvatarChooser {
GtkPopover parent;
GtkWidget *transient_for;
GtkWidget *crop_area;
GtkWidget *user_flowbox;
GtkWidget *flowbox;
@ -158,7 +160,7 @@ cc_avatar_chooser_select_file (CcAvatarChooser *self)
GtkFileFilter *filter;
GtkWindow *toplevel;
toplevel = (GtkWindow*) gtk_widget_get_native (GTK_WIDGET (self));
toplevel = (GtkWindow*) gtk_widget_get_native (GTK_WIDGET (self->transient_for));
chooser = gtk_file_chooser_dialog_new (_("Browse for more pictures"),
toplevel,
GTK_FILE_CHOOSER_ACTION_OPEN,
@ -348,13 +350,13 @@ setup_photo_popup (CcAvatarChooser *self)
}
CcAvatarChooser *
cc_avatar_chooser_new ()
cc_avatar_chooser_new (GtkWidget *transient_for)
{
CcAvatarChooser *self;
self = g_object_new (CC_TYPE_AVATAR_CHOOSER,
NULL);
self->transient_for = transient_for;
self->thumb_factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL);
setup_photo_popup (self);

View file

@ -31,7 +31,7 @@ G_DECLARE_FINAL_TYPE (CcAvatarChooser, cc_avatar_chooser, CC, AVATAR_CHOOSER, Gt
typedef struct _CcAvatarChooser CcAvatarChooser;
CcAvatarChooser *cc_avatar_chooser_new (void);
CcAvatarChooser *cc_avatar_chooser_new (GtkWidget *transient_for);
void cc_avatar_chooser_free (CcAvatarChooser *dialog);
void cc_avatar_chooser_set_user (CcAvatarChooser *dialog,
ActUser *user);

View file

@ -1384,7 +1384,7 @@ setup_main_window (CcUserPanel *self)
g_signal_connect_object (self->um, "notify::is-loaded", G_CALLBACK (users_loaded), self, G_CONNECT_SWAPPED);
}
self->avatar_chooser = cc_avatar_chooser_new ();
self->avatar_chooser = cc_avatar_chooser_new (GTK_WIDGET (self));
gtk_menu_button_set_popover (self->user_avatar_edit_button,
GTK_WIDGET (self->avatar_chooser));
}