Ubuntu 14.04 또는 16.04 또는 Ubuntu에서 수정하지 않은 업스트림 / 바닐라 evince에서는 툴바를 숨길 수 없습니다. 필사적 인 경우 소스를 패치하고 다시 컴파일 할 수 있습니다.
바닐라 evince에서는 전체 화면 모드에서 툴바가 자동 숨기기됩니다.이 기능은 완전히 충분하지는 않지만 다소 유용합니다 (반 지능적 인 행동은 원하는 것을 정확하게 수행하지 못합니다. 전체 화면 모드 – 화면 공간 절약이 특히 중요 할 때).
불행히도 우분투 (14.04 및 16.04)에 패키지 된 것처럼 보이지만 불가능합니다. 정상적인 메뉴 표시 줄과 도구 모음의 정상적인 위치를 반환하는 (아주 유용한) 우분투 관련 패치는 자동 숨김 동작을 중단하여 문제를 악화시키는 것으로 보입니다.
버그 리포트
관련 버그 (우분투 및 업스트림)는 다음과 같습니다.
https://bugs.launchpad.net/ubuntu/+source/evince/+bug/1522527
https://bugs.launchpad.net/ubuntu/+source/evince/+bug/1409291
https://bugzilla.gnome.org/show_bug.cgi?id=714996
패치
그놈 버그 보고서에 작업 패치가 제공되었지만 (Reinis Danne에 의해) 승인되지 않았습니다. 3.12 , 현대 마스터 지점 및 3.14에 대한 직접 링크 .
운 좋게도이 패치는 Ubuntu 16.04에서 볼 수 있듯이 3.18에 수동으로 적용 할 수 있습니다 (코드를 복사하여 붙여 넣기). 코드를 직접 적용 patch
하면 주변 코드가 약간 변경되어 작동하지 않는 것 같습니다.
소스를 얻으려면 :
apt-get source evince
cd evince-3.18.2/
그래도 문제가 해결되지 않으면의 deb-src
행을 주석 해제하십시오 /etc/apt/sources.list
.
다음 패치를 적용하십시오 (Reinis Danne에서 제공하고 위에서 링크되어 있으며 여기에 제공됨).
--- a/shell/ev-application.c 2018-01-02 23:00:00.502095551 +0100
+++ b/shell/ev-application.c 2018-01-03 23:15:00.713553169 +0100
@@ -1059,9 +1059,24 @@
}
static void
+app_toggle_toolbar_cb (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ EvApplication *application = user_data;
+ EvWindow *window = EV_WINDOW (gtk_application_get_active_window (GTK_APPLICATION (application)));
+ GActionMap *action_map = G_ACTION_MAP (window);
+ GAction *gaction = g_action_map_lookup_action (action_map, "toggle-toolbar");
+
+ g_action_activate (gaction, NULL);
+}
+
+
+static void
ev_application_startup (GApplication *gapplication)
{
const GActionEntry app_menu_actions[] = {
+ { "toggle-toolbar", app_toggle_toolbar_cb, NULL, NULL, NULL },
{ "new", app_new_cb, NULL, NULL, NULL },
{ "help", app_help_cb, NULL, NULL, NULL },
{ "about", app_about_cb, NULL, NULL, NULL }
@@ -1095,6 +1110,7 @@
"win.caret-navigation", "F7", NULL,
"win.zoom-in", "plus", "<Ctrl>plus", "KP_Add", "<Ctrl>KP_Add", "equal", "<Ctrl>equal", NULL,
"win.zoom-out", "minus", "<Ctrl>minus", "KP_Subtract", "<Ctrl>KP_Subtract", NULL,
+ "win.toggle-toolbar", "<Ctrl>H", NULL,
"win.show-side-pane", "F9", NULL,
"win.fullscreen", "F11", NULL,
"win.presentation", "F5", NULL,
--- a/shell/ev-window.c 2018-01-02 23:00:00.502095551 +0100
+++ b/shell/ev-window.c 2018-01-02 23:14:36.995706943 +0100
@@ -4907,6 +4907,27 @@
}
static void
+ev_window_view_cmd_toggle_toolbar (GSimpleAction *action,
+ GVariant *state,
+ gpointer user_data)
+{
+ EvWindow *ev_window = user_data;
+ EvWindowPrivate *priv = ev_window->priv;
+
+ gboolean toolbar;
+ gboolean presentation;
+
+ presentation = EV_WINDOW_IS_PRESENTATION (ev_window);
+
+ toolbar = ((priv->chrome & EV_CHROME_TOOLBAR) != 0 ||
+ (priv->chrome & EV_CHROME_RAISE_TOOLBAR) != 0) && !presentation;
+
+ update_chrome_flag (ev_window, EV_CHROME_TOOLBAR, !toolbar);
+
+ set_widget_visibility (priv->toolbar, !toolbar);
+}
+
+static void
ev_window_view_cmd_toggle_sidebar (GSimpleAction *action,
GVariant *state,
gpointer user_data)
@@ -5697,6 +5718,7 @@
{ "continuous", NULL, NULL, "true", ev_window_cmd_continuous },
{ "dual-page", NULL, NULL, "false", ev_window_cmd_dual },
{ "dual-odd-left", NULL, NULL, "false", ev_window_cmd_dual_odd_pages_left },
+ { "toggle-toolbar", NULL, NULL, "true", ev_window_view_cmd_toggle_toolbar },
{ "show-side-pane", NULL, NULL, "false", ev_window_view_cmd_toggle_sidebar },
{ "inverted-colors", NULL, NULL, "false", ev_window_cmd_view_inverted_colors },
{ "fullscreen", NULL, NULL, "false", ev_window_cmd_view_fullscreen },
--- a/shell/evince-menus.ui 2018-01-02 23:00:00.502095551 +0100
+++ b/shell/evince-menus.ui 2018-01-03 23:16:02.969635772 +0100
@@ -21,6 +21,12 @@
<menu id="appmenu">
<section>
<item>
+ <attribute name="label" translatable="yes">_Toggle toolbar</attribute>
+ <attribute name="action">app.toggle-toolbar</attribute>
+ <attribute name="accel"><Primary>H</attribute>
+ </item>
+ </section> <section>
+ <item>
<attribute name="label" translatable="yes">_New Window</attribute>
<attribute name="action">app.new</attribute>
</item>
@@ -41,6 +47,10 @@
<menu id="view-menu">
<section>
<item>
+ <attribute name="label" translatable="yes">_Toolbar</attribute>
+ <attribute name="action">win.toggle-toolbar</attribute>
+ </item>
+ <item>
<attribute name="label" translatable="yes">_Continuous</attribute>
<attribute name="action">win.continuous</attribute>
</item>
와 patch -p1 < name_of_patch_file.patch
또는 사용 quilt
(을 적용한 후 / 전에 패치를 읽어 이상적와 - 실제로 상당히 이해할 수있어, 특히 맥락에서).
마지막으로, evince를 표준으로 컴파일 ./configure; make; sudo make install
하여 패치 된 evince를 설치하십시오 /usr/local/
. 예를 들어 sudo
, 사용 하지 않으려면 다른 곳에 설치하려면을 사용하십시오 ./configure --prefix=/full/path/to/alternative/location/
.
패치 된 evince는로 툴바를 숨길 수 Ctrl+h
있습니다. 메뉴 막대는 숨겨 지지 않으며 , 원하는 바가 아닐 수도 있습니다.
메뉴 막대 숨기기
위의 패치 외에도 다음을 추가해야합니다.
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (ev_window), !toolbar);
ev_window_view_cmd_toggle_toolbar
in shell/ev-window.c
및 change 의 정의 끝까지 :
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation);
에:
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), !presentation && toolbar);
의 정의 update_chrome_visibility
에서 shell/ev-window.c
.
보안
또한 귀하의 evince 버전에 대한 보안 수정 사항을받지 않으므로 Ubuntu 보안 공지 에 따라 가입 및 가입 /etc/apparmor.d/usr.local.bin.evince
프로파일을 추가하는 것이 좋습니다 . 또는와 같은 것을 사용하는 것이 좋습니다.usr.bin.evince
apt-src