roundabout,
created on Monday, 3 March 2025, 19:49:12 (1741031352),
received on Monday, 3 March 2025, 19:49:16 (1741031356)
Author identity: vlad <vlad.muntoiu@gmail.com>
89dc0d37d83200537a0cce5bbb66487ec724bc47
gpanthera.cc
@@ -57,7 +57,7 @@ namespace gPanthera {
header_menu_button->set_direction(Gtk::ArrowType::NONE); // Pane menu auto action_group = Gio::SimpleActionGroup::create();this->action_group = Gio::SimpleActionGroup::create();header_menu_button->insert_action_group("win", action_group); // Close action
@@ -128,6 +128,8 @@ namespace gPanthera {
this->window->destroy(); delete this->window; this->window = nullptr; auto action = std::dynamic_pointer_cast<Gio::SimpleAction>(this->action_group->lookup_action("pop_out")); action->set_enabled(true);} }
@@ -143,8 +145,10 @@ namespace gPanthera {
this->window->set_titlebar(*this->header); this->window->set_child(*this); this->window->set_decorated(true); this->window->present();auto action = std::dynamic_pointer_cast<Gio::SimpleAction>(this->action_group->lookup_action("pop_out")); action->set_enabled(false);} this->window->present();} Glib::ustring DockablePane::get_identifier() const {
@@ -184,9 +188,7 @@ namespace gPanthera {
DockWindow::DockWindow(DockablePane *pane) { this->pane = pane; this->set_child(*pane); // Can redock, but not disappearthis->set_deletable(false);// Attempting to close the window should redock the pane so it doesn't vanishthis->signal_close_request().connect([this]() { this->pane->redock(this->pane->last_stack); return true;
gpanthera.hh
@@ -25,6 +25,7 @@ namespace gPanthera {
std::unique_ptr<Gtk::HeaderBar> header; Gtk::Widget *child; std::shared_ptr<LayoutManager> layout; Glib::RefPtr<Gio::SimpleActionGroup> action_group;public: DockStack *last_stack = nullptr; DockablePane(std::shared_ptr<LayoutManager> layout, Gtk::Widget &child, const Glib::ustring &name, const Glib::ustring &label, Gtk::Image *icon, DockStack *stack = nullptr, Gtk::Widget *custom_header = nullptr);