[gitg] Added populate-popup in sidebar
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Added populate-popup in sidebar
- Date: Tue, 1 Jul 2014 12:17:29 +0000 (UTC)
commit 69011242c74472d01f1bfa941e0e90a82c8ff242
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Tue Jul 1 14:15:47 2014 +0200
Added populate-popup in sidebar
libgitg/gitg-sidebar.vala | 48 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
---
diff --git a/libgitg/gitg-sidebar.vala b/libgitg/gitg-sidebar.vala
index 51a63d7..5bee494 100644
--- a/libgitg/gitg-sidebar.vala
+++ b/libgitg/gitg-sidebar.vala
@@ -193,6 +193,8 @@ public class Sidebar : Gtk.TreeView
public signal void deselected();
+ public signal void populate_popup(Gtk.Menu menu);
+
construct
{
d_column.set_cell_data_func(d_renderer_icon, (layout, cell, model, iter) => {
@@ -324,6 +326,52 @@ public class Sidebar : Gtk.TreeView
get { return base.get_model() as SidebarStore; }
set { base.set_model(value); }
}
+
+ private bool do_populate_popup(Gdk.EventButton? event)
+ {
+ Gtk.Menu menu = new Gtk.Menu();
+
+ populate_popup(menu);
+
+ if (menu.get_children() == null)
+ {
+ return false;
+ }
+
+ menu.show_all();
+ menu.attach_to_widget(this, null);
+
+ uint button = 0;
+ uint32 t = Gdk.CURRENT_TIME;
+
+ if (event != null)
+ {
+ button = event.button;
+ t = event.time;
+ }
+
+ menu.popup(null, null, null, button, t);
+ return true;
+ }
+
+ protected override bool button_press_event(Gdk.EventButton event)
+ {
+ var ret = base.button_press_event(event);
+
+ Gdk.Event *ev = (Gdk.Event *)event;
+
+ if (ev->triggers_context_menu())
+ {
+ return do_populate_popup(event);
+ }
+
+ return ret;
+ }
+
+ protected override bool popup_menu()
+ {
+ return do_populate_popup(null);
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]