aboutsummaryrefslogtreecommitdiff
path: root/src/namestore/gnunet-namestore-gtk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/namestore/gnunet-namestore-gtk.c')
-rw-r--r--src/namestore/gnunet-namestore-gtk.c54
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 */
1919static gboolean 1919static GtkMenu *
1920create_popup_menu () 1920create_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 */
1962gboolean 1961gboolean
1963gnunet_namestore_gtk_treeview_popup_menu_cb (GtkWidget *widget, 1962gnunet_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 */
1979gboolean 1988gboolean
1980gnunet_namestore_gtk_treeview_button_press_event_cb (GtkWidget *widget, 1989gnunet_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 */
2003gboolean 2020gboolean
2004gnunet_namestore_gtk_treeview_key_press_event_cb (GtkWidget *widget, 2021gnunet_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,