[gimp] Make display->instance private, add an accessor and use it everywhere
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Make display->instance private, add an accessor and use it everywhere
- Date: Tue, 6 Oct 2009 07:19:43 +0000 (UTC)
commit 23cd244c659764ef4a2d9963ae91f701e60abfde
Author: Michael Natterer <mitch gimp org>
Date: Tue Oct 6 09:16:46 2009 +0200
Make display->instance private, add an accessor and use it everywhere
app/actions/windows-actions.c | 2 +-
app/display/gimpdisplay-handlers.c | 10 ++----
app/display/gimpdisplay.c | 35 ++++++++++++++----
app/display/gimpdisplay.h | 66 +++++++++++++++++-----------------
app/display/gimpdisplayshell-title.c | 3 +-
5 files changed, 67 insertions(+), 49 deletions(-)
---
diff --git a/app/actions/windows-actions.c b/app/actions/windows-actions.c
index b1f227d..088a8c1 100644
--- a/app/actions/windows-actions.c
+++ b/app/actions/windows-actions.c
@@ -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,
diff --git a/app/display/gimpdisplay-handlers.c b/app/display/gimpdisplay-handlers.c
index 6b03f78..738dcb0 100644
--- a/app/display/gimpdisplay-handlers.c
+++ b/app/display/gimpdisplay-handlers.c
@@ -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),
diff --git a/app/display/gimpdisplay.c b/app/display/gimpdisplay.c
index cdac3c8..e13cc1f 100644
--- a/app/display/gimpdisplay.c
+++ b/app/display/gimpdisplay.c
@@ -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)
{
diff --git a/app/display/gimpdisplay.h b/app/display/gimpdisplay.h
index 43aa3f4..1e09b9c 100644
--- a/app/display/gimpdisplay.h
+++ b/app/display/gimpdisplay.h
@@ -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__ */
diff --git a/app/display/gimpdisplayshell-title.c b/app/display/gimpdisplayshell-title.c
index 2a1ad60..de0a185 100644
--- a/app/display/gimpdisplayshell-title.c
+++ b/app/display/gimpdisplayshell-title.c
@@ -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 */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]