summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Dywan <christian@twotoasts.de>2019-03-10 20:24:15 +0100
committerGitHub <noreply@github.com>2019-03-10 20:24:15 +0100
commit07dc69f95d4b6abdb8b09e1cf34c882f70634bef (patch)
tree018fee22fd9e7122a11f0de8f11e22aa54172d44
parentdb72876d4461ada28ed216d04167cb06e1c41b9b (diff)
downloadmidori-git-07dc69f95d4b6abdb8b09e1cf34c882f70634bef.tar.gz
Merge app and page menu buttons into one (#299)
Tooltip and keyboard shortcut are on the house. Fixes: #204 Fixes: #193
-rw-r--r--core/browser.vala24
-rw-r--r--core/navigationbar.vala2
-rw-r--r--ui/browser.ui2
-rw-r--r--ui/menus.ui4
-rw-r--r--ui/navigationbar.ui16
5 files changed, 20 insertions, 28 deletions
diff --git a/core/browser.vala b/core/browser.vala
index 40bbf781..987e221e 100644
--- a/core/browser.vala
+++ b/core/browser.vala
@@ -31,6 +31,7 @@ namespace Midori {
internal double zoom_level { get; protected set; default = 1.0f; }
const ActionEntry[] actions = {
+ { "compactmenu", compactmenu_activated },
{ "navigationbar", navigationbar_activated },
{ "tab-close", tab_close_activated },
{ "close", close_activated },
@@ -112,6 +113,7 @@ namespace Midori {
add_action_entries (actions, this);
notify["application"].connect ((pspec) => {
+ application.set_accels_for_action ("win.compactmenu", { "F10", "<Alt>f" });
application.set_accels_for_action ("win.panel", { "F9" });
application.set_accels_for_action ("win.tab-new", { "<Primary>t" });
application.set_accels_for_action ("win.tab-close", { "<Primary>w" });
@@ -145,17 +147,14 @@ namespace Midori {
application.set_accels_for_action ("win.tab-zoom(1.0)", { "<Primary>0" });
app_menu.menu_model = application.get_menu_by_id ("app-menu");
- navigationbar.menubutton.menu_model = application.get_menu_by_id ("page-menu");
notify["is-small"].connect (() => {
var app_menu_model = new Menu ();
- app_menu_model.prepend_section (null, application.get_menu_by_id ("app-menu"));
- var page_menu_model = new Menu ();
- page_menu_model.prepend_section (null, application.get_menu_by_id ("page-menu"));
+ app_menu_model.prepend_section (null, application.get_menu_by_id ("window-menu"));
zoom_menu = new Menu ();
var zoom_section = new MenuItem.section (null, zoom_menu);
zoom_section.set_attribute_value ("display-hint", "horizontal-buttons");
- page_menu_model.prepend_item (zoom_section);
+ app_menu_model.append_item (zoom_section);
var zoom_out = new MenuItem (_("Decrease the zoom level"), "win.tab-zoom(-0.1)");
// Note: set_icon with ThemedIcon.with_default_fallbacks doesn't work here
zoom_out.set_attribute_value ("verb-icon", "zoom-out-symbolic");
@@ -167,16 +166,20 @@ namespace Midori {
zoom_in.set_attribute_value ("verb-icon", "zoom-in-symbolic");
zoom_menu.append_item (zoom_in);
+ app_menu_model.append_section (null, application.get_menu_by_id ("page-menu"));
+
if (is_small) {
- app_menu_model.prepend_section (null, application.get_menu_by_id ("app-menu-small"));
- page_menu_model.prepend_section (null, application.get_menu_by_id ("page-menu-small"));
+ if (!is_locked) {
+ app_menu_model.prepend_section (null, application.get_menu_by_id ("page-menu-small"));
+ app_menu_model.prepend_section (null, application.get_menu_by_id ("app-menu-small"));
+ }
// Anchor downloads popover to app menu if the button is hidden
downloads.popover.relative_to = app_menu;
} else {
downloads.popover.relative_to = downloads;
}
+ app_menu_model.append_section (null, application.get_menu_by_id ("app-menu"));
app_menu.menu_model = app_menu_model;
- navigationbar.menubutton.menu_model = page_menu_model;
});
notify_property ("is-small");
@@ -466,6 +469,10 @@ namespace Midori {
tabs.visible_child = tab;
}
+ void compactmenu_activated () {
+ app_menu.popover.show ();
+ }
+
void navigationbar_activated () {
navigationbar.show ();
}
@@ -567,7 +574,6 @@ namespace Midori {
void fullscreen_activated () {
is_fullscreen = !is_fullscreen;
navigationbar.restore.visible = is_fullscreen;
- navigationbar.menubutton.visible = !is_fullscreen;
if (is_fullscreen) {
fullscreen ();
navigationbar.hide ();
diff --git a/core/navigationbar.vala b/core/navigationbar.vala
index acdace1b..b9ac4c38 100644
--- a/core/navigationbar.vala
+++ b/core/navigationbar.vala
@@ -27,8 +27,6 @@ namespace Midori {
[GtkChild]
public Urlbar urlbar;
[GtkChild]
- public Gtk.MenuButton menubutton;
- [GtkChild]
public Gtk.Button restore;
construct {
diff --git a/ui/browser.ui b/ui/browser.ui
index 131afa7f..7f3550f1 100644
--- a/ui/browser.ui
+++ b/ui/browser.ui
@@ -60,6 +60,8 @@
<property name="focus-on-click">no</property>
<property name="valign">center</property>
<property name="direction">none</property>
+ <property name="action-name">win.compactmenu</property>
+ <property name="tooltip-text" translatable="yes">Menu</property>
<property name="visible">yes</property>
</object>
<packing>
diff --git a/ui/menus.ui b/ui/menus.ui
index c11d93da..22d1a750 100644
--- a/ui/menus.ui
+++ b/ui/menus.ui
@@ -28,7 +28,7 @@
</item>
</section>
</menu>
- <menu id="app-menu">
+ <menu id="window-menu">
<section>
<item>
<attribute name="action">app.win-new</attribute>
@@ -50,6 +50,8 @@
<attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;Delete</attribute>
</item>
</section>
+ </menu>
+ <menu id="app-menu">
<section>
<item>
<attribute name="action">win.preferences</attribute>
diff --git a/ui/navigationbar.ui b/ui/navigationbar.ui
index 272a532f..47332b9e 100644
--- a/ui/navigationbar.ui
+++ b/ui/navigationbar.ui
@@ -102,22 +102,6 @@
<property name="pack-type">end</property>
</packing>
</child>
- <child>
- <object class="GtkMenuButton" id="menubutton">
- <property name="valign">center</property>
- <property name="visible">yes</property>
- <child>
- <object class="GtkImage">
- <property name="icon-name">view-more-symbolic</property>
- <property name="use-fallback">yes</property>
- <property name="visible">yes</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="pack-type">end</property>
- </packing>
- </child>
<style>
<class name="navigationbar"/>
</style>