app: add new action "view-scroll-center" with shortcut Shift+J

The zoom focus discussion on IRC suggests that everybody is annoyed
about centering behavior (or lack thereof), so here is a way to
explicitly center the image witout zooming.
This commit is contained in:
Michael Natterer 2018-05-19 18:03:23 +02:00
parent c6f07f5db2
commit 2439ae3acf
6 changed files with 26 additions and 0 deletions

2
NEWS
View File

@ -46,6 +46,8 @@ Usability:
- Improve mouse wheel zooming behavior to keep the same point
centered under the pointer even if the image is completely visible
in the canvas.
- Add "View -> Center Image in Window" (Shift+J) as a quick way to
center the image at any zoom level.
Translations:

View File

@ -97,6 +97,12 @@ static const GimpActionEntry view_actions[] =
G_CALLBACK (view_close_cmd_callback),
GIMP_HELP_FILE_CLOSE },
{ "view-scroll-center", GIMP_ICON_CENTER,
NC_("view-action", "Center Image in Window"), "<shift>J",
NC_("view-action", "Scroll the image so that it is centered in the window"),
G_CALLBACK (view_scroll_center_cmd_callback),
GIMP_HELP_VIEW_SCROLL_CENTER },
{ "view-zoom-fit-in", GIMP_ICON_ZOOM_FIT_BEST,
NC_("view-action", "_Fit Image in Window"), "<primary><shift>J",
NC_("view-action", "Adjust the zoom ratio so that the image becomes fully visible"),
@ -897,6 +903,8 @@ view_actions_update (GimpActionGroup *group,
SET_SENSITIVE ("view-dot-for-dot", image);
SET_ACTIVE ("view-dot-for-dot", display && shell->dot_for_dot);
SET_SENSITIVE ("view-scroll-center", image);
SET_SENSITIVE ("view-zoom-revert", revert_enabled);
if (revert_enabled)
{

View File

@ -125,6 +125,17 @@ view_close_cmd_callback (GtkAction *action,
gimp_display_shell_close (shell, FALSE);
}
void
view_scroll_center_cmd_callback (GtkAction *action,
gpointer data)
{
GimpDisplay *display;
return_if_no_display (display, data);
gimp_display_shell_scroll_center_image (gimp_display_get_shell (display),
TRUE, TRUE);
}
void
view_zoom_fit_in_cmd_callback (GtkAction *action,
gpointer data)

View File

@ -24,6 +24,9 @@ void view_new_cmd_callback (GtkAction *action,
void view_close_cmd_callback (GtkAction *action,
gpointer data);
void view_scroll_center_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_fit_in_cmd_callback (GtkAction *action,
gpointer data);
void view_zoom_fill_cmd_callback (GtkAction *action,

View File

@ -85,6 +85,7 @@
#define GIMP_HELP_VIEW_NEW "gimp-view-new"
#define GIMP_HELP_VIEW_DOT_FOR_DOT "gimp-view-dot-for-dot"
#define GIMP_HELP_VIEW_SCROLL_CENTER "gimp-view-scroll-center"
#define GIMP_HELP_VIEW_ZOOM_REVERT "gimp-view-zoom-revert"
#define GIMP_HELP_VIEW_ZOOM_OUT "gimp-view-zoom-out"
#define GIMP_HELP_VIEW_ZOOM_IN "gimp-view-zoom-in"

View File

@ -294,6 +294,7 @@
<separator />
<menuitem action="view-rotate-other" />
</menu>
<menuitem action="view-scroll-center" />
<separator />
<menuitem action="view-shrink-wrap" />
<menuitem action="view-fullscreen" />