diff options
| author | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-31 11:13:31 +0000 |
|---|---|---|
| committer | Tomasz Boczkowski <penginsbacon@gmail.com> | 2014-05-31 11:13:31 +0000 |
| commit | efd28a1d2bae756f53ad9b689fb6079be9d92605 (patch) | |
| tree | 058bb9b8eb78238fcf09144bbd00408dfbb7711c /src/widgets/sp-color-notebook.cpp | |
| parent | SPColorWheelSelector c++-sification: inherit Gtk::Table/Grid (diff) | |
| download | inkscape-efd28a1d2bae756f53ad9b689fb6079be9d92605.tar.gz inkscape-efd28a1d2bae756f53ad9b689fb6079be9d92605.zip | |
fixed updating selected color using wheel
(bzr r13341.6.36)
Diffstat (limited to 'src/widgets/sp-color-notebook.cpp')
| -rw-r--r-- | src/widgets/sp-color-notebook.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 58c26b8b0..7495d1deb 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -363,6 +363,9 @@ void ColorNotebook::init() G_CALLBACK (sp_color_notebook_switch_page), SP_COLOR_NOTEBOOK(_csel)); _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); + _selected_color.signal_dragged.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorDragged)); + _selected_color.signal_grabbed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorGrabbed)); + _selected_color.signal_released.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorReleased)); } static void sp_color_notebook_dispose(GObject *object) @@ -598,8 +601,36 @@ void ColorNotebook::_onSelectedColorChanged() { SPColor color; gfloat alpha = 1.0; + _updating = true; _selected_color.colorAlpha(color, alpha); _updateInternals(color, alpha, _dragging); + _updating = false; +} + +void ColorNotebook::_onSelectedColorDragged() { + if (_updating) { + return; + } + bool oldState = _dragging; + + _dragging = TRUE; + SPColor color; + gfloat alpha = 1.0; + + _updating = true; + _selected_color.colorAlpha(color, alpha); + _updateInternals(color, alpha, _dragging); + _updating = false; + + _dragging = oldState; +} + +void ColorNotebook::_onSelectedColorGrabbed() { + _grabbed(); +} + +void ColorNotebook::_onSelectedColorReleased() { + _released(); } GtkWidget* ColorNotebook::_addPage(Page& page) { @@ -624,7 +655,7 @@ GtkWidget* ColorNotebook::_addPage(Page& page) { g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); - if (SP_IS_COLOR_SELECTOR(selector_widget)) { + if (SP_IS_COLOR_SELECTOR(selector_widget->gobj())) { //Connect glib signals of non-refactored widgets g_signal_connect (selector_widget->gobj(), "grabbed", G_CALLBACK (_entryGrabbed), _csel); g_signal_connect (selector_widget->gobj(), "dragged", G_CALLBACK (_entryDragged), _csel); |
