summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/desktop-tracker.cpp
diff options
context:
space:
mode:
authorLiam P. White <inkscapebrony@gmail.com>2014-06-25 20:21:44 +0000
committerLiam P. White <inkscapebrony@gmail.com>2014-06-25 20:21:44 +0000
commit60f288cc584bf34c65698341427cf377b88c7138 (patch)
treeb8b7e6d3c24f95350e85e4c1754a27d5dc9bde6c /src/ui/dialog/desktop-tracker.cpp
parent1. make it compile (diff)
downloadinkscape-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.cpp21
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)