Mercurial > geeqie.yaz
comparison src/img-view.c @ 1397:a0bd58a6535f
In various Edit context menus, only display editors that match the file types in the selection.
author | zas_ |
---|---|
date | Sun, 08 Mar 2009 13:23:25 +0000 |
parents | fe4da037be21 |
children | cf4029d10d38 |
comparison
equal
deleted
inserted
replaced
1396:58f0b4586c8c | 1397:a0bd58a6535f |
---|---|
47 FullScreenData *fs; | 47 FullScreenData *fs; |
48 SlideShowData *ss; | 48 SlideShowData *ss; |
49 | 49 |
50 GList *list; | 50 GList *list; |
51 GList *list_pointer; | 51 GList *list_pointer; |
52 | |
53 /* file list for edit menu */ | |
54 GList *editmenu_fd_list; | |
52 }; | 55 }; |
53 | 56 |
54 | 57 |
55 static GList *view_window_list = NULL; | 58 static GList *view_window_list = NULL; |
56 | 59 |
1238 else | 1241 else |
1239 view_new_layout_with_fd(imd->image_fd); | 1242 view_new_layout_with_fd(imd->image_fd); |
1240 view_window_close(vw); | 1243 view_window_close(vw); |
1241 } | 1244 } |
1242 | 1245 |
1246 static void view_popup_menu_destroy_cb(GtkWidget *widget, gpointer data) | |
1247 { | |
1248 ViewWindow *vw = data; | |
1249 | |
1250 filelist_free(vw->editmenu_fd_list); | |
1251 vw->editmenu_fd_list = NULL; | |
1252 } | |
1253 | |
1254 static GList *view_window_get_fd_list(ViewWindow *vw) | |
1255 { | |
1256 GList *list = NULL; | |
1257 ImageWindow *imd = view_window_active_image(vw); | |
1258 | |
1259 if (imd) | |
1260 { | |
1261 FileData *fd = image_get_fd(imd); | |
1262 if (fd) list = g_list_append(NULL, file_data_ref(fd)); | |
1263 } | |
1264 | |
1265 return list; | |
1266 } | |
1267 | |
1243 static GtkWidget *view_popup_menu(ViewWindow *vw) | 1268 static GtkWidget *view_popup_menu(ViewWindow *vw) |
1244 { | 1269 { |
1245 GtkWidget *menu; | 1270 GtkWidget *menu; |
1246 GtkWidget *item; | 1271 GtkWidget *item; |
1247 | 1272 |
1248 menu = popup_menu_short_lived(); | 1273 menu = popup_menu_short_lived(); |
1274 | |
1275 g_signal_connect(G_OBJECT(menu), "destroy", | |
1276 G_CALLBACK(view_popup_menu_destroy_cb), vw); | |
1249 | 1277 |
1250 menu_item_add_stock(menu, _("Zoom _in"), GTK_STOCK_ZOOM_IN, G_CALLBACK(view_zoom_in_cb), vw); | 1278 menu_item_add_stock(menu, _("Zoom _in"), GTK_STOCK_ZOOM_IN, G_CALLBACK(view_zoom_in_cb), vw); |
1251 menu_item_add_stock(menu, _("Zoom _out"), GTK_STOCK_ZOOM_OUT, G_CALLBACK(view_zoom_out_cb), vw); | 1279 menu_item_add_stock(menu, _("Zoom _out"), GTK_STOCK_ZOOM_OUT, G_CALLBACK(view_zoom_out_cb), vw); |
1252 menu_item_add_stock(menu, _("Zoom _1:1"), GTK_STOCK_ZOOM_100, G_CALLBACK(view_zoom_1_1_cb), vw); | 1280 menu_item_add_stock(menu, _("Zoom _1:1"), GTK_STOCK_ZOOM_100, G_CALLBACK(view_zoom_1_1_cb), vw); |
1253 menu_item_add_stock(menu, _("Fit image to _window"), GTK_STOCK_ZOOM_FIT, G_CALLBACK(view_zoom_fit_cb), vw); | 1281 menu_item_add_stock(menu, _("Fit image to _window"), GTK_STOCK_ZOOM_FIT, G_CALLBACK(view_zoom_fit_cb), vw); |
1254 menu_item_add_divider(menu); | 1282 menu_item_add_divider(menu); |
1255 | 1283 |
1256 item = submenu_add_edit(menu, NULL, G_CALLBACK(view_edit_cb), vw); | 1284 vw->editmenu_fd_list = view_window_get_fd_list(vw); |
1285 item = submenu_add_edit(menu, NULL, G_CALLBACK(view_edit_cb), vw, vw->editmenu_fd_list); | |
1257 menu_item_add_divider(item); | 1286 menu_item_add_divider(item); |
1258 menu_item_add(item, _("Set as _wallpaper"), G_CALLBACK(view_wallpaper_cb), vw); | 1287 menu_item_add(item, _("Set as _wallpaper"), G_CALLBACK(view_wallpaper_cb), vw); |
1259 | 1288 |
1260 submenu_add_alter(menu, G_CALLBACK(view_alter_cb), vw); | 1289 submenu_add_alter(menu, G_CALLBACK(view_alter_cb), vw); |
1261 | 1290 |