Make display->instance private, add an accessor and use it everywhere
This commit is contained in:
@ -280,7 +280,7 @@ windows_actions_image_notify (GimpDisplay *display,
|
||||
|
||||
title = g_strdup_printf ("%s-%d.%d", escaped,
|
||||
gimp_image_get_ID (display->image),
|
||||
display->instance);
|
||||
gimp_display_get_instance (display));
|
||||
g_free (escaped);
|
||||
|
||||
g_object_set (action,
|
||||
|
@ -52,18 +52,14 @@ gimp_display_connect (GimpDisplay *display,
|
||||
g_return_if_fail (GIMP_IS_IMAGE (image));
|
||||
g_return_if_fail (display->image == NULL);
|
||||
|
||||
display->image = image;
|
||||
display->instance = image->instance_count;
|
||||
|
||||
image->instance_count++; /* this is obsolete */
|
||||
image->disp_count++;
|
||||
|
||||
#if 0
|
||||
g_print ("%s: image->ref_count before refing: %d\n",
|
||||
G_STRFUNC, G_OBJECT (display->image)->ref_count);
|
||||
#endif
|
||||
|
||||
g_object_ref (image);
|
||||
display->image = g_object_ref (image);
|
||||
|
||||
image->disp_count++;
|
||||
|
||||
g_signal_connect (gimp_image_get_projection (image), "update",
|
||||
G_CALLBACK (gimp_display_update_handler),
|
||||
|
@ -64,6 +64,8 @@ typedef struct _GimpDisplayPrivate GimpDisplayPrivate;
|
||||
struct _GimpDisplayPrivate
|
||||
{
|
||||
gint ID; /* unique identifier for this display */
|
||||
gint instance; /* the instance # of this display as
|
||||
* taken from the image at creation */
|
||||
GtkWidget *shell;
|
||||
GSList *update_areas;
|
||||
};
|
||||
@ -163,10 +165,6 @@ gimp_display_class_init (GimpDisplayClass *klass)
|
||||
static void
|
||||
gimp_display_init (GimpDisplay *display)
|
||||
{
|
||||
display->gimp = NULL;
|
||||
|
||||
display->image = NULL;
|
||||
display->instance = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -408,7 +406,11 @@ gimp_display_new (Gimp *gimp,
|
||||
|
||||
/* refs the image */
|
||||
if (image)
|
||||
gimp_display_connect (display, image);
|
||||
{
|
||||
private->instance = image->instance_count++;
|
||||
|
||||
gimp_display_connect (display, image);
|
||||
}
|
||||
|
||||
/* get an image window */
|
||||
if (GIMP_GUI_CONFIG (display->config)->single_window_mode)
|
||||
@ -610,11 +612,14 @@ void
|
||||
gimp_display_set_image (GimpDisplay *display,
|
||||
GimpImage *image)
|
||||
{
|
||||
GimpImage *old_image = NULL;
|
||||
GimpDisplayPrivate *private;
|
||||
GimpImage *old_image = NULL;
|
||||
|
||||
g_return_if_fail (GIMP_IS_DISPLAY (display));
|
||||
g_return_if_fail (image == NULL || GIMP_IS_IMAGE (image));
|
||||
|
||||
private = GIMP_DISPLAY_GET_PRIVATE (display);
|
||||
|
||||
if (display->image)
|
||||
{
|
||||
/* stop any active tool */
|
||||
@ -629,7 +634,11 @@ gimp_display_set_image (GimpDisplay *display,
|
||||
}
|
||||
|
||||
if (image)
|
||||
gimp_display_connect (display, image);
|
||||
{
|
||||
private->instance = image->instance_count++;
|
||||
|
||||
gimp_display_connect (display, image);
|
||||
}
|
||||
|
||||
if (old_image)
|
||||
g_object_unref (old_image);
|
||||
@ -643,6 +652,18 @@ gimp_display_set_image (GimpDisplay *display,
|
||||
g_object_notify (G_OBJECT (display), "image");
|
||||
}
|
||||
|
||||
gint
|
||||
gimp_display_get_instance (GimpDisplay *display)
|
||||
{
|
||||
GimpDisplayPrivate *private;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_DISPLAY (display), 0);
|
||||
|
||||
private = GIMP_DISPLAY_GET_PRIVATE (display);
|
||||
|
||||
return private->instance;
|
||||
}
|
||||
|
||||
GimpDisplayShell *
|
||||
gimp_display_get_shell (GimpDisplay *display)
|
||||
{
|
||||
|
@ -40,8 +40,6 @@ struct _GimpDisplay
|
||||
GimpDisplayConfig *config;
|
||||
|
||||
GimpImage *image; /* pointer to the associated image */
|
||||
gint instance; /* the instance # of this display as */
|
||||
/* taken from the image at creation */
|
||||
};
|
||||
|
||||
struct _GimpDisplayClass
|
||||
@ -50,45 +48,47 @@ struct _GimpDisplayClass
|
||||
};
|
||||
|
||||
|
||||
GType gimp_display_get_type (void) G_GNUC_CONST;
|
||||
GType gimp_display_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GimpDisplay * gimp_display_new (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale,
|
||||
GimpMenuFactory *menu_factory,
|
||||
GimpUIManager *popup_manager,
|
||||
GimpDialogFactory *display_factory);
|
||||
void gimp_display_delete (GimpDisplay *display);
|
||||
void gimp_display_close (GimpDisplay *display);
|
||||
GimpDisplay * gimp_display_new (Gimp *gimp,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale,
|
||||
GimpMenuFactory *menu_factory,
|
||||
GimpUIManager *popup_manager,
|
||||
GimpDialogFactory *display_factory);
|
||||
void gimp_display_delete (GimpDisplay *display);
|
||||
void gimp_display_close (GimpDisplay *display);
|
||||
|
||||
gint gimp_display_get_ID (GimpDisplay *display);
|
||||
GimpDisplay * gimp_display_get_by_ID (Gimp *gimp,
|
||||
gint ID);
|
||||
gint gimp_display_get_ID (GimpDisplay *display);
|
||||
GimpDisplay * gimp_display_get_by_ID (Gimp *gimp,
|
||||
gint ID);
|
||||
|
||||
Gimp * gimp_display_get_gimp (GimpDisplay *display);
|
||||
Gimp * gimp_display_get_gimp (GimpDisplay *display);
|
||||
|
||||
GimpImage * gimp_display_get_image (GimpDisplay *display);
|
||||
void gimp_display_set_image (GimpDisplay *display,
|
||||
GimpImage *image);
|
||||
GimpImage * gimp_display_get_image (GimpDisplay *display);
|
||||
void gimp_display_set_image (GimpDisplay *display,
|
||||
GimpImage *image);
|
||||
|
||||
GimpDisplayShell * gimp_display_get_shell (GimpDisplay *display);
|
||||
gint gimp_display_get_instance (GimpDisplay *display);
|
||||
|
||||
void gimp_display_empty (GimpDisplay *display);
|
||||
void gimp_display_fill (GimpDisplay *display,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale);
|
||||
GimpDisplayShell * gimp_display_get_shell (GimpDisplay *display);
|
||||
|
||||
void gimp_display_update_area (GimpDisplay *display,
|
||||
gboolean now,
|
||||
gint x,
|
||||
gint y,
|
||||
gint w,
|
||||
gint h);
|
||||
void gimp_display_empty (GimpDisplay *display);
|
||||
void gimp_display_fill (GimpDisplay *display,
|
||||
GimpImage *image,
|
||||
GimpUnit unit,
|
||||
gdouble scale);
|
||||
|
||||
void gimp_display_flush (GimpDisplay *display);
|
||||
void gimp_display_flush_now (GimpDisplay *display);
|
||||
void gimp_display_update_area (GimpDisplay *display,
|
||||
gboolean now,
|
||||
gint x,
|
||||
gint y,
|
||||
gint w,
|
||||
gint h);
|
||||
|
||||
void gimp_display_flush (GimpDisplay *display);
|
||||
void gimp_display_flush_now (GimpDisplay *display);
|
||||
|
||||
|
||||
#endif /* __GIMP_DISPLAY_H__ */
|
||||
|
@ -238,7 +238,8 @@ gimp_display_shell_format_title (GimpDisplayShell *shell,
|
||||
break;
|
||||
|
||||
case 'i': /* instance */
|
||||
i += print (title, title_len, i, "%d", shell->display->instance);
|
||||
i += print (title, title_len, i, "%d",
|
||||
gimp_display_get_instance (shell->display));
|
||||
break;
|
||||
|
||||
case 't': /* image type */
|
||||
|
Reference in New Issue
Block a user