From 96ebbe0ea45ba88bb11bf0c4a5225d2322908bfabd8759955c92b36d7a30ef5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Thu, 23 Jun 2016 08:27:17 +0000 Subject: [PATCH] Accepting request 403532 from home:Zaitor Doh :-) I forgot to sub this regression fix OBS-URL: https://build.opensuse.org/request/show/403532 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-software?expand=0&rev=87 --- gnome-software-fix-app-folders.patch | 131 +++++++++++++++++++++++++++ gnome-software.changes | 6 ++ gnome-software.spec | 3 + 3 files changed, 140 insertions(+) create mode 100644 gnome-software-fix-app-folders.patch diff --git a/gnome-software-fix-app-folders.patch b/gnome-software-fix-app-folders.patch new file mode 100644 index 0000000..ade57aa --- /dev/null +++ b/gnome-software-fix-app-folders.patch @@ -0,0 +1,131 @@ +From 53e8e0842f28533c1df3a1504191182a67e9c963 Mon Sep 17 00:00:00 2001 +From: Kalev Lember +Date: Tue, 7 Jun 2016 15:21:53 +0200 +Subject: app folder dialog: Make the dialog work again + +This commit makes the code match with the .ui file changes done in +commit 5fa5a35, fixing the add folder dialog to actually add things to +folders when clicking the 'Add' button. + +https://bugzilla.gnome.org/show_bug.cgi?id=764437 +--- + src/gs-app-folder-dialog.c | 32 +++++++++++++++++++------------- + 1 file changed, 19 insertions(+), 13 deletions(-) + +diff --git a/src/gs-app-folder-dialog.c b/src/gs-app-folder-dialog.c +index f6b3d76..563f4b4 100644 +--- a/src/gs-app-folder-dialog.c ++++ b/src/gs-app-folder-dialog.c +@@ -60,12 +60,6 @@ gs_app_folder_dialog_destroy (GtkWidget *widget) + } + + static void +-cancel_cb (GsAppFolderDialog *dialog) +-{ +- gtk_window_close (GTK_WINDOW (dialog)); +-} +- +-static void + apply_changes (GsAppFolderDialog *dialog) + { + const gchar *folder; +@@ -88,10 +82,23 @@ apply_changes (GsAppFolderDialog *dialog) + } + + static void +-done_cb (GsAppFolderDialog *dialog) ++response_cb (GtkDialog *dialog, ++ GtkResponseType response_type, ++ gpointer user_data) + { +- apply_changes (dialog); +- gtk_window_close (GTK_WINDOW (dialog)); ++ switch (response_type) { ++ case GTK_RESPONSE_APPLY: ++ apply_changes (GS_APP_FOLDER_DIALOG (dialog)); ++ gtk_window_close (GTK_WINDOW (dialog)); ++ break; ++ case GTK_RESPONSE_CANCEL: ++ gtk_window_close (GTK_WINDOW (dialog)); ++ break; ++ case GTK_RESPONSE_DELETE_EVENT: ++ break; ++ default: ++ g_assert_not_reached (); ++ } + } + + static GtkWidget *create_row (GsAppFolderDialog *dialog, const gchar *folder); +@@ -129,10 +136,9 @@ gs_app_folder_dialog_init (GsAppFolderDialog *dialog) + dialog->folders = gs_folders_get (); + gtk_widget_init_template (GTK_WIDGET (dialog)); + +- g_signal_connect_swapped (dialog->cancel_button, "clicked", +- G_CALLBACK (cancel_cb), dialog); +- g_signal_connect_swapped (dialog->done_button, "clicked", +- G_CALLBACK (done_cb), dialog); ++ g_signal_connect (dialog, "response", ++ G_CALLBACK (response_cb), ++ NULL); + dialog->rows = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); + + gtk_list_box_set_header_func (GTK_LIST_BOX (dialog->app_folder_list), +-- +cgit v0.12 + +From 81c67726cb9e3dd29c961cc857c6b5b43bf9bf45 Mon Sep 17 00:00:00 2001 +From: Kalev Lember +Date: Tue, 7 Jun 2016 15:25:40 +0200 +Subject: shell: Avoid destroying modal windows in the "response" signal + handler + +Other code may legitimately connect to the "response" signal handler as +well and if we destroy it in the handler, their callbacks are never +invoked. Instead, do our window tracking in the "unmap" signal handler. + +https://bugzilla.gnome.org/show_bug.cgi?id=764437 +--- + src/gs-shell.c | 15 +++++---------- + 1 file changed, 5 insertions(+), 10 deletions(-) + +diff --git a/src/gs-shell.c b/src/gs-shell.c +index 73319a8..d3afcdd 100644 +--- a/src/gs-shell.c ++++ b/src/gs-shell.c +@@ -89,17 +89,12 @@ enum { + + static guint signals [SIGNAL_LAST] = { 0 }; + +-/** +- * gs_shell_modal_dialog_present: +- **/ + static void +-gs_shell_modal_dialog_response_cb (GtkDialog *dialog, +- gint response_id, +- GsShell *shell) ++modal_dialog_unmapped_cb (GtkWidget *dialog, ++ GsShell *shell) + { + GsShellPrivate *priv = gs_shell_get_instance_private (shell); +- g_debug ("handling modal dialog response %i for %p", +- response_id, dialog); ++ g_debug ("modal dialog %p unmapped", dialog); + g_ptr_array_remove (priv->modal_dialogs, dialog); + } + +@@ -125,10 +120,10 @@ gs_shell_modal_dialog_present (GsShell *shell, GtkDialog *dialog) + + /* add to stack, transfer ownership to here */ + g_ptr_array_add (priv->modal_dialogs, dialog); ++ g_signal_connect (GTK_WIDGET (dialog), "unmap", ++ G_CALLBACK (modal_dialog_unmapped_cb), shell); + + /* present the new one */ +- g_signal_connect (dialog, "response", +- G_CALLBACK (gs_shell_modal_dialog_response_cb), shell); + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_present (GTK_WINDOW (dialog)); + } +-- +cgit v0.12 + diff --git a/gnome-software.changes b/gnome-software.changes index 95c0928..0cdeeb1 100644 --- a/gnome-software.changes +++ b/gnome-software.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jun 15 15:38:53 UTC 2016 - zaitor@opensuse.org + +- Add gnome-software-fix-app-folders.patch: Fix regression in + app-folders. Patch from upstream stable branch (boo#979570). + ------------------------------------------------------------------- Sat May 28 19:30:40 UTC 2016 - zaitor@opensuse.org diff --git a/gnome-software.spec b/gnome-software.spec index 21941bf..39ce025 100644 --- a/gnome-software.spec +++ b/gnome-software.spec @@ -29,6 +29,8 @@ Source: http://download.gnome.org/sources/gnome-software/3.20/%{name}-%{ Patch0: gnome-software-add-default-yast-appfolder.patch # PATCH-FIX-UPSTREAM gnome-software-icon-crash.patch boo#974806 mgorse@suse.com -- don't crash if unable to find a cached icon. Patch1: gnome-software-icon-crash.patch +# PATCH-FIX-UPSTREAM gnome-software-fix-app-folders.patch boo#979570 zaitor@opensuse.org -- Fix regression in app-folders, make them work again. +Patch2: gnome-software-fix-app-folders.patch BuildRequires: intltool >= 0.35.0 BuildRequires: suse-xsl-stylesheets BuildRequires: update-desktop-files @@ -61,6 +63,7 @@ AppStore like management of Applications for your GNOME Desktop. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build %configure \