Blob Blame History Raw
From ac799274bd9ac1f3cb24624853ad35ee5b860f62 Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@redhat.com>
Date: Fri, 25 Jun 2010 13:53:04 +0200
Subject: [PATCH] patch: combo-popup

Squashed commit of the following:

commit 0d1a4fd3c9bdf86ab71951c63bdf6915b8befd05
Author: Michael Natterer <mitch@gimp.org>
Date:   Thu Jun 24 21:56:41 2010 +0200

    Bug 622608 - GIMP crashes when clicking any scroll bar from combo boxes

    Don't cancel the popup in grab_notify() if the popup's grab was
    shadowed by one of the widgets in the popup, like the scrollbar.
    (cherry picked from commit 991210c0f94ed8e88eab7ebf19438bad85931930)
---
 app/widgets/gimpcontainerpopup.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/app/widgets/gimpcontainerpopup.c b/app/widgets/gimpcontainerpopup.c
index 50624cc..40cdfce 100644
--- a/app/widgets/gimpcontainerpopup.c
+++ b/app/widgets/gimpcontainerpopup.c
@@ -181,8 +181,14 @@ static void
 gimp_container_popup_grab_notify (GtkWidget *widget,
                                   gboolean   was_grabbed)
 {
-  if (! was_grabbed)
-    g_signal_emit (widget, popup_signals[CANCEL], 0);
+  if (was_grabbed)
+    return;
+
+  /* ignore grabs on one of our children, like the scrollbar */
+  if (gtk_widget_is_ancestor (gtk_grab_get_current (), widget))
+    return;
+
+  g_signal_emit (widget, popup_signals[CANCEL], 0);
 }
 
 static gboolean
-- 
1.7.0.1