[gimp/blend-tool-fun: 139/163] Bug 734573 - Zoom to selection
- From: Michael Henning <mhenning src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/blend-tool-fun: 139/163] Bug 734573 - Zoom to selection
- Date: Mon, 26 Oct 2015 02:29:55 +0000 (UTC)
commit 0215c4da83f44b8ef478ddff09698242b192762d
Author: Michael Natterer <mitch gimp org>
Date: Sun Oct 18 15:26:17 2015 +0200
Bug 734573 - Zoom to selection
Implement View -> Zoom -> Zoom to Selection using
gimp_display_shell_scale_to_rectangle()
app/actions/view-actions.c | 7 +++++++
app/actions/view-commands.c | 19 +++++++++++++++++++
app/actions/view-commands.h | 2 ++
app/widgets/gimphelp-ids.h | 1 +
menus/image-menu.xml.in | 1 +
5 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/app/actions/view-actions.c b/app/actions/view-actions.c
index 06bfcd5..6efcd9d 100644
--- a/app/actions/view-actions.c
+++ b/app/actions/view-actions.c
@@ -98,6 +98,12 @@ static const GimpActionEntry view_actions[] =
G_CALLBACK (view_zoom_fill_cmd_callback),
GIMP_HELP_VIEW_ZOOM_FILL },
+ { "view-zoom-selection", "gimp-selection",
+ NC_("view-action", "Zoom to _Selection"), NULL,
+ NC_("view-action", "Adjust the zoom ratio so that the selection fills the window"),
+ G_CALLBACK (view_zoom_selection_cmd_callback),
+ GIMP_HELP_VIEW_ZOOM_SELECTION },
+
{ "view-zoom-revert", NULL,
NC_("view-action", "Re_vert Zoom"), "grave",
NC_("view-action", "Restore the previous zoom level"),
@@ -692,6 +698,7 @@ view_actions_update (GimpActionGroup *group,
SET_SENSITIVE ("view-zoom-fit-in", image);
SET_SENSITIVE ("view-zoom-fill", image);
+ SET_SENSITIVE ("view-zoom-selection", image);
SET_SENSITIVE ("view-zoom-revert", image);
SET_SENSITIVE ("view-zoom-16-1", image);
diff --git a/app/actions/view-commands.c b/app/actions/view-commands.c
index 921cdfd..8662696 100644
--- a/app/actions/view-commands.c
+++ b/app/actions/view-commands.c
@@ -135,6 +135,25 @@ view_zoom_fill_cmd_callback (GtkAction *action,
}
void
+view_zoom_selection_cmd_callback (GtkAction *action,
+ gpointer data)
+{
+ GimpDisplay *display;
+ GimpImage *image;
+ gint x, y, width, height;
+ return_if_no_display (display, data);
+ return_if_no_image (image, data);
+
+ gimp_item_bounds (GIMP_ITEM (gimp_image_get_mask (image)),
+ &x, &y, &width, &height);
+
+ gimp_display_shell_scale_to_rectangle (gimp_display_get_shell (display),
+ GIMP_ZOOM_IN,
+ x, y, width, height,
+ FALSE);
+}
+
+void
view_zoom_revert_cmd_callback (GtkAction *action,
gpointer data)
{
diff --git a/app/actions/view-commands.h b/app/actions/view-commands.h
index b58b28e..df79065 100644
--- a/app/actions/view-commands.h
+++ b/app/actions/view-commands.h
@@ -28,6 +28,8 @@ void view_zoom_fit_in_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_fill_cmd_callback (GtkAction *action,
gpointer data);
+void view_zoom_selection_cmd_callback (GtkAction *action,
+ gpointer data);
void view_zoom_revert_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_cmd_callback (GtkAction *action,
diff --git a/app/widgets/gimphelp-ids.h b/app/widgets/gimphelp-ids.h
index 481de1c..e0e9423 100644
--- a/app/widgets/gimphelp-ids.h
+++ b/app/widgets/gimphelp-ids.h
@@ -86,6 +86,7 @@
#define GIMP_HELP_VIEW_ZOOM_100 "gimp-view-zoom-100"
#define GIMP_HELP_VIEW_ZOOM_FIT_IN "gimp-view-zoom-fit-in"
#define GIMP_HELP_VIEW_ZOOM_FILL "gimp-view-zoom-fill"
+#define GIMP_HELP_VIEW_ZOOM_SELECTION "gimp-view-zoom-selection"
#define GIMP_HELP_VIEW_ZOOM_OTHER "gimp-view-zoom-other"
#define GIMP_HELP_VIEW_ROTATE_RESET "gimp-view-rotate-reset"
#define GIMP_HELP_VIEW_ROTATE_15 "gimp-view-rotate-15"
diff --git a/menus/image-menu.xml.in b/menus/image-menu.xml.in
index b96baf4..5777f06 100644
--- a/menus/image-menu.xml.in
+++ b/menus/image-menu.xml.in
@@ -260,6 +260,7 @@
<menuitem action="view-zoom-in" />
<menuitem action="view-zoom-fit-in" />
<menuitem action="view-zoom-fill" />
+ <menuitem action="view-zoom-selection" />
<separator />
<menuitem action="view-zoom-16-1" />
<menuitem action="view-zoom-8-1" />
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]