diff options
| author | Jabiertxof <jabier.arraiza@marker.es> | 2019-06-13 00:24:21 +0000 |
|---|---|---|
| committer | Jabiertxof <jabier.arraiza@marker.es> | 2019-06-13 00:24:32 +0000 |
| commit | 1442b0b18b3b70e636f4c8d0f5591f1ff1afa55e (patch) | |
| tree | 098c1eec28dbede627fcc643818d15022023fc5c /src | |
| parent | Improve event handle (diff) | |
| download | inkscape-1442b0b18b3b70e636f4c8d0f5591f1ff1afa55e.tar.gz inkscape-1442b0b18b3b70e636f4c8d0f5591f1ff1afa55e.zip | |
Try to fix issue with focus with thomas and add also stops to combos and unitcombos
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/widget/combo-enums.h | 10 | ||||
| -rw-r--r-- | src/ui/widget/selected-style.cpp | 2 | ||||
| -rw-r--r-- | src/ui/widget/spinbutton.cpp | 15 | ||||
| -rw-r--r-- | src/ui/widget/spinbutton.h | 5 | ||||
| -rw-r--r-- | src/ui/widget/unit-menu.cpp | 7 | ||||
| -rw-r--r-- | src/ui/widget/unit-menu.h | 4 |
6 files changed, 32 insertions, 11 deletions
diff --git a/src/ui/widget/combo-enums.h b/src/ui/widget/combo-enums.h index 957c49cbd..2bfa56d86 100644 --- a/src/ui/widget/combo-enums.h +++ b/src/ui/widget/combo-enums.h @@ -45,7 +45,8 @@ public: _sort = sort; signal_changed().connect(signal_attr_changed().make_slot()); - + gtk_widget_add_events(GTK_WIDGET(gobj()), GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK); + signal_scroll_event().connect(sigc::mem_fun(*this, &ComboBoxEnum<E>::on_scroll_event)); _model = Gtk::ListStore::create(_columns); set_model(_model); @@ -73,6 +74,8 @@ public: _sort = sort; signal_changed().connect(signal_attr_changed().make_slot()); + gtk_widget_add_events(GTK_WIDGET(gobj()), GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK); + signal_scroll_event().connect(sigc::mem_fun(*this, &ComboBoxEnum<E>::on_scroll_event)); _model = Gtk::ListStore::create(_columns); set_model(_model); @@ -152,6 +155,11 @@ public: } }; + bool on_scroll_event(GdkEventScroll* event) + { + return false; + } + void set_active_by_key(const Glib::ustring& key) { setProgrammatically = true; set_active_by_id( _converter.get_id_from_key(key) ); diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index ea053765b..0adf7997e 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -1177,7 +1177,7 @@ void SelectedStyle::on_opacity_changed () _("Change opacity")); // resume interruptibility _desktop->getCanvas()->endForcedFullRedraws(); - spinbutton_defocus(GTK_WIDGET(_opacity_sb.gobj())); + // spinbutton_defocus(GTK_WIDGET(_opacity_sb.gobj())); _opacity_blocked = false; } diff --git a/src/ui/widget/spinbutton.cpp b/src/ui/widget/spinbutton.cpp index a7cde41d5..81f20804b 100644 --- a/src/ui/widget/spinbutton.cpp +++ b/src/ui/widget/spinbutton.cpp @@ -25,7 +25,8 @@ SpinButton::connect_signals() { signal_focus_in_event().connect(sigc::mem_fun(*this, &SpinButton::on_my_focus_in_event)); signal_key_press_event().connect(sigc::mem_fun(*this, &SpinButton::on_my_key_press_event)); gtk_widget_add_events(GTK_WIDGET(gobj()), GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK); - signal_scroll_event().connect(sigc::mem_fun(*this, &SpinButton::on_my_scroll_event)); + signal_scroll_event().connect(sigc::mem_fun(*this, &SpinButton::on_scroll_event)); + set_focus_on_click(true); }; int SpinButton::on_input(double* newvalue) @@ -66,16 +67,18 @@ bool SpinButton::on_my_focus_in_event(GdkEventFocus* /*event*/) return false; // do not consume the event } -bool SpinButton::on_my_scroll_event(GdkEventScroll* event) + + +bool SpinButton::on_scroll_event(GdkEventScroll *event) { - if (!property_has_focus()) { + if (!is_focus()) { return false; } double step, page; get_increments(step, page); - if (event->state & GDK_CONTROL_MASK) { - step = page; - } + /*if (event->state & GDK_CONTROL_MASK) { + page = step; + } */ double change = 0.0; if (event->direction == GDK_SCROLL_UP) { change = step; diff --git a/src/ui/widget/spinbutton.h b/src/ui/widget/spinbutton.h index 2833c413f..b32b8b9cc 100644 --- a/src/ui/widget/spinbutton.h +++ b/src/ui/widget/spinbutton.h @@ -46,7 +46,7 @@ public: connect_signals(); }; - ~SpinButton() override = default;; + ~SpinButton() override = default; // noncopyable SpinButton(const SpinButton&) = delete; @@ -84,8 +84,7 @@ protected: * @retval false continue with default handler. * @retval true don't call default handler. */ - bool on_my_scroll_event(GdkEventScroll* event); - + bool on_scroll_event(GdkEventScroll* event); /** * Handle specific keypress events, like Ctrl+Z. * diff --git a/src/ui/widget/unit-menu.cpp b/src/ui/widget/unit-menu.cpp index 938851265..4648c6f7c 100644 --- a/src/ui/widget/unit-menu.cpp +++ b/src/ui/widget/unit-menu.cpp @@ -21,6 +21,8 @@ namespace Widget { UnitMenu::UnitMenu() : _type(UNIT_TYPE_NONE) { set_active(0); + gtk_widget_add_events(GTK_WIDGET(gobj()), GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK); + signal_scroll_event().connect(sigc::mem_fun(*this, &UnitMenu::on_scroll_event)); } UnitMenu::~UnitMenu() = default; @@ -132,6 +134,11 @@ bool UnitMenu::isRadial() const return getUnitType() == UNIT_TYPE_RADIAL; } +bool UnitMenu::on_scroll_event(GdkEventScroll* event) +{ + return false; +} + } // namespace Widget } // namespace UI } // namespace Inkscape diff --git a/src/ui/widget/unit-menu.h b/src/ui/widget/unit-menu.h index a219a9486..6065a4efa 100644 --- a/src/ui/widget/unit-menu.h +++ b/src/ui/widget/unit-menu.h @@ -122,6 +122,10 @@ public: protected: UnitType _type; + /** + * block scroll from widget if is inside a scrolled window. + */ + bool on_scroll_event(GdkEventScroll* event); }; } // namespace Widget |
