diff options
Diffstat (limited to 'src/namestore/gnunet-namestore-gtk.c')
-rw-r--r-- | src/namestore/gnunet-namestore-gtk.c | 54 |
1 files changed, 36 insertions, 18 deletions
diff --git a/src/namestore/gnunet-namestore-gtk.c b/src/namestore/gnunet-namestore-gtk.c index 60ab84d5..0cec62b4 100644 --- a/src/namestore/gnunet-namestore-gtk.c +++ b/src/namestore/gnunet-namestore-gtk.c | |||
@@ -1914,9 +1914,9 @@ gnunet_namestore_gtk_name_cellrenderertext_edited_cb (GtkCellRendererText *rende | |||
1914 | * Create a context (popup) menu for the zone iteration treeview | 1914 | * Create a context (popup) menu for the zone iteration treeview |
1915 | * (if applicable). | 1915 | * (if applicable). |
1916 | * | 1916 | * |
1917 | * @return TRUE if a menu was activated | 1917 | * @return NULL if no menu could be created |
1918 | */ | 1918 | */ |
1919 | static gboolean | 1919 | static GtkMenu * |
1920 | create_popup_menu () | 1920 | create_popup_menu () |
1921 | { | 1921 | { |
1922 | GtkTreeIter it; | 1922 | GtkTreeIter it; |
@@ -1931,7 +1931,7 @@ create_popup_menu () | |||
1931 | { | 1931 | { |
1932 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1932 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1933 | "No row selected\n"); | 1933 | "No row selected\n"); |
1934 | return FALSE; | 1934 | return NULL; |
1935 | } | 1935 | } |
1936 | gtk_tree_model_get (tm, &it, | 1936 | gtk_tree_model_get (tm, &it, |
1937 | GNS_TREESTORE_COL_NAME_IS_VISIBLE, &name_vis, | 1937 | GNS_TREESTORE_COL_NAME_IS_VISIBLE, &name_vis, |
@@ -1940,12 +1940,11 @@ create_popup_menu () | |||
1940 | { | 1940 | { |
1941 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1941 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1942 | "Selected row is not a record row\n"); | 1942 | "Selected row is not a record row\n"); |
1943 | return FALSE; | 1943 | return NULL; |
1944 | } | 1944 | } |
1945 | popup = GTK_MENU (get_object ("gnunet_namestore_gtk_edit_popup_menu")); | 1945 | popup = GTK_MENU (get_object ("gnunet_namestore_gtk_edit_popup_menu")); |
1946 | gtk_widget_show_all (GTK_WIDGET (popup)); | 1946 | gtk_widget_show_all (GTK_WIDGET (popup)); |
1947 | gtk_menu_popup (popup, NULL, NULL, NULL, NULL, 0, 0); | 1947 | return popup; |
1948 | return TRUE; | ||
1949 | } | 1948 | } |
1950 | 1949 | ||
1951 | 1950 | ||
@@ -1961,9 +1960,19 @@ create_popup_menu () | |||
1961 | */ | 1960 | */ |
1962 | gboolean | 1961 | gboolean |
1963 | gnunet_namestore_gtk_treeview_popup_menu_cb (GtkWidget *widget, | 1962 | gnunet_namestore_gtk_treeview_popup_menu_cb (GtkWidget *widget, |
1964 | gpointer user_data) | 1963 | gpointer user_data) |
1965 | { | 1964 | { |
1966 | return create_popup_menu (); | 1965 | GtkMenu *menu; |
1966 | |||
1967 | menu = create_popup_menu (); | ||
1968 | if (NULL == menu) | ||
1969 | return FALSE; | ||
1970 | gtk_menu_popup_at_widget (menu, | ||
1971 | widget, | ||
1972 | GDK_GRAVITY_CENTER, | ||
1973 | GDK_GRAVITY_CENTER, | ||
1974 | NULL); | ||
1975 | return TRUE; | ||
1967 | } | 1976 | } |
1968 | 1977 | ||
1969 | 1978 | ||
@@ -1978,16 +1987,24 @@ gnunet_namestore_gtk_treeview_popup_menu_cb (GtkWidget *widget, | |||
1978 | */ | 1987 | */ |
1979 | gboolean | 1988 | gboolean |
1980 | gnunet_namestore_gtk_treeview_button_press_event_cb (GtkWidget *widget, | 1989 | gnunet_namestore_gtk_treeview_button_press_event_cb (GtkWidget *widget, |
1981 | GdkEventButton *event, | 1990 | GdkEvent *event, |
1982 | gpointer user_data) | 1991 | gpointer user_data) |
1983 | { | 1992 | { |
1993 | GdkEventButton *event_button = (GdkEventButton *) event; | ||
1994 | GtkMenu *menu; | ||
1995 | |||
1984 | /* Check for right click*/ | 1996 | /* Check for right click*/ |
1985 | if (NULL == widget) | 1997 | if (NULL == widget) |
1986 | return FALSE; | 1998 | return FALSE; |
1987 | if ( (GDK_BUTTON_PRESS == event->type) && | 1999 | if ( (GDK_BUTTON_PRESS != event_button->type) || |
1988 | (3 == event->button) ) | 2000 | (3 != event_button->button) ) |
1989 | return create_popup_menu (); | 2001 | return FALSE; |
1990 | return FALSE; | 2002 | menu = create_popup_menu (); |
2003 | if (NULL == menu) | ||
2004 | return FALSE; | ||
2005 | gtk_menu_popup_at_pointer (menu, | ||
2006 | event); | ||
2007 | return TRUE; | ||
1991 | } | 2008 | } |
1992 | 2009 | ||
1993 | 2010 | ||
@@ -2002,9 +2019,10 @@ gnunet_namestore_gtk_treeview_button_press_event_cb (GtkWidget *widget, | |||
2002 | */ | 2019 | */ |
2003 | gboolean | 2020 | gboolean |
2004 | gnunet_namestore_gtk_treeview_key_press_event_cb (GtkWidget *widget, | 2021 | gnunet_namestore_gtk_treeview_key_press_event_cb (GtkWidget *widget, |
2005 | GdkEventKey *event, | 2022 | GdkEvent *event, |
2006 | gpointer user_data) | 2023 | gpointer user_data) |
2007 | { | 2024 | { |
2025 | GdkEventKey *event_key = (GdkEventKey *) event; | ||
2008 | GtkTreeIter iter; | 2026 | GtkTreeIter iter; |
2009 | GtkTreeSelection *sel; | 2027 | GtkTreeSelection *sel; |
2010 | int not_dummy; | 2028 | int not_dummy; |
@@ -2015,10 +2033,10 @@ gnunet_namestore_gtk_treeview_key_press_event_cb (GtkWidget *widget, | |||
2015 | struct OperationContext *oc; | 2033 | struct OperationContext *oc; |
2016 | 2034 | ||
2017 | /* Check for delete key */ | 2035 | /* Check for delete key */ |
2018 | if ( (GDK_KEY_PRESS != event->type) || | 2036 | if ( (GDK_KEY_PRESS != event_key->type) || |
2019 | (GDK_KEY_Delete != event->keyval) ) | 2037 | (GDK_KEY_Delete != event_key->keyval) ) |
2020 | return FALSE; | 2038 | return FALSE; |
2021 | sel = gtk_tree_view_get_selection(tv); | 2039 | sel = gtk_tree_view_get_selection (tv); |
2022 | if (! gtk_tree_selection_get_selected (sel, NULL, &iter)) | 2040 | if (! gtk_tree_selection_get_selected (sel, NULL, &iter)) |
2023 | return TRUE; /* nothing selected */ | 2041 | return TRUE; /* nothing selected */ |
2024 | gtk_tree_model_get (tm, &iter, | 2042 | gtk_tree_model_get (tm, &iter, |