roundabout,
created on Wednesday, 9 April 2025, 19:01:37 (1744225297),
received on Wednesday, 9 April 2025, 19:01:40 (1744225300)
Author identity: vlad <vlad.muntoiu@gmail.com>
9aeb896ef57a849da95abb11b68516546f06e14e
gpanthera.cc
@@ -790,18 +790,22 @@ namespace gPanthera {
}, false);
this->add_controller(drop_target);
// Pop out if dragged to an external location
drag_source->signal_drag_cancel().connect([this](const Glib::RefPtr<Gdk::Drag>&, Gdk::DragCancelReason reason) {
drag_cancel_handler = drag_source->signal_drag_cancel().connect([this](const Glib::RefPtr<Gdk::Drag>&, Gdk::DragCancelReason reason) {
if(reason == Gdk::DragCancelReason::NO_TARGET) {
auto stack = dynamic_cast<ContentStack*>(this->page->get_stack());
bool result = stack->signal_detach.emit(this->page);
this->set_opacity(1);
if(!result) {
this->set_opacity(1);
}
return result;
}
this->set_opacity(1);
return false;
}, false);
drag_source->signal_drag_end().connect([this](const Glib::RefPtr<Gdk::Drag>&, bool drop_ok) {
this->set_opacity(1);
drag_end_handler = drag_source->signal_drag_end().connect([this](const Glib::RefPtr<Gdk::Drag>&, bool drop_ok) {
if(drop_ok) {
this->set_opacity(1);
}
}, false);
// Provide a context menu
@@ -888,6 +892,8 @@ namespace gPanthera {
ContentTab::~ContentTab() {
active_style_handler.disconnect();
drag_end_handler.disconnect();
drag_cancel_handler.disconnect();
}
Gtk::Widget *ContentPage::get_tab_widget() const {
gpanthera.hh
@@ -142,6 +142,8 @@ namespace gPanthera {
std::shared_ptr<Gtk::DropTarget> drop_target;
Glib::Value<ContentPage*> value;
Glib::RefPtr<Gio::Menu> context_menu = Gio::Menu::create();
sigc::connection drag_end_handler;
sigc::connection drag_cancel_handler;
void update_active_style();
sigc::connection active_style_handler;
public: