summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorPadraig O'Briain <padraigo@src.gnome.org>2002-02-07 09:39:21 +0000
committerPadraig O'Briain <padraigo@src.gnome.org>2002-02-07 09:39:21 +0000
commit5bc235001ab5ea9071ae550c8ced0dcb88a725eb (patch)
treed6529b0467974ba1950730afd78de9538b491fd7 /gtk
parentac939d335588279e3bc36eda8b701e1ad91eb814 (diff)
downloadgtk+-5bc235001ab5ea9071ae550c8ced0dcb88a725eb.tar.gz
Change popup_menu signal to return gboolean instead of void. This allows
* gtk/gtkwidget.[ch]: Change popup_menu signal to return gboolean instead of void. This allows the keypress which invokes the signal to be propagated to the focus widgets ancestors if not handled by the focus widget. * gtk/gtkcolorsel.c gtk/gtkentry.c gtk/gtktextview.c: Change signature of popup_menu signal handler to return gboolean instead of void and return TRUE in the signal handler
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkcolorsel.c3
-rw-r--r--gtk/gtkentry.c5
-rw-r--r--gtk/gtktextview.c5
-rw-r--r--gtk/gtkwidget.c13
-rw-r--r--gtk/gtkwidget.h2
5 files changed, 16 insertions, 12 deletions
diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c
index c6e455e20c..98a0546c55 100644
--- a/gtk/gtkcolorsel.c
+++ b/gtk/gtkcolorsel.c
@@ -1017,13 +1017,14 @@ palette_activate (GtkWidget *widget,
return FALSE;
}
-static void
+static gboolean
palette_popup (GtkWidget *widget,
gpointer data)
{
GtkColorSelection *colorsel = GTK_COLOR_SELECTION (data);
do_popup (colorsel, widget, GDK_CURRENT_TIME);
+ return TRUE;
}
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index d58c93f96f..d0ff6da211 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -230,7 +230,7 @@ static void gtk_entry_paste_clipboard (GtkEntry *entry);
static void gtk_entry_toggle_overwrite (GtkEntry *entry);
static void gtk_entry_select_all (GtkEntry *entry);
static void gtk_entry_real_activate (GtkEntry *entry);
-static void gtk_entry_popup_menu (GtkWidget *widget);
+static gboolean gtk_entry_popup_menu (GtkWidget *widget);
static void gtk_entry_keymap_direction_changed (GdkKeymap *keymap,
GtkEntry *entry);
@@ -3946,10 +3946,11 @@ gtk_entry_do_popup (GtkEntry *entry,
info);
}
-static void
+static gboolean
gtk_entry_popup_menu (GtkWidget *widget)
{
gtk_entry_do_popup (GTK_ENTRY (widget), NULL);
+ return TRUE;
}
static void
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index 6c04881194..d674c50e91 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -222,7 +222,7 @@ static void gtk_text_view_drag_data_received (GtkWidget *widget,
static void gtk_text_view_set_scroll_adjustments (GtkTextView *text_view,
GtkAdjustment *hadj,
GtkAdjustment *vadj);
-static void gtk_text_view_popup_menu (GtkWidget *widget);
+static gboolean gtk_text_view_popup_menu (GtkWidget *widget);
static void gtk_text_view_move_cursor (GtkTextView *text_view,
GtkMovementStep step,
@@ -6395,10 +6395,11 @@ gtk_text_view_do_popup (GtkTextView *text_view,
info);
}
-static void
+static gboolean
gtk_text_view_popup_menu (GtkWidget *widget)
{
gtk_text_view_do_popup (GTK_TEXT_VIEW (widget), NULL);
+ return TRUE;
}
/* Child GdkWindows */
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 755ae1b25a..2908ecf03c 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -1002,12 +1002,13 @@ gtk_widget_class_init (GtkWidgetClass *klass)
G_TYPE_BOOLEAN, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
widget_signals[POPUP_MENU] =
- gtk_signal_new ("popup_menu",
- GTK_RUN_LAST | GTK_RUN_ACTION,
- GTK_CLASS_TYPE (object_class),
- GTK_SIGNAL_OFFSET (GtkWidgetClass, popup_menu),
- _gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
+ g_signal_new ("popup_menu",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ GTK_SIGNAL_OFFSET (GtkWidgetClass, popup_menu),
+ _gtk_boolean_handled_accumulator, NULL,
+ _gtk_marshal_BOOLEAN__VOID,
+ G_TYPE_BOOLEAN, 0);
widget_signals[SHOW_HELP] =
gtk_signal_new ("show_help",
GTK_RUN_LAST | GTK_RUN_ACTION,
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index d70a0ef676..6eebb124f0 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -387,7 +387,7 @@ struct _GtkWidgetClass
guint time);
/* Signals used only for keybindings */
- void (* popup_menu) (GtkWidget *widget);
+ gboolean (* popup_menu) (GtkWidget *widget);
/* If a widget has multiple tooltips/whatsthis, it should show the
* one for the current focus location, or if that doesn't make