From 0b076025732ef5ca74d6f49e090a7765e805d764 Mon Sep 17 00:00:00 2001 From: David Capello Date: Sat, 19 Nov 2016 01:14:40 -0300 Subject: [PATCH] Avoid reaching our CustomizedGuiManager when Tab is pressed (fix #1019) --- src/app/ui/color_sliders.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/app/ui/color_sliders.cpp b/src/app/ui/color_sliders.cpp index 08adfaf44..53fd0576a 100644 --- a/src/app/ui/color_sliders.cpp +++ b/src/app/ui/color_sliders.cpp @@ -17,6 +17,7 @@ #include "ui/entry.h" #include "ui/graphics.h" #include "ui/label.h" +#include "ui/message.h" #include "ui/size_hint_event.h" #include "ui/slider.h" #include "ui/theme.h" @@ -81,6 +82,30 @@ namespace { app::Color m_color; }; + class ColorEntry : public Entry { + public: + ColorEntry() : Entry(4, "0") { + } + + bool onProcessMessage(Message* msg) override { + switch (msg->type()) { + + case kKeyDownMessage: + if (Entry::onProcessMessage(msg)) + return true; + // Process focus movement key here because if our + // CustomizedGuiManager catches this kKeyDownMessage it will + // process it as a shortcut to switch the Timeline. + else if (manager()->processFocusMovementMessage(msg)) + return true; + else + return false; + } + return Entry::onProcessMessage(msg); + } + + }; + } ////////////////////////////////////////////////////////////////////// @@ -136,7 +161,7 @@ void ColorSliders::addSlider(Channel channel, const char* labelText, int min, in Label* label = new Label(labelText); Slider* absSlider = new Slider(min, max, 0); Slider* relSlider = new Slider(min-max, max-min, 0); - Entry* entry = new Entry(4, "0"); + Entry* entry = new ColorEntry(); m_label.push_back(label); m_absSlider.push_back(absSlider);