summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2006-04-10 02:14:05 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2006-04-10 02:14:05 +0000
commit7e8a98224578e03e17fbf5e656241ff5ef1a0bc1 (patch)
tree33ceaf82af27e800a3b81b2c367522f2252a9fb4 /libs/gtkmm2ext
parente9f9ca5278c6bcafd6a22ad273185c31664c32a5 (diff)
Reinstate mouse scroll actions (audio clocks, shuttle wheel, faders), clearing selection is undoable, fix compiler warning, add modified patch by Jon Michael Smith for mouse wheel track height adjustment and vertical canvas scrolling (thanks Jon)
git-svn-id: svn://localhost/trunk/ardour2@449 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/pixscroller.h1
-rw-r--r--libs/gtkmm2ext/pixscroller.cc27
2 files changed, 26 insertions, 2 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/pixscroller.h b/libs/gtkmm2ext/gtkmm2ext/pixscroller.h
index 4bc13ef173..8739478a8f 100644
--- a/libs/gtkmm2ext/gtkmm2ext/pixscroller.h
+++ b/libs/gtkmm2ext/gtkmm2ext/pixscroller.h
@@ -18,6 +18,7 @@ class PixScroller : public Gtk::DrawingArea
bool on_motion_notify_event (GdkEventMotion*);
bool on_button_press_event (GdkEventButton*);
bool on_button_release_event (GdkEventButton*);
+ bool on_scroll_event (GdkEventScroll*);
void on_size_request (GtkRequisition*);
protected:
diff --git a/libs/gtkmm2ext/pixscroller.cc b/libs/gtkmm2ext/pixscroller.cc
index 813b4fd7f6..f459726f27 100644
--- a/libs/gtkmm2ext/pixscroller.cc
+++ b/libs/gtkmm2ext/pixscroller.cc
@@ -176,11 +176,34 @@ PixScroller::on_button_release_event (GdkEventButton* ev)
}
}
break;
- case 4:
+ default:
+ break;
+ }
+ return false;
+}
+
+bool
+PixScroller::on_scroll_event (GdkEventScroll* ev)
+{
+ double scale;
+
+ if (ev->state & GDK_CONTROL_MASK) {
+ if (ev->state & GDK_MOD1_MASK) {
+ scale = 0.05;
+ } else {
+ scale = 0.1;
+ }
+ } else {
+ scale = 0.5;
+ }
+
+ switch (ev->direction) {
+
+ case GDK_SCROLL_UP:
/* wheel up */
adj.set_value (adj.get_value() + (adj.get_page_increment() * scale));
break;
- case 5:
+ case GDK_SCROLL_DOWN:
/* wheel down */
adj.set_value (adj.get_value() - (adj.get_page_increment() * scale));
break;