Hello community,

here is the log from the commit of package gnome-software for openSUSE:Factory 
checked in at 2016-06-25 02:22:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-software (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-software.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-software"

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-software/gnome-software.changes    
2016-05-31 12:25:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-software.new/gnome-software.changes       
2016-06-25 02:23:14.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Jun 15 15:38:53 UTC 2016 - [email protected]
+
+- Add gnome-software-fix-app-folders.patch: Fix regression in
+  app-folders. Patch from upstream stable branch (boo#979570).
+
+-------------------------------------------------------------------

New:
----
  gnome-software-fix-app-folders.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnome-software.spec ++++++
--- /var/tmp/diff_new_pack.hAYNJz/_old  2016-06-25 02:23:15.000000000 +0200
+++ /var/tmp/diff_new_pack.hAYNJz/_new  2016-06-25 02:23:15.000000000 +0200
@@ -29,6 +29,8 @@
 Patch0:         gnome-software-add-default-yast-appfolder.patch
 # PATCH-FIX-UPSTREAM gnome-software-icon-crash.patch boo#974806 
[email protected] -- 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 
[email protected] -- 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 @@
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %build
 %configure \

++++++ gnome-software-fix-app-folders.patch ++++++
>From 53e8e0842f28533c1df3a1504191182a67e9c963 Mon Sep 17 00:00:00 2001
From: Kalev Lember <[email protected]>
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 <[email protected]>
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


Reply via email to