X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=inline;f=libs%2Fgtkmm2ext%2Fbarcontroller.cc;h=90954e57b35f4c56eba9645a5c309ba29760ea4b;hb=0697aed059a8dae6c93440924287259422da82be;hp=f59d192ff1402a78575d74a060f8a64128277699;hpb=532f6aad4ac79ca15d69deccd18fca90e444c437;p=ardour.git diff --git a/libs/gtkmm2ext/barcontroller.cc b/libs/gtkmm2ext/barcontroller.cc index f59d192ff1..90954e57b3 100644 --- a/libs/gtkmm2ext/barcontroller.cc +++ b/libs/gtkmm2ext/barcontroller.cc @@ -36,7 +36,7 @@ using namespace Gtk; using namespace Gtkmm2ext; BarController::BarController (Gtk::Adjustment& adj, - PBD::Controllable& mc, + boost::shared_ptr mc, sigc::slot lc) : adjustment (adj), @@ -149,7 +149,7 @@ BarController::button_release (GdkEventButton* ev) } else { double scale; - if (ev->state & (GDK_CONTROL_MASK|GDK_SHIFT_MASK) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { + if ((ev->state & (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { scale = 0.01; } else if (ev->state & GDK_CONTROL_MASK) { scale = 0.1; @@ -179,7 +179,7 @@ BarController::scroll (GdkEventScroll* ev) { double scale; - if (ev->state & (GDK_CONTROL_MASK|GDK_SHIFT_MASK) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { + if ((ev->state & (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { scale = 0.01; } else if (ev->state & GDK_CONTROL_MASK) { scale = 0.1; @@ -215,7 +215,7 @@ BarController::motion (GdkEventMotion* ev) return TRUE; } - if (ev->state & (GDK_CONTROL_MASK|GDK_SHIFT_MASK) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { + if ((ev->state & (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { scale = 0.01; } else if (ev->state & GDK_CONTROL_MASK) { scale = 0.1; @@ -267,14 +267,12 @@ BarController::expose (GdkEventExpose* event) gint w, h; double fract; - w = darea.get_width() - 2; - h = darea.get_height() - 2; - fract = ((adjustment.get_value() - adjustment.get_lower()) / (adjustment.get_upper() - adjustment.get_lower())); switch (_style) { case Line: + w = darea.get_width() - 1; h = darea.get_height(); x1 = (gint) floor (w * fract); x2 = x1; @@ -304,6 +302,10 @@ BarController::expose (GdkEventExpose* event) break; case LeftToRight: + + w = darea.get_width() - 2; + h = darea.get_height() - 2; + x1 = 0; x2 = (gint) floor (w * fract); y1 = 0; @@ -347,7 +349,8 @@ BarController::expose (GdkEventExpose* event) char buf[64]; buf[0] = '\0'; - label_callback (buf, 64); + if (label_callback) + label_callback (buf, 64); if (buf[0] != '\0') {