diff --git a/synfig-studio/src/gui/docks/dockbook.cpp b/synfig-studio/src/gui/docks/dockbook.cpp index c7715e3b6b4..563ea3a0f34 100644 --- a/synfig-studio/src/gui/docks/dockbook.cpp +++ b/synfig-studio/src/gui/docks/dockbook.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include "general.h" @@ -253,23 +254,21 @@ DockBook::tab_button_pressed(GdkEventButton* event, Dockable* dockable) Gtk::Menu *tabmenu=manage(new class Gtk::Menu()); tabmenu->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), tabmenu)); - tabmenu->items().push_back( - Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-close"), - sigc::bind(sigc::ptr_fun(&DockManager::remove_widget_by_pointer_recursive), dockable) - ) - ); + Gtk::MenuItem *item = manage(new Gtk::ImageMenuItem(Gtk::StockID("gtk-close"))); + item->signal_activate().connect( + sigc::bind(sigc::ptr_fun(&DockManager::remove_widget_by_pointer_recursive), dockable) ); + tabmenu->append(*item); tabmenu->popup(event->button,gtk_get_current_event_time()); return true; } void -DockBook::on_switch_page(GtkNotebookPage* page, guint page_num) +DockBook::on_switch_page(Gtk::Widget* page, guint page_num) { - Gtk::Notebook::PageList::iterator p = pages().find(page_num); - if (p != pages().end()) { - CanvasView *canvas_view = dynamic_cast(p->get_child()); + if (page != NULL && this->page_num(*page)) { + CanvasView *canvas_view = dynamic_cast(page); if (canvas_view && canvas_view != App::get_selected_canvas_view()) App::set_selected_canvas_view(canvas_view); } diff --git a/synfig-studio/src/gui/docks/dockbook.h b/synfig-studio/src/gui/docks/dockbook.h index dec68779ece..af2ff370e37 100644 --- a/synfig-studio/src/gui/docks/dockbook.h +++ b/synfig-studio/src/gui/docks/dockbook.h @@ -83,7 +83,7 @@ class DockBook : public Gtk::Notebook //! Overide the default handler of the signal Gtk::Notebook::signal_switch_page(). //! to do some extra work in case of CanvasView Dockable type /*! \see App::set_selected_canvas_view */ - void on_switch_page(GtkNotebookPage* page, guint page_num); + void on_switch_page(Gtk::Widget* page, guint page_num); }; // END of studio::DockBook }; // END of namespace studio