elementaryart team mailing list archive
-
elementaryart team
-
Mailing list archive
-
Message #01959
[Merge] lp:~xapantu/granite/fix-959552 into lp:granite
xapantu has proposed merging lp:~xapantu/granite/fix-959552 into lp:granite.
Requested reviews:
elementary Pantheon team (elementary-pantheon)
Related bugs:
Bug #959552 in Granite: "double click on tabbar to create new tab"
https://bugs.launchpad.net/granite/+bug/959552
For more details, see:
https://code.launchpad.net/~xapantu/granite/fix-959552/+merge/98482
Fix bug #959552: double click on tabbar to create new tab
--
https://code.launchpad.net/~xapantu/granite/fix-959552/+merge/98482
Your team elementaryart (old) is subscribed to branch lp:granite.
=== modified file 'demo/main.vala'
--- demo/main.vala 2012-03-11 17:33:51 +0000
+++ demo/main.vala 2012-03-20 18:39:17 +0000
@@ -212,6 +212,7 @@
dynamic_notebook.append_page (new Gtk.Label ("Page 1"), "Page 1");
dynamic_notebook.append_page (new Gtk.Label ("Page 2"), "Page 2");
dynamic_notebook.append_page (new Gtk.Label ("Page 3"), "Page 3");
+ dynamic_notebook.add_button_clicked.connect ( () => { dynamic_notebook.append_page (new Gtk.Label("New page"), "New tab"); });
/* window properties */
win.show_all();
=== modified file 'lib/Widgets/DynamicNotebook.vala'
--- lib/Widgets/DynamicNotebook.vala 2012-03-19 18:39:32 +0000
+++ lib/Widgets/DynamicNotebook.vala 2012-03-20 18:39:17 +0000
@@ -157,6 +157,10 @@
public signal void switch_page (Tab tab);
public signal void page_removed (Tab tab);
+ /**
+ * Emitted when the user makes a double click on an empty space.
+ **/
+ public signal void need_new_tab ();
public Tabs () {
tabs = new Gee.ArrayList<Tab>();
@@ -531,6 +535,9 @@
start_dragging = (int)(event.x/(width - overlap));
if (start_dragging >= tabs.size) {
start_dragging = -1;
+ /* click on an empty space */
+ if (event.type == Gdk.EventType.2BUTTON_PRESS)
+ need_new_tab ();
}
else {
tabs[start_dragging].drag_origin = event.x - start_dragging * (width - overlap);
@@ -759,6 +766,7 @@
tabs.page_removed.connect ( (t) => {
page_removed (t.widget, 0);
});
+ tabs.need_new_tab.connect ( () => { add_button_clicked (); });
tabs.show_all ();
add_eventbox.show_all ();
Follow ups