diff options
author | Christian Dywan <christian@twotoasts.de> | 2019-03-10 20:24:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-10 20:24:15 +0100 |
commit | 07dc69f95d4b6abdb8b09e1cf34c882f70634bef (patch) | |
tree | 018fee22fd9e7122a11f0de8f11e22aa54172d44 | |
parent | db72876d4461ada28ed216d04167cb06e1c41b9b (diff) | |
download | midori-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.vala | 24 | ||||
-rw-r--r-- | core/navigationbar.vala | 2 | ||||
-rw-r--r-- | ui/browser.ui | 2 | ||||
-rw-r--r-- | ui/menus.ui | 4 | ||||
-rw-r--r-- | ui/navigationbar.ui | 16 |
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"><Primary><Shift>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> |