gimp r26367 - in trunk: . app/core app/display
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r26367 - in trunk: . app/core app/display
- Date: Mon, 4 Aug 2008 20:11:35 +0000 (UTC)
Author: mitch
Date: Mon Aug 4 20:11:35 2008
New Revision: 26367
URL: http://svn.gnome.org/viewvc/gimp?rev=26367&view=rev
Log:
2008-08-04 Michael Natterer <mitch gimp org>
* app/core/gimpimage.[ch] (GimpImage::size-changed-detailed):
change double to int in signal parameters.
Remove gimp_image_emit_size_changed_signals() and call
gimp_viewable_size_changed() in size-changed-detailed's default
handler.
* app/core/gimpimageundo.[ch]
* app/core/gimpimage-undo-push.[ch]: change double to int in
previous-origin related code.
* app/core/gimpimage-undo.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-resize.c: call gimp_image_size_changed_detailed()
instead of the removed gimp_image_emit_size_changed_signals()
* app/display/gimpdisplayshell-scroll.[ch]: remove
gimp_display_shell_handle_size_changed_detailed() because it
handles both scrolling and scaling and doesn't belong here.
* app/display/gimpdisplayshell-handlers.c: moved its code back to
gimp_display_shell_size_changed_detailed_handler() and follow the
double -> int change above.
Modified:
trunk/ChangeLog
trunk/app/core/gimpimage-crop.c
trunk/app/core/gimpimage-resize.c
trunk/app/core/gimpimage-rotate.c
trunk/app/core/gimpimage-scale.c
trunk/app/core/gimpimage-undo-push.c
trunk/app/core/gimpimage-undo-push.h
trunk/app/core/gimpimage-undo.c
trunk/app/core/gimpimage.c
trunk/app/core/gimpimage.h
trunk/app/core/gimpimageundo.c
trunk/app/core/gimpimageundo.h
trunk/app/display/gimpdisplayshell-handlers.c
trunk/app/display/gimpdisplayshell-scroll.c
trunk/app/display/gimpdisplayshell-scroll.h
Modified: trunk/app/core/gimpimage-crop.c
==============================================================================
--- trunk/app/core/gimpimage-crop.c (original)
+++ trunk/app/core/gimpimage-crop.c Mon Aug 4 20:11:35 2008
@@ -267,7 +267,7 @@
gimp_image_get_width (image),
gimp_image_get_height (image));
- gimp_image_emit_size_changed_signals (image, -x1, -y1);
+ gimp_image_size_changed_detailed (image, -x1, -y1);
g_object_thaw_notify (G_OBJECT (image));
}
Modified: trunk/app/core/gimpimage-resize.c
==============================================================================
--- trunk/app/core/gimpimage-resize.c (original)
+++ trunk/app/core/gimpimage-resize.c Mon Aug 4 20:11:35 2008
@@ -220,7 +220,7 @@
gimp_image_undo_group_end (image);
- gimp_image_emit_size_changed_signals (image, offset_x, offset_y);
+ gimp_image_size_changed_detailed (image, offset_x, offset_y);
g_object_thaw_notify (G_OBJECT (image));
Modified: trunk/app/core/gimpimage-rotate.c
==============================================================================
--- trunk/app/core/gimpimage-rotate.c (original)
+++ trunk/app/core/gimpimage-rotate.c Mon Aug 4 20:11:35 2008
@@ -208,7 +208,7 @@
gimp_image_undo_group_end (image);
if (size_changed)
- gimp_image_emit_size_changed_signals (image, -offset_x, -offset_y);
+ gimp_image_size_changed_detailed (image, -offset_x, -offset_y);
g_object_thaw_notify (G_OBJECT (image));
Modified: trunk/app/core/gimpimage-scale.c
==============================================================================
--- trunk/app/core/gimpimage-scale.c (original)
+++ trunk/app/core/gimpimage-scale.c Mon Aug 4 20:11:35 2008
@@ -212,7 +212,7 @@
g_object_unref (sub_progress);
- gimp_image_emit_size_changed_signals (image, -offset_x, -offset_y);
+ gimp_image_size_changed_detailed (image, -offset_x, -offset_y);
g_object_thaw_notify (G_OBJECT (image));
Modified: trunk/app/core/gimpimage-undo-push.c
==============================================================================
--- trunk/app/core/gimpimage-undo-push.c (original)
+++ trunk/app/core/gimpimage-undo-push.c Mon Aug 4 20:11:35 2008
@@ -81,8 +81,8 @@
GimpUndo *
gimp_image_undo_push_image_size (GimpImage *image,
const gchar *undo_desc,
- gdouble previous_origin_x,
- gdouble previous_origin_y)
+ gint previous_origin_x,
+ gint previous_origin_y)
{
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
Modified: trunk/app/core/gimpimage-undo-push.h
==============================================================================
--- trunk/app/core/gimpimage-undo-push.h (original)
+++ trunk/app/core/gimpimage-undo-push.h Mon Aug 4 20:11:35 2008
@@ -26,8 +26,8 @@
const gchar *undo_desc);
GimpUndo * gimp_image_undo_push_image_size (GimpImage *image,
const gchar *undo_desc,
- gdouble previous_origin_x,
- gdouble previous_origin_y);
+ gint previous_origin_x,
+ gint previous_origin_y);
GimpUndo * gimp_image_undo_push_image_resolution (GimpImage *image,
const gchar *undo_desc);
GimpUndo * gimp_image_undo_push_image_grid (GimpImage *image,
Modified: trunk/app/core/gimpimage-undo.c
==============================================================================
--- trunk/app/core/gimpimage-undo.c (original)
+++ trunk/app/core/gimpimage-undo.c Mon Aug 4 20:11:35 2008
@@ -381,9 +381,10 @@
gimp_image_mode_changed (image);
if (accum.size_changed)
- gimp_image_emit_size_changed_signals (image,
- accum.previous_origin_x,
- accum.previous_origin_y);
+ gimp_image_size_changed_detailed (image,
+ accum.previous_origin_x,
+ accum.previous_origin_y);
+
if (accum.resolution_changed)
gimp_image_resolution_changed (image);
Modified: trunk/app/core/gimpimage.c
==============================================================================
--- trunk/app/core/gimpimage.c (original)
+++ trunk/app/core/gimpimage.c Mon Aug 4 20:11:35 2008
@@ -148,6 +148,10 @@
static void gimp_image_size_changed (GimpViewable *viewable);
static gchar * gimp_image_get_description (GimpViewable *viewable,
gchar **tooltip);
+static void gimp_image_real_size_changed_detailed
+ (GimpImage *image,
+ gint previous_origin_x,
+ gint previous_origin_y);
static void gimp_image_real_colormap_changed (GimpImage *image,
gint color_index);
static void gimp_image_real_flush (GimpImage *image,
@@ -321,10 +325,10 @@
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GimpImageClass, size_changed_detailed),
NULL, NULL,
- gimp_marshal_VOID__DOUBLE_DOUBLE,
+ gimp_marshal_VOID__INT_INT,
G_TYPE_NONE, 2,
- G_TYPE_DOUBLE,
- G_TYPE_DOUBLE);
+ G_TYPE_INT,
+ G_TYPE_INT);
gimp_image_signals[UNIT_CHANGED] =
g_signal_new ("unit-changed",
@@ -516,7 +520,11 @@
klass->component_visibility_changed = NULL;
klass->component_active_changed = NULL;
klass->mask_changed = NULL;
- klass->size_changed_detailed = NULL;
+ klass->resolution_changed = NULL;
+ klass->size_changed_detailed = gimp_image_real_size_changed_detailed;
+ klass->unit_changed = NULL;
+ klass->quick_mask_changed = NULL;
+ klass->selection_control = NULL;
klass->clean = NULL;
klass->dirty = NULL;
@@ -1112,6 +1120,14 @@
}
static void
+gimp_image_real_size_changed_detailed (GimpImage *image,
+ gint previous_origin_x,
+ gint previous_origin_y)
+{
+ gimp_viewable_size_changed (GIMP_VIEWABLE (image));
+}
+
+static void
gimp_image_real_colormap_changed (GimpImage *image,
gint color_index)
{
@@ -1483,7 +1499,7 @@
image->yresolution = yresolution;
gimp_image_resolution_changed (image);
- gimp_image_emit_size_changed_signals (image, 0.0, 0.0);
+ gimp_image_size_changed_detailed (image, 0, 0);
}
}
@@ -1816,11 +1832,12 @@
* position of the image in the display shell on various operations,
* e.g. crop.
*
+ * This function makes sure that GimpViewable::size-changed is also emitted.
**/
void
gimp_image_size_changed_detailed (GimpImage *image,
- gdouble previous_origin_x,
- gdouble previous_origin_y)
+ gint previous_origin_x,
+ gint previous_origin_y)
{
g_return_if_fail (GIMP_IS_IMAGE (image));
@@ -1857,21 +1874,6 @@
g_signal_emit (image, gimp_image_signals[QUICK_MASK_CHANGED], 0);
}
-void
-gimp_image_emit_size_changed_signals (GimpImage *image,
- gdouble previous_origin_x,
- gdouble previous_origin_y)
-{
- /* Emit GimpViewable::size-changed */
- gimp_viewable_size_changed (GIMP_VIEWABLE (image));
-
- /* Then emit basically the same signal but with more
- * details. Clients can choose what signal of these two to listen to
- * depending on how much info they need.
- */
- gimp_image_size_changed_detailed (image, previous_origin_x, previous_origin_y);
-}
-
/* undo */
Modified: trunk/app/core/gimpimage.h
==============================================================================
--- trunk/app/core/gimpimage.h (original)
+++ trunk/app/core/gimpimage.h Mon Aug 4 20:11:35 2008
@@ -191,6 +191,9 @@
GimpChannelType channel);
void (* mask_changed) (GimpImage *image);
void (* resolution_changed) (GimpImage *image);
+ void (* size_changed_detailed) (GimpImage *image,
+ gint previous_origin_x,
+ gint previous_origin_y);
void (* unit_changed) (GimpImage *image);
void (* quick_mask_changed) (GimpImage *image);
void (* selection_control) (GimpImage *image,
@@ -216,9 +219,6 @@
GimpSamplePoint *sample_point);
void (* sample_point_removed) (GimpImage *image,
GimpSamplePoint *sample_point);
- void (* size_changed_detailed) (GimpImage *image,
- gdouble previous_origin_x,
- gdouble previous_origin_y);
void (* parasite_attached) (GimpImage *image,
const gchar *name);
void (* parasite_detached) (GimpImage *image,
@@ -322,19 +322,14 @@
GimpSamplePoint *sample_point);
void gimp_image_sample_point_removed (GimpImage *image,
GimpSamplePoint *sample_point);
-void gimp_image_size_changed_detailed (GimpImage *image,
- gdouble previous_origin_x,
- gdouble previous_origin_y);
void gimp_image_colormap_changed (GimpImage *image,
gint col);
void gimp_image_selection_control (GimpImage *image,
GimpSelectionControl control);
void gimp_image_quick_mask_changed (GimpImage *image);
-void gimp_image_emit_size_changed_signals
- (GimpImage *image,
- gdouble previous_origin_x,
- gdouble previous_origin_y);
-
+void gimp_image_size_changed_detailed (GimpImage *image,
+ gint previous_origin_x,
+ gint previous_origin_y);
/* undo */
Modified: trunk/app/core/gimpimageundo.c
==============================================================================
--- trunk/app/core/gimpimageundo.c (original)
+++ trunk/app/core/gimpimageundo.c Mon Aug 4 20:11:35 2008
@@ -92,18 +92,20 @@
undo_class->free = gimp_image_undo_free;
g_object_class_install_property (object_class, PROP_PREVIOUS_ORIGIN_X,
- g_param_spec_double ("previous-origin-x", NULL, NULL,
- -G_MAXDOUBLE,
- G_MAXDOUBLE,
- 0.0,
- GIMP_PARAM_READWRITE));
+ g_param_spec_int ("previous-origin-x",
+ NULL, NULL,
+ -GIMP_MAX_IMAGE_SIZE,
+ GIMP_MAX_IMAGE_SIZE,
+ 0,
+ GIMP_PARAM_READWRITE));
g_object_class_install_property (object_class, PROP_PREVIOUS_ORIGIN_Y,
- g_param_spec_double ("previous-origin-y", NULL, NULL,
- -G_MAXDOUBLE,
- G_MAXDOUBLE,
- 0.0,
- GIMP_PARAM_READWRITE));
+ g_param_spec_int ("previous-origin-y",
+ NULL, NULL,
+ -GIMP_MAX_IMAGE_SIZE,
+ GIMP_MAX_IMAGE_SIZE,
+ 0,
+ GIMP_PARAM_READWRITE));
g_object_class_install_property (object_class, PROP_GRID,
g_param_spec_object ("grid", NULL, NULL,
@@ -193,10 +195,10 @@
switch (property_id)
{
case PROP_PREVIOUS_ORIGIN_X:
- image_undo->previous_origin_x = g_value_get_double (value);
+ image_undo->previous_origin_x = g_value_get_int (value);
break;
case PROP_PREVIOUS_ORIGIN_Y:
- image_undo->previous_origin_y = g_value_get_double (value);
+ image_undo->previous_origin_y = g_value_get_int (value);
break;
case PROP_GRID:
{
@@ -227,10 +229,10 @@
switch (property_id)
{
case PROP_PREVIOUS_ORIGIN_X:
- g_value_set_double (value, image_undo->previous_origin_x);
+ g_value_set_int (value, image_undo->previous_origin_x);
break;
case PROP_PREVIOUS_ORIGIN_Y:
- g_value_set_double (value, image_undo->previous_origin_y);
+ g_value_set_int (value, image_undo->previous_origin_y);
break;
case PROP_GRID:
g_value_set_object (value, image_undo->grid);
@@ -293,10 +295,10 @@
case GIMP_UNDO_IMAGE_SIZE:
{
- gint width;
- gint height;
- gdouble previous_origin_x;
- gdouble previous_origin_y;
+ gint width;
+ gint height;
+ gint previous_origin_x;
+ gint previous_origin_y;
width = image_undo->width;
height = image_undo->height;
Modified: trunk/app/core/gimpimageundo.h
==============================================================================
--- trunk/app/core/gimpimageundo.h (original)
+++ trunk/app/core/gimpimageundo.h Mon Aug 4 20:11:35 2008
@@ -40,8 +40,8 @@
GimpImageBaseType base_type;
gint width;
gint height;
- gdouble previous_origin_x;
- gdouble previous_origin_y;
+ gint previous_origin_x;
+ gint previous_origin_y;
gdouble xresolution;
gdouble yresolution;
GimpUnit resolution_unit;
Modified: trunk/app/display/gimpdisplayshell-handlers.c
==============================================================================
--- trunk/app/display/gimpdisplayshell-handlers.c (original)
+++ trunk/app/display/gimpdisplayshell-handlers.c Mon Aug 4 20:11:35 2008
@@ -21,6 +21,7 @@
#include <gtk/gtk.h>
#include "libgimpcolor/gimpcolor.h"
+#include "libgimpmath/gimpmath.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "display-types.h"
@@ -67,8 +68,8 @@
GimpDisplayShell *shell);
static void gimp_display_shell_size_changed_detailed_handler
(GimpImage *image,
- gdouble previous_origin_x,
- gdouble previous_origin_y,
+ gint previous_origin_x,
+ gint previous_origin_y,
GimpDisplayShell *shell);
static void gimp_display_shell_resolution_changed_handler (GimpImage *image,
GimpDisplayShell *shell);
@@ -481,13 +482,32 @@
static void
gimp_display_shell_size_changed_detailed_handler (GimpImage *image,
- gdouble previous_origin_x,
- gdouble previous_origin_y,
+ gint previous_origin_x,
+ gint previous_origin_y,
GimpDisplayShell *shell)
{
- gimp_display_shell_handle_size_changed_detailed (shell,
- previous_origin_x,
- previous_origin_y);
+ if (shell->display->config->resize_windows_on_resize)
+ {
+ /* If the window is resized just center the image in it when it
+ * has change size
+ */
+ gimp_display_shell_shrink_wrap (shell, FALSE);
+ gimp_display_shell_center_image_on_next_size_allocate (shell);
+ }
+ else
+ {
+ gint scaled_previous_origin_x = SCALEX (shell, previous_origin_x);
+ gint scaled_previous_origin_y = SCALEY (shell, previous_origin_y);
+
+ /* Note that we can't use gimp_display_shell_scroll_private() here
+ * because that would expose the image twice, causing unwanted
+ * flicker.
+ */
+ gimp_display_shell_scale_by_values (shell, gimp_zoom_model_get_factor (shell->zoom),
+ shell->offset_x + scaled_previous_origin_x,
+ shell->offset_y + scaled_previous_origin_y,
+ FALSE);
+ }
}
static void
Modified: trunk/app/display/gimpdisplayshell-scroll.c
==============================================================================
--- trunk/app/display/gimpdisplayshell-scroll.c (original)
+++ trunk/app/display/gimpdisplayshell-scroll.c Mon Aug 4 20:11:35 2008
@@ -205,47 +205,6 @@
}
/**
- * gimp_display_shell_handle_size_changed_detailed:
- * @shell:
- * @previous_origin_x:
- * @previous_origin_y:
- *
- * On e.g. an image crop we want to avoid repositioning the image
- * content in the display shell if possible.
- *
- **/
-void
-gimp_display_shell_handle_size_changed_detailed (GimpDisplayShell *shell,
- gdouble previous_origin_x,
- gdouble previous_origin_y)
-{
- g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
-
- if (shell->display->config->resize_windows_on_resize)
- {
- /* If the window is resized just center the image in it when it
- * has change size
- */
- gimp_display_shell_shrink_wrap (shell, FALSE);
- gimp_display_shell_center_image_on_next_size_allocate (shell);
- }
- else
- {
- gint scaled_previous_origin_x = SCALEX (shell, previous_origin_x);
- gint scaled_previous_origin_y = SCALEY (shell, previous_origin_y);
-
- /* Note that we can't use gimp_display_shell_scroll_private() here
- * because that would expose the image twice, causing unwanted
- * flicker.
- */
- gimp_display_shell_scale_by_values (shell, gimp_zoom_model_get_factor (shell->zoom),
- shell->offset_x + scaled_previous_origin_x,
- shell->offset_y + scaled_previous_origin_y,
- FALSE);
- }
-}
-
-/**
* gimp_display_shell_get_scaled_viewport:
* @shell:
* @x:
Modified: trunk/app/display/gimpdisplayshell-scroll.h
==============================================================================
--- trunk/app/display/gimpdisplayshell-scroll.h (original)
+++ trunk/app/display/gimpdisplayshell-scroll.h Mon Aug 4 20:11:35 2008
@@ -26,10 +26,6 @@
void gimp_display_shell_scroll_clamp_offsets (GimpDisplayShell *shell);
-void gimp_display_shell_handle_size_changed_detailed (GimpDisplayShell *shell,
- gdouble previous_origin_x,
- gdouble previous_origin_y);
-
void gimp_display_shell_get_scaled_viewport (const GimpDisplayShell *shell,
gint *x,
gint *y,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]