Skip to content

Commit 580e4fa

Browse files
Cobinjaraveit65
authored andcommitted
Add zoom reset
origin commit: linuxmint/xreader@43acb8f
1 parent a3ade9f commit 580e4fa

File tree

9 files changed

+61
-0
lines changed

9 files changed

+61
-0
lines changed

‎data/atril-previewer-ui.xml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<toolitem name="ViewFitPage" action="ViewFitPage"/>
1010
<toolitem name="ViewZoomIn" action="ViewZoomIn"/>
1111
<toolitem name="ViewZoomOut" action="ViewZoomOut"/>
12+
<toolitem name="ViewZoomReset" action="ViewZoomReset"/>
1213
<separator/>
1314
<toolitem name="PreviewPrint" action="PreviewPrint"/>
1415
</toolbar>

‎data/atril-toolbar.xml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<toolitem name="ViewZoom"/>
1515
<toolitem name="ViewZoomIn"/>
1616
<toolitem name="ViewZoomOut"/>
17+
<toolitem name="ViewZoomReset"/>
1718
<toolitem name="ViewFitPage"/>
1819
<toolitem name="ViewFitWidth"/>
1920
<toolitem name="ViewFullscreen"/>

‎data/atril-ui.xml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
<separator/>
5050
<menuitem name="ViewZoomInMenu" action="ViewZoomIn"/>
5151
<menuitem name="ViewZoomOutMenu" action="ViewZoomOut"/>
52+
<menuitem name="ViewZoomResetMenu" action="ViewZoomReset"/>
5253
<menuitem name="ViewFitPageMenu" action="ViewFitPage"/>
5354
<menuitem name="ViewFitWidthMenu" action="ViewFitWidth"/>
5455
<menuitem name="ViewExpandWindowMenu" action="ViewExpandWindow"/>

‎libview/ev-view.c‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7088,6 +7088,13 @@ ev_view_zoom_out (EvView *view)
70887088
ev_view_zoom (view, ZOOM_OUT_FACTOR);
70897089
}
70907090

7091+
void
7092+
ev_view_zoom_reset (EvView *view)
7093+
{
7094+
g_return_if_fail (view->sizing_mode == EV_SIZING_FREE);
7095+
ev_document_model_set_scale (view->model, 1.2);
7096+
}
7097+
70917098
static double
70927099
zoom_for_size_fit_width (gdouble doc_width,
70937100
gdouble doc_height,

‎libview/ev-view.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ gboolean ev_view_can_zoom_in (EvView *view);
6363
void ev_view_zoom_in (EvView *view);
6464
gboolean ev_view_can_zoom_out (EvView *view);
6565
void ev_view_zoom_out (EvView *view);
66+
void ev_view_zoom_reset (EvView *view);
6667
void ev_view_zoom (EvView *view,
6768
gdouble factor);
6869

‎libview/ev-web-view.c‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,17 @@ ev_web_view_zoom_out(EvWebView *webview)
687687
return TRUE;
688688
}
689689

690+
gboolean
691+
ev_web_view_zoom_reset(EvWebView *webview)
692+
{
693+
if (webview->zoom_level == 1)
694+
return FALSE;
695+
696+
webkit_web_view_set_zoom_level (WEBKIT_WEB_VIEW(webview),
697+
1.0);
698+
return TRUE;
699+
}
700+
690701
/**
691702
* ev_web_view_disconnect_handlers
692703
* @webview : #EvWebView instance

‎libview/ev-web-view.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ void ev_web_view_copy (EvWebView *webview);
8383
/* Zoom control */
8484
gboolean ev_web_view_zoom_in (EvWebView *webview);
8585
gboolean ev_web_view_zoom_out (EvWebView *webview);
86+
gboolean ev_web_view_zoom_reset (EvWebView *webview);
8687

8788
/*For safe replacement by an EvView*/
8889
void ev_web_view_disconnect_handlers (EvWebView *webview);

‎previewer/ev-previewer-window.c‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,14 @@ ev_previewer_window_zoom_out (GtkAction *action,
138138
ev_view_zoom_out (window->view);
139139
}
140140

141+
static void
142+
ev_previewer_window_zoom_reset (GtkAction *action,
143+
EvPreviewerWindow *window)
144+
{
145+
ev_document_model_set_sizing_mode (window->model, EV_SIZING_FREE);
146+
ev_view_zoom_reset (window->view);
147+
}
148+
141149
static void
142150
ev_previewer_window_zoom_fit_page (GtkToggleAction *action,
143151
EvPreviewerWindow *window)
@@ -284,6 +292,9 @@ static const GtkActionEntry action_entries[] = {
284292
{ "ViewZoomOut", "zoom-out", N_("Zoom _Out"), "<control>minus",
285293
N_("Shrink the document"),
286294
G_CALLBACK (ev_previewer_window_zoom_out) },
295+
{ "ViewZoomReset", "zoom-original", NULL, "<control>0",
296+
N_("Reset zoom to 100\%"),
297+
G_CALLBACK (ev_previewer_window_zoom_reset) },
287298
#if GTKUNIXPRINT_ENABLED
288299
/* translators: Print document currently shown in the Print Preview window */
289300
{ "PreviewPrint", "document-print", N_("Print"), NULL,

‎shell/ev-window.c‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,9 @@ ev_window_update_actions (EvWindow *ev_window)
575575
has_pages &&
576576
ev_view_can_zoom_out (view) &&
577577
!presentation_mode);
578+
ev_window_set_action_sensitive (ev_window, "ViewZoomReset",
579+
has_pages &&
580+
!presentation_mode);
578581
ev_window_set_action_sensitive (ev_window, "ViewDualOddLeft",
579582
dual_mode);
580583
}
@@ -4724,6 +4727,23 @@ ev_window_cmd_view_zoom_out (GtkAction *action, EvWindow *ev_window)
47244727
}
47254728
}
47264729

4730+
static void
4731+
ev_window_cmd_view_zoom_reset (GtkAction *action, EvWindow *ev_window)
4732+
{
4733+
g_return_if_fail (EV_IS_WINDOW (ev_window));
4734+
4735+
ev_document_model_set_sizing_mode (ev_window->priv->model, EV_SIZING_FREE);
4736+
#if ENABLE_EPUB
4737+
if ( ev_window->priv->document->iswebdocument) {
4738+
ev_web_view_zoom_reset(EV_WEB_VIEW(ev_window->priv->webview));
4739+
}
4740+
else
4741+
#endif
4742+
{
4743+
ev_view_zoom_reset (EV_VIEW (ev_window->priv->view));
4744+
}
4745+
}
4746+
47274747
static void
47284748
ev_window_cmd_go_previous_page (GtkAction *action, EvWindow *ev_window)
47294749
{
@@ -6300,6 +6320,9 @@ static const GtkActionEntry entries[] = {
63006320
{ "ViewZoomOut", "zoom-out", N_("Zoom _Out"), "<control>minus",
63016321
N_("Shrink the document"),
63026322
G_CALLBACK (ev_window_cmd_view_zoom_out) },
6323+
{ "ViewZoomReset", "zoom-original", N_("_Reset Zoom"), "<control>0",
6324+
N_("Reset zoom to 100\%"),
6325+
G_CALLBACK (ev_window_cmd_view_zoom_reset) },
63036326
{ "ViewReload", "view-refresh", N_("_Reload"), "<control>R",
63046327
N_("Reload the document"),
63056328
G_CALLBACK (ev_window_cmd_view_reload) },
@@ -6653,6 +6676,10 @@ set_action_properties (GtkActionGroup *action_group)
66536676
/*translators: this is the label for toolbar button*/
66546677
g_object_set (action, "short_label", _("Zoom Out"), NULL);
66556678

6679+
action = gtk_action_group_get_action (action_group, "ViewZoomReset");
6680+
/*translators: this is the label for toolbar button*/
6681+
g_object_set (action, "short_label", _("Reset Zoom"), NULL);
6682+
66566683
action = gtk_action_group_get_action (action_group, "ViewFitPage");
66576684
/*translators: this is the label for toolbar button*/
66586685
g_object_set (action, "short_label", _("Fit Page"), NULL);

0 commit comments

Comments
 (0)