summaryrefslogtreecommitdiffstats
path: root/src/device-manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/device-manager.cpp')
-rw-r--r--src/device-manager.cpp56
1 files changed, 22 insertions, 34 deletions
diff --git a/src/device-manager.cpp b/src/device-manager.cpp
index cfb8291a0..6c8d4514c 100644
--- a/src/device-manager.cpp
+++ b/src/device-manager.cpp
@@ -8,18 +8,23 @@
*/
#include "device-manager.h"
+
#include <set>
#include "preferences.h"
-#include <gdkmm/display.h>
-#include <gtkmm/accelkey.h>
+
#include <glibmm/regex.h>
-#if WITH_GTKMM_3_0
+#include <gtk/gtk.h>
+
+#include <gdkmm/display.h>
+#if GTK_CHECK_VERSION(3, 20, 0)
+# include <gdkmm/seat.h>
+#else
# include <gdkmm/devicemanager.h>
#endif
-#include <gtk/gtk.h>
+#include <gtkmm/accelkey.h>
#define noDEBUG_VERBOSE 1
@@ -47,11 +52,7 @@ static bool isValidDevice(Glib::RefPtr<Gdk::Device> device)
const bool source_matches = (device->get_source() == (*it).source);
const bool mode_matches = (device->get_mode() == (*it).mode);
const bool num_axes_matches = (device->get_n_axes() == (*it).num_axes);
-#if WITH_GTKMM_3_0
const bool num_keys_matches = (device->get_n_keys() == (*it).num_keys);
-#else
- const bool num_keys_matches = (gdk_device_get_n_keys(device->gobj()) == (*it).num_keys);
-#endif
if (name_matches && source_matches && mode_matches
&& num_axes_matches && num_keys_matches)
@@ -175,13 +176,7 @@ public:
virtual Gdk::InputMode getMode() const {return (device->get_mode());}
virtual gint getNumAxes() const {return device->get_n_axes();}
virtual bool hasCursor() const {return device->get_has_cursor();}
-
-#if WITH_GTKMM_3_0
virtual int getNumKeys() const {return device->get_n_keys();}
-#else
- virtual int getNumKeys() const {return gdk_device_get_n_keys(device->gobj());}
-#endif
-
virtual Glib::ustring getLink() const {return link;}
virtual void setLink( Glib::ustring const& link ) {this->link = link;}
virtual gint getLiveAxes() const {return liveAxes;}
@@ -326,11 +321,12 @@ DeviceManagerImpl::DeviceManagerImpl() :
{
Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gdk::DeviceManager> dm = display->get_device_manager();
- std::vector< Glib::RefPtr<Gdk::Device> > devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
+#if GTK_CHECK_VERSION(3, 20, 0)
+ auto seat = display->get_default_seat();
+ auto devList = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
#else
- std::vector< Glib::RefPtr<Gdk::Device> > devList = display->list_devices();
+ auto dm = display->get_device_manager();
+ auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
#endif
if (fakeList.empty()) {
@@ -340,24 +336,19 @@ DeviceManagerImpl::DeviceManagerImpl() :
std::set<Glib::ustring> knownIDs;
- for ( std::vector< Glib::RefPtr<Gdk::Device> >::iterator dev = devList.begin(); dev != devList.end(); ++dev ) {
-#if WITH_GTKMM_3_0
+ for (auto dev : devList) {
// GTK+ 3 has added keyboards to the list of supported devices.
- if((*dev)->get_source() != Gdk::SOURCE_KEYBOARD) {
-#endif
+ if(dev->get_source() != Gdk::SOURCE_KEYBOARD) {
#if DEBUG_VERBOSE
g_message("device: name[%s] source[0x%x] mode[0x%x] cursor[%s] axis count[%d] key count[%d]", dev->name, dev->source, dev->mode,
dev->has_cursor?"Yes":"no", dev->num_axes, dev->num_keys);
#endif
- InputDeviceImpl* device = new InputDeviceImpl(*dev, knownIDs);
+ InputDeviceImpl* device = new InputDeviceImpl(dev, knownIDs);
device->reference();
devices.push_back(Glib::RefPtr<InputDeviceImpl>(device));
-
-#if WITH_GTKMM_3_0
}
-#endif
}
}
@@ -667,11 +658,12 @@ static void createFakeList() {
// try to find the first *real* core pointer
Glib::RefPtr<Gdk::Display> display = Gdk::Display::get_default();
-#if WITH_GTKMM_3_0
- Glib::RefPtr<Gdk::DeviceManager> dm = display->get_device_manager();
- std::vector< Glib::RefPtr<Gdk::Device> > devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
+#if GTK_CHECK_VERSION(3, 20, 0)
+ auto seat = display->get_default_seat();
+ auto devList = seat->get_slaves(Gdk::SEAT_CAPABILITY_ALL);
#else
- std::vector< Glib::RefPtr<Gdk::Device> > devList = display->list_devices();
+ auto dm = display->get_device_manager();
+ auto devList = dm->list_devices(Gdk::DEVICE_TYPE_SLAVE);
#endif
// Set iterator to point at beginning of device list
@@ -689,11 +681,7 @@ static void createFakeList() {
fakeList[4].mode = device->get_mode();
fakeList[4].has_cursor = device->get_has_cursor();
fakeList[4].num_axes = device->get_n_axes();
-#if WITH_GTKMM_3_0
fakeList[4].num_keys = device->get_n_keys();
-#else
- fakeList[4].num_keys = gdk_device_get_n_keys(device->gobj());
-#endif
} else {
fakeList[4].name = "Core Pointer";
fakeList[4].source = Gdk::SOURCE_MOUSE;