[maemo-commits] [maemo-commits] r12469 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Jun 26 14:52:38 EEST 2007
Author: xan
Date: 2007-06-26 14:52:23 +0300 (Tue, 26 Jun 2007)
New Revision: 12469

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkcombobox.c
   projects/haf/trunk/gtk+/gtk/gtkentrycompletion.c
Log:


Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2007-06-26 11:41:57 UTC (rev 12468)
+++ projects/haf/trunk/gtk+/ChangeLog	2007-06-26 11:52:23 UTC (rev 12469)
@@ -1,3 +1,13 @@
+2007-06-26  Xan Lopez  <xan at gnome.org>
+
+	* gtk/gtkcombobox.c: (gtk_combo_box_set_popup_widget),
+	(gtk_combo_box_child_delete_event), (gtk_combo_box_list_destroy):
+	* gtk/gtkentrycompletion.c: (gtk_entry_completion_init),
+	(gtk_entry_completion_popup_delete_event):
+
+	Make GtkComboBox and GtkEntryCompletion handle the delete-event signal
+	closing any open popup/temporary window.
+
 2007-06-25  Xan Lopez  <xan.lopez at nokia.com>
 
 	* gtk/gtkhbbox.c (gtk_hbutton_box_size_allocate):

Modified: projects/haf/trunk/gtk+/gtk/gtkcombobox.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkcombobox.c	2007-06-26 11:41:57 UTC (rev 12468)
+++ projects/haf/trunk/gtk+/gtk/gtkcombobox.c	2007-06-26 11:52:23 UTC (rev 12469)
@@ -437,8 +437,10 @@
 							      GtkComboBox     *combo_box);
 static void     gtk_combo_box_child_hide                     (GtkWidget       *widget,
 							      GtkComboBox     *combo_box);
+static gboolean gtk_combo_box_child_delete_event             (GtkWidget       *widget,
+							      GdkEventAny     *event,
+							      GtkComboBox     *combo_box);
 
-
 /* GtkCellEditable method implementations */
 static void gtk_combo_box_start_editing (GtkCellEditable *cell_editable,
 					 GdkEvent        *event);
@@ -1331,6 +1333,9 @@
 	  g_signal_connect (GTK_WINDOW(combo_box->priv->popup_window),"hide",
 			    G_CALLBACK (gtk_combo_box_child_hide),
 			    combo_box);
+	  g_signal_connect (GTK_WINDOW(combo_box->priv->popup_window),"delete_event",
+			    G_CALLBACK (gtk_combo_box_child_delete_event),
+			    combo_box);
   	  
 	  toplevel = gtk_widget_get_toplevel (GTK_WIDGET (combo_box));
 	  if (GTK_IS_WINDOW (toplevel))
@@ -2337,6 +2342,16 @@
 }
 
 static gboolean
+gtk_combo_box_child_delete_event (GtkWidget *widget,
+				  GdkEventAny *event,
+				  GtkComboBox *combo_box)
+{
+  gtk_combo_box_popdown (combo_box);
+
+  return TRUE;
+}
+
+static gboolean
 gtk_combo_box_expose_event (GtkWidget      *widget,
                             GdkEventExpose *event)
 {
@@ -3634,6 +3649,12 @@
 					0, 0, NULL, 
 					gtk_combo_box_child_hide,
 					NULL);
+
+  g_signal_handlers_disconnect_matched (combo_box->priv->popup_window,
+					G_SIGNAL_MATCH_DATA,
+					0, 0, NULL, 
+					gtk_combo_box_child_delete_event,
+					NULL);
   
   if (combo_box->priv->box)
     g_signal_handlers_disconnect_matched (combo_box->priv->box,

Modified: projects/haf/trunk/gtk+/gtk/gtkentrycompletion.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkentrycompletion.c	2007-06-26 11:41:57 UTC (rev 12468)
+++ projects/haf/trunk/gtk+/gtk/gtkentrycompletion.c	2007-06-26 11:52:23 UTC (rev 12469)
@@ -107,6 +107,9 @@
 static gboolean gtk_entry_completion_popup_button_press  (GtkWidget               *widget,
                                                           GdkEventButton          *event,
                                                           gpointer                 user_data);
+static gboolean gtk_entry_completion_popup_delete_event  (GtkWidget               *widget,
+							  GdkEventAny             *event,
+							  gpointer                 user_data);
 static gboolean gtk_entry_completion_list_button_press   (GtkWidget               *widget,
                                                           GdkEventButton          *event,
                                                           gpointer                 user_data);
@@ -444,6 +447,9 @@
   g_signal_connect (priv->popup_window, "button_press_event",
                     G_CALLBACK (gtk_entry_completion_popup_button_press),
                     completion);
+  g_signal_connect (priv->popup_window, "delete-event",
+		    G_CALLBACK (gtk_entry_completion_popup_delete_event),
+		    completion);
 
   popup_frame = gtk_frame_new (NULL);
   gtk_frame_set_shadow_type (GTK_FRAME (popup_frame),
@@ -788,6 +794,18 @@
 }
 
 static gboolean
+gtk_entry_completion_popup_delete_event (GtkWidget   *widget,
+					 GdkEventAny *event,
+					 gpointer     user_data)
+{
+  GtkEntryCompletion *completion = GTK_ENTRY_COMPLETION (user_data);
+
+  _gtk_entry_completion_popdown (completion);
+
+  return TRUE;
+}
+
+static gboolean
 gtk_entry_completion_list_button_press (GtkWidget      *widget,
                                         GdkEventButton *event,
                                         gpointer        user_data)


More information about the maemo-commits mailing list