static void palette_import_image_add (GimpContainer *container, GimpImage *image, ImportDialog *dialog) { if (! gtk_widget_is_sensitive (dialog->image_radio)) { gtk_widget_set_sensitive (dialog->image_radio, TRUE); gimp_context_set_image (dialog->context, image); } }
static void image_preview_drop_image (GtkWidget *widget, gint x, gint y, GimpViewable *viewable, gpointer data) { GimpContext *context = GIMP_CONTEXT (data); gimp_context_set_image (context, GIMP_IMAGE (viewable)); }
static GimpObject * gui_display_create (Gimp *gimp, GimpImage *image, GimpUnit unit, gdouble scale) { GimpContext *context = gimp_get_user_context (gimp); GimpDisplay *display = GIMP_DISPLAY (gui_get_empty_display (gimp)); if (display) { gimp_display_fill (display, image, unit, scale); } else { GList *image_managers = gimp_ui_managers_from_name ("<Image>"); g_return_val_if_fail (image_managers != NULL, NULL); display = gimp_display_new (gimp, image, unit, scale, global_menu_factory, image_managers->data, global_display_factory); } if (gimp_context_get_display (context) == display) { gimp_context_set_image (context, image); gimp_context_display_changed (context); } else { gimp_context_set_display (context, display); } gimp_ui_manager_update (GIMP_DISPLAY_SHELL (display->shell)->menubar_manager, display); return GIMP_OBJECT (display); }
static void gui_display_changed (GimpContext *context, GimpDisplay *display, Gimp *gimp) { if (! display) { GimpImage *image = gimp_context_get_image (context); if (image) { GList *list; for (list = gimp_get_display_iter (gimp); list; list = g_list_next (list)) { GimpDisplay *display2 = list->data; if (gimp_display_get_image (display2) == image) { gimp_context_set_display (context, display2); /* stop the emission of the original signal * (the emission of the recursive signal is finished) */ g_signal_stop_emission_by_name (context, "display-changed"); return; } } gimp_context_set_image (context, NULL); } } gimp_ui_manager_update (image_ui_manager, display); }