roundabout,
created on Sunday, 27 April 2025, 19:31:34 (1745782294),
received on Sunday, 27 April 2025, 19:31:37 (1745782297)
Author identity: vlad <vlad.muntoiu@gmail.com>
2130aeb12ea0a01d11fec1b7d26b7a2a64f9fc56
gpanthera.cc
@@ -913,6 +913,13 @@ namespace gPanthera {
this->close();
});
this->add_controller(middle_click_controller);
control_status_handler = this->page->signal_control_status_changed.connect([this](bool operating) {
if(operating) {
this->add_css_class("gpanthera-selected-tab");
} else {
this->remove_css_class("gpanthera-selected-tab");
}
});
}
void ContentTab::close() {
@@ -948,6 +955,7 @@ namespace gPanthera {
active_style_handler.disconnect();
drag_end_handler.disconnect();
drag_cancel_handler.disconnect();
control_status_handler.disconnect();
}
Gtk::Widget *ContentPage::get_tab_widget() const {
@@ -1066,7 +1074,11 @@ namespace gPanthera {
}
void ContentManager::set_last_operated_page(ContentPage *page) {
if(this->last_operated_page) {
this->last_operated_page->signal_control_status_changed.emit(false);
}
this->last_operated_page = page;
page->signal_control_status_changed.emit(true);
this->signal_page_operated.emit(page);
}
gpanthera.hh
@@ -140,6 +140,7 @@ namespace gPanthera {
ContentStack *last_stack = nullptr;
ContentPage(std::shared_ptr<ContentManager> content_manager, ContentStack *stack, Gtk::Widget *child, Gtk::Widget *tab_widget);
sigc::signal<bool()> signal_close;
sigc::signal<void(bool)> signal_control_status_changed;
void close();
Gtk::Widget *get_tab_widget() const;
void redock(ContentStack *stack);
@@ -158,6 +159,7 @@ namespace gPanthera {
sigc::connection drag_cancel_handler;
void update_active_style();
sigc::connection active_style_handler;
sigc::connection control_status_handler;
public:
void close();
explicit ContentTab(ContentPage *page);