# HG changeset patch # User zas_ # Date 1208450011 0 # Node ID c359fc2c5a1f79599daea89d8b3964ce8ca6b39b # Parent 4a5e1377f3d7a8577de39f8e5b096519fca12b4b Move common menu position callback to view_dir.c. diff -r 4a5e1377f3d7 -r c359fc2c5a1f src/view_dir.c --- a/src/view_dir.c Thu Apr 17 14:51:32 2008 +0000 +++ b/src/view_dir.c Thu Apr 17 16:33:31 2008 +0000 @@ -849,3 +849,26 @@ G_CALLBACK(vd_dnd_drop_leave), vd); } +/* + *---------------------------------------------------------------------------- + * callbacks + *---------------------------------------------------------------------------- + */ + +void vd_menu_position_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data) +{ + ViewDir *vd = data; + GtkTreeModel *store; + GtkTreeIter iter; + GtkTreePath *tpath; + gint cw, ch; + + if (vd_find_row(vd, vd->click_fd, &iter) < 0) return; + store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); + tpath = gtk_tree_model_get_path(store, &iter); + tree_view_get_cell_clamped(GTK_TREE_VIEW(vd->view), tpath, 0, TRUE, x, y, &cw, &ch); + gtk_tree_path_free(tpath); + *y += ch; + popup_menu_position_clamp(menu, x, y, 0); +} + diff -r 4a5e1377f3d7 -r c359fc2c5a1f src/view_dir.h --- a/src/view_dir.h Thu Apr 17 14:51:32 2008 +0000 +++ b/src/view_dir.h Thu Apr 17 16:33:31 2008 +0000 @@ -45,6 +45,9 @@ void vd_dnd_drop_scroll_cancel(ViewDir *vd); void vd_dnd_init(ViewDir *vd); +void vd_menu_position_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data); + + #endif diff -r 4a5e1377f3d7 -r c359fc2c5a1f src/view_dir_list.c --- a/src/view_dir_list.c Thu Apr 17 14:51:32 2008 +0000 +++ b/src/view_dir_list.c Thu Apr 17 16:33:31 2008 +0000 @@ -284,23 +284,6 @@ g_free(path); } -static void vdlist_menu_position_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data) -{ - ViewDir *vd = data; - GtkTreeModel *store; - GtkTreeIter iter; - GtkTreePath *tpath; - gint cw, ch; - - if (vd_find_row(vd, vd->click_fd, &iter) < 0) return; - store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); - tpath = gtk_tree_model_get_path(store, &iter); - tree_view_get_cell_clamped(GTK_TREE_VIEW(vd->view), tpath, 0, TRUE, x, y, &cw, &ch); - gtk_tree_path_free(tpath); - *y += ch; - popup_menu_position_clamp(menu, x, y, 0); -} - static gint vdlist_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) { ViewDir *vd = data; @@ -329,7 +312,7 @@ vd->popup = vd_pop_menu(vd, vd->click_fd); - gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, vdlist_menu_position_cb, vd, 0, GDK_CURRENT_TIME); + gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, vd_menu_position_cb, vd, 0, GDK_CURRENT_TIME); return TRUE; } diff -r 4a5e1377f3d7 -r c359fc2c5a1f src/view_dir_tree.c --- a/src/view_dir_tree.c Thu Apr 17 14:51:32 2008 +0000 +++ b/src/view_dir_tree.c Thu Apr 17 16:33:31 2008 +0000 @@ -738,23 +738,6 @@ *---------------------------------------------------------------------------- */ -static void vdtree_menu_position_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data) -{ - ViewDir *vd = data; - GtkTreeModel *store; - GtkTreeIter iter; - GtkTreePath *tpath; - gint cw, ch; - - if (vd_find_row(vd, vd->click_fd, &iter) < 0) return; - store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view)); - tpath = gtk_tree_model_get_path(store, &iter); - tree_view_get_cell_clamped(GTK_TREE_VIEW(vd->view), tpath, 0, TRUE, x, y, &cw, &ch); - gtk_tree_path_free(tpath); - *y += ch; - popup_menu_position_clamp(menu, x, y, 0); -} - static gint vdtree_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) { ViewDir *vd = data; @@ -784,7 +767,7 @@ vd_color_set(vd, vd->click_fd, TRUE); vd->popup = vd_pop_menu(vd, vd->click_fd); - gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, vdtree_menu_position_cb, vd, 0, GDK_CURRENT_TIME); + gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, vd_menu_position_cb, vd, 0, GDK_CURRENT_TIME); return TRUE; break;