diff options
| author | Liam P. White <inkscapebrony@gmail.com> | 2014-06-25 20:21:44 +0000 |
|---|---|---|
| committer | Liam P. White <inkscapebrony@gmail.com> | 2014-06-25 20:21:44 +0000 |
| commit | 60f288cc584bf34c65698341427cf377b88c7138 (patch) | |
| tree | b8b7e6d3c24f95350e85e4c1754a27d5dc9bde6c /src/ui/dialog/desktop-tracker.cpp | |
| parent | 1. make it compile (diff) | |
| download | inkscape-60f288cc584bf34c65698341427cf377b88c7138.tar.gz inkscape-60f288cc584bf34c65698341427cf377b88c7138.zip | |
2. connect signals
(bzr r13341.5.2)
Diffstat (limited to 'src/ui/dialog/desktop-tracker.cpp')
| -rw-r--r-- | src/ui/dialog/desktop-tracker.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/ui/dialog/desktop-tracker.cpp b/src/ui/dialog/desktop-tracker.cpp index 8a359dd2d..3a8f5176e 100644 --- a/src/ui/dialog/desktop-tracker.cpp +++ b/src/ui/dialog/desktop-tracker.cpp @@ -22,7 +22,6 @@ DesktopTracker::DesktopTracker() : desktop(0), widget(0), hierID(0), - inkID(0), trackActive(false), desktopChangedSig() { @@ -41,7 +40,12 @@ void DesktopTracker::connect(GtkWidget *widget) // Use C/gobject callbacks to avoid gtkmm rewrap-during-destruct issues: hierID = g_signal_connect( G_OBJECT(widget), "hierarchy-changed", G_CALLBACK(hierarchyChangeCB), this ); - inkID = g_signal_connect( G_OBJECT(INKSCAPE), "activate_desktop", G_CALLBACK(activateDesktopCB), this ); + inkID = INKSCAPE->signal_activate_desktop.connect( + sigc::hide<0>( + sigc::bind( + sigc::ptr_fun(&DesktopTracker::activateDesktopCB), this) + )); + //inkID = g_signal_connect( G_OBJECT(INKSCAPE), "activate_desktop", G_CALLBACK(activateDesktopCB), this ); GtkWidget *wdgt = gtk_widget_get_ancestor(widget, SP_TYPE_DESKTOP_WIDGET); if (wdgt && !base) { @@ -60,11 +64,10 @@ void DesktopTracker::disconnect() } hierID = 0; } - if (inkID) { - if (INKSCAPE) { - g_signal_handler_disconnect(G_OBJECT(INKSCAPE), inkID); - } - inkID = 0; + if (inkID.connected()) { + inkID.disconnect(); + //g_signal_handler_disconnect(G_OBJECT(INKSCAPE), inkID); + //inkID = 0; } } @@ -94,12 +97,12 @@ sigc::connection DesktopTracker::connectDesktopChanged( const sigc::slot<void, S return desktopChangedSig.connect(slot); } -gboolean DesktopTracker::activateDesktopCB(Inkscape::Application */*inkscape*/, SPDesktop *desktop, DesktopTracker *self ) +void DesktopTracker::activateDesktopCB(SPDesktop *desktop, DesktopTracker *self ) { if (self && self->trackActive) { self->setDesktop(desktop); } - return FALSE; + //return FALSE; } bool DesktopTracker::hierarchyChangeCB(GtkWidget * /*widget*/, GtkWidget* /*prev*/, DesktopTracker *self) |
