การซ่อนแถบเครื่องมือไม่สามารถทำได้ใน Ubuntu 14.04 หรือ 16.04 หรือในช่วงต้นน้ำ / vanilla evince (ไม่ได้รับการแก้ไขโดย Ubuntu) แม้ว่าคุณจะหมดหวัง แต่คุณสามารถแก้ไขซอร์สและคอมไพล์ใหม่ได้
ใน vanilla evince ในโหมดเต็มหน้าจอ autohides ของแถบเครื่องมือซึ่งค่อนข้างมีประโยชน์ถ้าไม่เพียงพอทั้งหมด (พฤติกรรมกึ่งอัจฉริยะไม่เคยทำสิ่งที่คุณต้องการอย่างแน่นอนและมันจะสะดวกมากที่จะซ่อนแถบเครื่องมือไม่ได้ โหมดเต็มหน้าจอเช่นกัน - นั่นคือเมื่อการประหยัดพื้นที่หน้าจอมีความสำคัญอย่างยิ่ง)
น่าเสียดายสำหรับสิ่งที่บรรจุใน Ubuntu (14.04 และ 16.04) แม้จะเป็นไปไม่ได้ก็ตาม ดูเหมือนว่าแพทช์เฉพาะ Ubuntu ที่มีประโยชน์ (หรือมีประโยชน์มาก) จะส่งคืนแถบเมนูปกติและตำแหน่งปกติของแถบเครื่องมือทำลายพฤติกรรมการซ่อนตัวอัตโนมัติทำให้ปัญหารุนแรงขึ้น
รายงานบั๊ก
ข้อบกพร่องที่เกี่ยวข้อง (เฉพาะ Ubuntu และต้นน้ำ) อยู่ที่นี่:
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) ในรายงานบั๊กของ GNOME แต่ไม่ได้รับการยอมรับ การเชื่อมโยงโดยตรงสำหรับ3.12 , สาขาต้นแบบที่ร่วมสมัยและ3.14
โชคดีที่แพทช์เหล่านี้ยังคงสามารถใช้งานได้ด้วยตนเอง (คัดลอกวางโค้ด) เพื่อแสดง 3.18 ดังที่พบใน Ubuntu 16.04 การนำไปใช้โดยตรงกับ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 patched /usr/local/
ไป การติดตั้งที่อื่น ๆ เช่นการหลีกเลี่ยงการใช้การใช้งานsudo
./configure --prefix=/full/path/to/alternative/location/
Evince patched 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
.
ความปลอดภัย
ฉันขอแนะนำให้เพิ่ม/etc/apparmor.d/usr.local.bin.evince
โปรไฟล์ apparmor โดยอิงตามusr.bin.evince
และสมัครเป็นสมาชิกของประกาศความปลอดภัยของ Ubuntuเนื่องจากคุณจะไม่ได้รับการแก้ไขด้านความปลอดภัยให้กับรุ่นของคุณ apt-src
หรือคุณอาจพิจารณาใช้สิ่งที่ต้องการ