summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2012-06-02 12:23:45 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2012-06-02 12:23:45 +0000
commite7dbdd1fb8aae96ec0e13b9f1672c805122d85ad (patch)
tree8c1c320f811f0891f07ca21d4b2e83091ad7eeaa
parentCairo rendering in filter effects dialog (diff)
downloadinkscape-e7dbdd1fb8aae96ec0e13b9f1672c805122d85ad.tar.gz
inkscape-e7dbdd1fb8aae96ec0e13b9f1672c805122d85ad.zip
Add draw signal in filter effects dialog
(bzr r11453)
-rw-r--r--src/ui/dialog/filter-effects-dialog.cpp16
-rw-r--r--src/ui/dialog/filter-effects-dialog.h5
2 files changed, 19 insertions, 2 deletions
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index 1ae1791f8..6a6964477 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -1452,10 +1452,15 @@ FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d)
_in_drag(0),
_observer(new Inkscape::XML::SignalObserver)
{
+#if WITH_GTKMM_3_0
+ d.signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw));
+ signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw));
+#else
d.signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal));
+ signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal));
+#endif
add_events(Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK);
- signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal));
_model = Gtk::ListStore::create(_columns);
@@ -1612,10 +1617,17 @@ void FilterEffectsDialog::PrimitiveList::remove_selected()
}
}
+#if !WITH_GTKMM_3_0
bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose* e)
{
Glib::RefPtr<Gdk::Window> win = get_bin_window();
Cairo::RefPtr<Cairo::Context> cr = win->create_cairo_context();
+ return on_draw(cr);
+}
+#endif
+
+bool FilterEffectsDialog::PrimitiveList::on_draw(const Cairo::RefPtr<Cairo::Context> &cr)
+{
cr->set_line_width(1.0);
SPFilterPrimitive* prim = get_selected();
@@ -1657,7 +1669,7 @@ bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose* e)
// Check mouse state
int mx, my;
Gdk::ModifierType mask;
- win->get_pointer(mx, my, mask);
+ get_bin_window()->get_pointer(mx, my, mask);
// Outline the bottom of the connection area
const int outline_x = x + fheight * (row_count - row_index);
diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h
index 55fb0b0da..4e75860a5 100644
--- a/src/ui/dialog/filter-effects-dialog.h
+++ b/src/ui/dialog/filter-effects-dialog.h
@@ -162,7 +162,12 @@ private:
int get_input_type_width() const;
protected:
+ bool on_draw(const Cairo::RefPtr<Cairo::Context> &cr);
+
+#if !WITH_GTKMM_3_0
bool on_expose_signal(GdkEventExpose*);
+#endif
+
bool on_button_press_event(GdkEventButton*);
bool on_motion_notify_event(GdkEventMotion*);
bool on_button_release_event(GdkEventButton*);