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