From 5a7ffbc1870aeee52fed3c457817010b608e1e52 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Sun, 27 Jan 2019 15:24:58 +0100 Subject: Move app menu into window, make conversation details dialog directly accessible, no-CSD option for main window --- main/src/ui/conversation_titlebar/menu_entry.vala | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'main/src/ui/conversation_titlebar/menu_entry.vala') diff --git a/main/src/ui/conversation_titlebar/menu_entry.vala b/main/src/ui/conversation_titlebar/menu_entry.vala index e77204a8..e62989a0 100644 --- a/main/src/ui/conversation_titlebar/menu_entry.vala +++ b/main/src/ui/conversation_titlebar/menu_entry.vala @@ -8,6 +8,7 @@ class MenuEntry : Plugins.ConversationTitlebarEntry, Object { public string id { get { return "menu"; } } StreamInteractor stream_interactor; + MenuWidget widget; public MenuEntry(StreamInteractor stream_interactor) { this.stream_interactor = stream_interactor; @@ -16,30 +17,27 @@ class MenuEntry : Plugins.ConversationTitlebarEntry, Object { public double order { get { return 0; } } public Plugins.ConversationTitlebarWidget? get_widget(Plugins.WidgetType type) { if (type == Plugins.WidgetType.GTK) { - return new MenuWidget(stream_interactor) { visible=true }; + if (widget == null) { + widget = new MenuWidget(stream_interactor) { visible=true }; + } + return widget; } return null; } } -class MenuWidget : MenuButton, Plugins.ConversationTitlebarWidget { +class MenuWidget : Button, Plugins.ConversationTitlebarWidget { private Conversation? conversation; public MenuWidget(StreamInteractor stream_interactor) { image = new Image.from_icon_name("open-menu-symbolic", IconSize.MENU); - Builder builder = new Builder.from_resource("/im/dino/Dino/menu_conversation.ui"); - MenuModel menu = builder.get_object("menu_conversation") as MenuModel; - set_menu_model(menu); - - SimpleAction contact_details_action = new SimpleAction("contact_details", null); - contact_details_action.activate.connect(() => { + clicked.connect(() => { ContactDetails.Dialog contact_details_dialog = new ContactDetails.Dialog(stream_interactor, conversation); contact_details_dialog.set_transient_for((Window) get_toplevel()); contact_details_dialog.present(); }); - GLib.Application.get_default().add_action(contact_details_action); } public new void set_conversation(Conversation conversation) { -- cgit v1.2.3-54-g00ecf