summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2017-07-10 23:27:12 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2017-07-10 23:27:12 +0000
commitdd25cf81bababb08e58e1fd5c83e80e7c7bb2363 (patch)
tree31ae194a96c18cd00cb01b2914d80ebbe79d0ad4 /src/ui
parentDrop obsolete SizeGroup::set_ignore_hidden (diff)
downloadinkscape-dd25cf81bababb08e58e1fd5c83e80e7c7bb2363.tar.gz
inkscape-dd25cf81bababb08e58e1fd5c83e80e7c7bb2363.zip
Use new GdkSeat API and update gimpcolorwheel comments
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/widget/color-slider.cpp40
1 files changed, 36 insertions, 4 deletions
diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp
index 2e665dbec..761f2e748 100644
--- a/src/ui/widget/color-slider.cpp
+++ b/src/ui/widget/color-slider.cpp
@@ -160,9 +160,28 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event)
ColorScales::setScaled(_adjustment->gobj(), CLAMP((gfloat)(event->x - cx) / cw, 0.0, 1.0));
signal_dragged.emit();
- gdk_device_grab(
- gdk_event_get_device(reinterpret_cast<GdkEvent *>(event)), _gdk_window->gobj(), GDK_OWNERSHIP_NONE, FALSE,
- static_cast<GdkEventMask>(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), NULL, event->time);
+ auto window = _gdk_window->gobj();
+
+#if GTK_CHECK_VERSION(3,20,0)
+ auto seat = gdk_event_get_seat(reinterpret_cast<GdkEvent *>(event));
+ gdk_seat_grab(seat,
+ window,
+ GDK_SEAT_CAPABILITY_ALL_POINTING,
+ FALSE,
+ NULL,
+ reinterpret_cast<GdkEvent *>(event),
+ NULL,
+ NULL);
+#else
+ auto device = gdk_event_get_device(reinterpret_cast<GdkEvent *>(event));
+ gdk_device_grab(device,
+ window,
+ GDK_OWNERSHIP_NONE,
+ FALSE,
+ static_cast<GdkEventMask>(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK),
+ NULL,
+ event->time);
+#endif
}
return false;
@@ -171,9 +190,12 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event)
bool ColorSlider::on_button_release_event(GdkEventButton *event)
{
if (event->button == 1) {
+#if GTK_CHECK_VERSION(3,20,0)
+ gdk_seat_ungrab(gdk_event_get_seat(reinterpret_cast<GdkEvent *>(event)));
+#else
gdk_device_ungrab(gdk_event_get_device(reinterpret_cast<GdkEvent *>(event)),
gdk_event_get_time(reinterpret_cast<GdkEvent *>(event)));
-
+#endif
_dragging = false;
signal_released.emit();
if (_value != _oldvalue) {
@@ -518,3 +540,13 @@ static const guchar *sp_color_slider_render_map(gint x0, gint y0, gint width, gi
return buf;
}
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :