Merge lp:~alexhenrie24/inkscape/inkscape into lp:~inkscape.dev/inkscape/trunk

Proposed by Alex Henrie
Status: Merged
Approved by: Alex Valavanis
Approved revision: 15047
Merged at revision: 15049
Proposed branch: lp:~alexhenrie24/inkscape/inkscape
Merge into: lp:~inkscape.dev/inkscape/trunk
Diff against target: 116 lines (+39/-5)
3 files modified
src/desktop-events.cpp (+11/-1)
src/device-manager.cpp (+17/-3)
src/ui/dialog/filter-effects-dialog.cpp (+11/-1)
To merge this branch: bzr merge lp:~alexhenrie24/inkscape/inkscape
Reviewer Review Type Date Requested Status
Alex Valavanis Approve
Mc Pending
Review via email: mp+302210@code.launchpad.net

Commit message

Use Gdk::Seat for systems with Gtkmm >= 3.20

Description of the change

To post a comment you must log in.
lp:~alexhenrie24/inkscape/inkscape updated
15044. By Alex Valavanis

Minor Gtkmm improvements and mv GIMP widgets to own folder

15045. By Alex Valavanis

Fix autotools build

15046. By Alex Valavanis

Remove deprecated Autotools and btool files. Please use CMake instead

Revision history for this message
Alex Valavanis (valavanisalex) wrote :

Hi Alex,

Looks great except that it will only work for Gtk >= 3.20.

A proper fix will need to test which Gtk version is being used and then use either GdkSeat or GdkDeviceManager accordingly.

review: Needs Fixing
lp:~alexhenrie24/inkscape/inkscape updated
15047. By Alex Henrie

Use Gdk::Seat instead of Gdk::DeviceManager

Revision history for this message
Alex Henrie (alexhenrie24) wrote :

Done.

Revision history for this message
Alex Valavanis (valavanisalex) wrote :

Looks good to me. Many thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/desktop-events.cpp'
2--- src/desktop-events.cpp 2016-07-28 18:15:34 +0000
3+++ src/desktop-events.cpp 2016-08-08 23:57:45 +0000
4@@ -21,7 +21,12 @@
5 #include "ui/dialog/guides.h"
6 #include "desktop-events.h"
7
8-#include <gdkmm/devicemanager.h>
9+#include <gdkmm/display.h>
10+#if GTK_CHECK_VERSION(3, 20, 0)
11+# include <gdkmm/seat.h>
12+#else
13+# include <gdkmm/devicemanager.h>
14+#endif
15
16 #include <2geom/line.h>
17 #include <2geom/angle.h>
18@@ -596,8 +601,13 @@
19 Glib::ustring avoidName("pad");
20 auto display = Gdk::Display::get_default();
21
22+#if GTK_CHECK_VERSION(3, 20, 0)
23+ auto seat = display->get_default_seat();
24+ auto const devices = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
25+#else
26 auto dm = display->get_device_manager();
27 auto const devices = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
28+#endif
29
30 if ( !devices.empty() ) {
31 for (auto const dev : devices) {
32
33=== modified file 'src/device-manager.cpp'
34--- src/device-manager.cpp 2016-08-04 11:26:03 +0000
35+++ src/device-manager.cpp 2016-08-08 23:57:45 +0000
36@@ -15,13 +15,17 @@
37
38 #include <glibmm/regex.h>
39
40-#include <gdkmm/devicemanager.h>
41+#include <gtk/gtk.h>
42+
43 #include <gdkmm/display.h>
44+#if GTK_CHECK_VERSION(3, 20, 0)
45+# include <gdkmm/seat.h>
46+#else
47+# include <gdkmm/devicemanager.h>
48+#endif
49
50 #include <gtkmm/accelkey.h>
51
52-#include <gtk/gtk.h>
53-
54 #define noDEBUG_VERBOSE 1
55
56
57@@ -317,8 +321,13 @@
58 {
59 Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
60
61+#if GTK_CHECK_VERSION(3, 20, 0)
62+ auto seat = display->get_default_seat();
63+ auto devList = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
64+#else
65 auto dm = display->get_device_manager();
66 auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
67+#endif
68
69 if (fakeList.empty()) {
70 createFakeList();
71@@ -649,8 +658,13 @@
72
73 // try to find the first *real* core pointer
74 Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
75+#if GTK_CHECK_VERSION(3, 20, 0)
76+ auto seat = display->get_default_seat();
77+ auto devList = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
78+#else
79 auto dm = display->get_device_manager();
80 auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
81+#endif
82
83 // Set iterator to point at beginning of device list
84 std::vector< Glib::RefPtr<Gdk::Device> >::iterator dev = devList.begin();
85
86=== modified file 'src/ui/dialog/filter-effects-dialog.cpp'
87--- src/ui/dialog/filter-effects-dialog.cpp 2016-08-04 11:26:03 +0000
88+++ src/ui/dialog/filter-effects-dialog.cpp 2016-08-08 23:57:45 +0000
89@@ -22,7 +22,12 @@
90 #include "dialog-manager.h"
91 #include <gtkmm/imagemenuitem.h>
92
93-#include <gdkmm/devicemanager.h>
94+#include <gdkmm/display.h>
95+#if GTK_CHECK_VERSION(3, 20, 0)
96+# include <gdkmm/seat.h>
97+#else
98+# include <gdkmm/devicemanager.h>
99+#endif
100
101 #include "ui/widget/spinbutton.h"
102
103@@ -1970,8 +1975,13 @@
104 Gdk::ModifierType mask;
105
106 auto display = get_bin_window()->get_display();
107+#if GTK_CHECK_VERSION(3, 20, 0)
108+ auto seat = display->get_default_seat();
109+ auto device = seat->get_pointer();
110+#else
111 auto dm = display->get_device_manager();
112 auto device = dm->get_client_pointer();
113+#endif
114 get_bin_window()->get_device_position(device, mx, my, mask);
115
116 // Outline the bottom of the connection area