From 04c546cc97483bb87e79184c3e78060fdf296e7d Mon Sep 17 00:00:00 2001
From: Ben Pfaff <blp@cs.stanford.edu>
Date: Sun, 2 Sep 2012 22:21:09 -0700
Subject: [PATCH] psppire-cell-renderer: Fix behavior of repeated clicks on a
 button.

I'm not sure why I thought this code was necessary.  Removing it
fixes the problem, which John Darrington reported as:

1. Create or load a dataset with one or more variables.
2. Switch to the variable sheet.
3. Click on one of the in-cell buttons (for example) Value Labels.
4. After the dialog box appears, cancel it with the cancel button.
5. The dialog closes, and the button which invoked it, now has the
focus.  However clicking on that button again refuses to bring the
dialog back.  One has to move off the button and onto the cell
background.
---
 src/ui/gui/psppire-cell-renderer-button.c | 22 ----------------------
 1 file changed, 22 deletions(-)

diff --git a/src/ui/gui/psppire-cell-renderer-button.c b/src/ui/gui/psppire-cell-renderer-button.c
index 978908e01f..8b9e9076dc 100644
--- a/src/ui/gui/psppire-cell-renderer-button.c
+++ b/src/ui/gui/psppire-cell-renderer-button.c
@@ -292,25 +292,6 @@ psppire_cell_renderer_button_clicked (GtkButton *button,
   g_free (path);
 }
 
-static gboolean
-psppire_cell_renderer_button_focus_out_event (GtkWidget *widget,
-                                              GdkEvent  *event,
-                                              gpointer   data)
-{
-  PsppireCellRendererButton *cell_button = data;
-
-  g_signal_handlers_disconnect_by_func (widget,
-                                        psppire_cell_renderer_button_focus_out_event,
-                                        data);
-  g_signal_handlers_disconnect_by_func (widget,
-                                        psppire_cell_renderer_button_clicked,
-                                        data);
-
-  gtk_cell_renderer_stop_editing (GTK_CELL_RENDERER (cell_button), FALSE);
-
-  return FALSE;
-}
-
 #define IDLE_ID_STRING "psppire-cell-renderer-button-idle-id"
 
 static gboolean
@@ -419,9 +400,6 @@ psppire_cell_renderer_button_start_editing (GtkCellRenderer      *cell,
                                       "slash", cell_button->slash,
                                       NULL);
 
-  g_signal_connect (G_OBJECT (cell_button->button), "focus-out-event",
-                    G_CALLBACK (psppire_cell_renderer_button_focus_out_event),
-                    cell);
   g_signal_connect (G_OBJECT (cell_button->button), "clicked",
                     G_CALLBACK (psppire_cell_renderer_button_clicked),
                     cell);
-- 
2.30.2