From 17223ec4e5e9b74d73cef1e08ec85e5534f1c25b Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Sep 03 2018 15:40:03 +0000 Subject: Gtkmm 3.22 dependency --- diff --git a/synfig-studio/configure.ac b/synfig-studio/configure.ac index 05b636d..ad02612 100755 --- a/synfig-studio/configure.ac +++ b/synfig-studio/configure.ac @@ -94,7 +94,12 @@ esac # -- L I B R A R I E S ---------------------------------------- -PKG_CHECK_MODULES(GTKMM, gtkmm-3.0,,[ +# Some our hacks for GUI decorations works fine since 3.14 +# Since 3.14 for checkboxes STATE_FLAG_ACTIVE replaced with STATE_FLAG_CHECKED +# Since 3.18 changed bahavor of Gtk::Adjustment +# Since 3.20 Gdk::Seat has been introduced that supersedes Gdk::DeviceManager +# Since 3.22 Gtk CSS supports fields min-width, min-height +PKG_CHECK_MODULES(GTKMM, gtkmm-3.0 >= 3.22,,[ AC_MSG_ERROR([ ** You need to install Gtkmm-3.0 ]) ]) AC_SUBST(GTKMM_CFLAGS) diff --git a/synfig-studio/src/gui/app.cpp b/synfig-studio/src/gui/app.cpp index a316490..3f3ad99 100644 --- a/synfig-studio/src/gui/app.cpp +++ b/synfig-studio/src/gui/app.cpp @@ -2184,7 +2184,7 @@ App::apply_gtk_settings() // Fix GtkPaned (big margin makes it hard to grab first keyframe)) data += "GtkPaned { margin: 2px; }\n"; // Fix #348: Synfig's Interface went Too Thick - // following css works for gtk 3.14: + // following css works in gtk since 3.14: data += ".button { padding-left: 4px; padding-right: 4px; }\n"; data += ".button { padding-top: 0px; padding-bottom: 0px; }\n"; data += ".button * { padding-top: 4px; padding-bottom: 4px; }\n"; @@ -2193,19 +2193,11 @@ App::apply_gtk_settings() data += ".button > GtkLabel { padding-top: 0px; padding-bottom: 0px; }\n"; data += "GtkComboBox > .button > GtkBox > * { padding-top: 0px; padding-bottom: 0px; }\n"; data += ".entry { padding-top: 0px; padding-bottom: 0px; }\n"; - // following css works for gtk 3.22: -#ifdef __APPLE__ - // This is a temporary fix as we do not have gtk 3.22 on OSX build yet --KD - data += "button { padding: 0px; }\n"; -#else + // following css works in gtk since 3.22: data += "button { min-height: 16px; min-width: 16px; padding: 0px; }\n"; -#endif data += "button > box { padding: 5px; }\n"; data += "button > image { padding: 5px; }\n"; -#ifndef __APPLE__ - // This is a temporary fix as we do not have gtk 3.22 on OSX build yet --KD data += "entry, spinbutton { min-height: 16px; }\n"; -#endif data += "combobox > box > button > box { padding-top: 0px; padding-bottom: 0px; }\n"; // Fix #810: Insetsetive context menus on OSX g_object_get (G_OBJECT (gtk_settings), "gtk-theme-name", &theme_name, NULL); @@ -3375,7 +3367,9 @@ App::dialog_message_3b(const std::string &message, static bool try_open_uri(const std::string &uri) { - return gtk_show_uri(NULL, uri.c_str(), GDK_CURRENT_TIME, NULL); + return gtk_show_uri_on_window( + App::main_window ? App::main_window->gobj() : NULL, + uri.c_str(), GDK_CURRENT_TIME, NULL ); } void diff --git a/synfig-studio/src/gui/cellrenderer/cellrenderer_value.cpp b/synfig-studio/src/gui/cellrenderer/cellrenderer_value.cpp index 959af99..23030ed 100644 --- a/synfig-studio/src/gui/cellrenderer/cellrenderer_value.cpp +++ b/synfig-studio/src/gui/cellrenderer/cellrenderer_value.cpp @@ -443,21 +443,13 @@ CellRenderer_ValueBase::render_vfunc( Glib::RefPtr context = widget.get_style_context(); context->context_save(); Gtk::StateFlags state = get_state(widget, flags); -#if (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION >= 14) state &= ~(Gtk::STATE_FLAG_INCONSISTENT | Gtk::STATE_FLAG_ACTIVE | Gtk::STATE_FLAG_CHECKED); -#else - state &= ~(Gtk::STATE_FLAG_INCONSISTENT | Gtk::STATE_FLAG_ACTIVE); -#endif if ((flags & Gtk::CELL_RENDERER_SELECTED) != 0 && widget.has_focus()) state |= Gtk::STATE_FLAG_SELECTED; if (!property_editable()) state |= Gtk::STATE_FLAG_INSENSITIVE; if (data.get(bool())) -#if (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION >= 14) state |= Gtk::STATE_FLAG_CHECKED; -#else - state |= Gtk::STATE_FLAG_ACTIVE; -#endif cr->save(); Gdk::Cairo::add_rectangle_to_path(cr, cell_area); diff --git a/synfig-studio/src/gui/devicetracker.cpp b/synfig-studio/src/gui/devicetracker.cpp index e46c545..fd7a862 100644 --- a/synfig-studio/src/gui/devicetracker.cpp +++ b/synfig-studio/src/gui/devicetracker.cpp @@ -34,22 +34,23 @@ # include #endif +#include +#include +#include +#include + #include -#include "devicetracker.h" -#include -#include #include +#include "devicetracker.h" + #include #endif /* === U S I N G =========================================================== */ -using namespace std; -using namespace etl; -using namespace synfig; using namespace synfigapp; using namespace studio; @@ -61,157 +62,146 @@ using namespace studio; /* === M E T H O D S ======================================================= */ +void +DeviceTracker::list_devices(DeviceList &out_devices) +{ + out_devices.clear(); + Glib::RefPtr seat = Gdk::DisplayManager::get()->get_default_display()->get_default_seat(); + if (seat->get_keyboard()) + out_devices.push_back(seat->get_keyboard()); + if (seat->get_pointer()) + out_devices.push_back(seat->get_pointer()); + DeviceList slaves = seat->get_slaves(Gdk::SEAT_CAPABILITY_NONE); + out_devices.reserve(out_devices.size() + slaves.size()); + out_devices.insert(out_devices.end(), slaves.begin(), slaves.end()); +} + DeviceTracker::DeviceTracker() { - GdkDeviceType device_types[] = - { - GDK_DEVICE_TYPE_MASTER, - GDK_DEVICE_TYPE_SLAVE, - GDK_DEVICE_TYPE_FLOATING - }; - - for(int i = 0; i < (int)(sizeof(device_types)/sizeof(device_types[0])); ++i) - { - GList *device_list = gdk_device_manager_list_devices( - gdk_display_get_device_manager( - gdk_display_manager_get_default_display( - gdk_display_manager_get() )), - device_types[i] ); - - for(GList *iter=device_list; iter; iter=g_list_next(iter)) - { - GdkDevice* device=reinterpret_cast(iter->data); - - synfigapp::InputDevice::Handle input_device; - input_device=synfigapp::Main::add_input_device( - gdk_device_get_name(device), - synfigapp::InputDevice::Type(gdk_device_get_source(device)) ); - //Disable all extended devices by default. This tries to fix several - // bugs reported in track and forums - if( input_device->get_type()==synfigapp::InputDevice::TYPE_MOUSE || - input_device->get_type()==synfigapp::InputDevice::TYPE_PEN || - input_device->get_type()==synfigapp::InputDevice::TYPE_ERASER || - input_device->get_type()==synfigapp::InputDevice::TYPE_CURSOR ) - { - input_device->set_mode(synfigapp::InputDevice::MODE_DISABLED); - //synfigapp::Main::select_input_device(input_device); - } + DeviceList devices; + list_devices(devices); + for(DeviceList::const_iterator i = devices.begin(); i != devices.end(); ++i) { + const Glib::RefPtr &device = *i; + + bool unknown_type = false; + InputDevice::Type type = InputDevice::TYPE_MOUSE; + switch(device->get_source()) { + case Gdk::SOURCE_MOUSE: type = InputDevice::TYPE_MOUSE; break; + case Gdk::SOURCE_PEN: type = InputDevice::TYPE_PEN; break; + case Gdk::SOURCE_ERASER: type = InputDevice::TYPE_ERASER; break; + case Gdk::SOURCE_CURSOR: type = InputDevice::TYPE_CURSOR; break; + default: unknown_type = true; break; } - g_list_free(device_list); + InputDevice::Handle input_device; + input_device = synfigapp::Main::add_input_device(device->get_name(), type); + + // Disable all extended devices by default. + // This tries to fix several bugs reported in track and forums + if (!unknown_type) { + input_device->set_mode(InputDevice::MODE_DISABLED); + //synfigapp::Main::select_input_device(input_device); + } } // Once all devices are disabled be sure that the core pointer is the // one selected. The user should decide later whether enable and save the // rest of input devices found. - synfigapp::Main::select_input_device( - gdk_device_get_name( - gdk_device_manager_get_client_pointer( - gdk_display_get_device_manager( - gdk_display_manager_get_default_display( - gdk_display_manager_get() ))))); + Glib::RefPtr seat = Gdk::DisplayManager::get()->get_default_display()->get_default_seat(); + if (seat->get_pointer()) + synfigapp::Main::select_input_device(seat->get_pointer()->get_name()); } DeviceTracker::~DeviceTracker() -{ -} + { } void DeviceTracker::save_preferences() { - GdkDeviceType device_types[] = - { - GDK_DEVICE_TYPE_MASTER, - GDK_DEVICE_TYPE_SLAVE, - GDK_DEVICE_TYPE_FLOATING - }; - - for(int i = 0; i < (int)(sizeof(device_types)/sizeof(device_types[0])); ++i) - { - GList *device_list = gdk_device_manager_list_devices( - gdk_display_get_device_manager( - gdk_display_manager_get_default_display( - gdk_display_manager_get() )), - device_types[i] ); - - for(GList *itr=device_list; itr; itr=g_list_next(itr)) - { - GdkDevice * gdk_device = reinterpret_cast(itr->data); - - InputDevice::Handle synfig_device = - synfigapp::Main::find_input_device( - gdk_device_get_name(gdk_device) ); - if (!synfig_device) - continue; - - synfig_device->set_mode(InputDevice::Mode(gdk_device_get_mode(gdk_device))); - int n_axes = 0; - if (gdk_device_get_source (gdk_device) != GDK_SOURCE_KEYBOARD) n_axes = gdk_device_get_n_axes(gdk_device); - if (n_axes > 0) { - vector axes(n_axes); - for(int j = 0; j < n_axes; ++j) - axes[j] = InputDevice::AxisUse(gdk_device_get_axis_use(gdk_device, j)); - synfig_device->set_axes(axes); - } - - int n_keys = gdk_device_get_n_keys(gdk_device); - if (n_keys > 0) { - vector keys(n_keys); - for(int j = 0; j < n_keys; ++j) { - guint gdk_keyval = 0; - GdkModifierType gdk_modifiers = GdkModifierType(); - gdk_device_get_key(gdk_device, j, &gdk_keyval, &gdk_modifiers); - keys[i].keyval = gdk_keyval; - keys[i].modifiers = gdk_modifiers; + DeviceList devices; + list_devices(devices); + for(DeviceList::const_iterator i = devices.begin(); i != devices.end(); ++i) { + const Glib::RefPtr &device = *i; + + InputDevice::Handle synfig_device = synfigapp::Main::find_input_device(device->get_name()); + if (!synfig_device) + continue; + + InputDevice::Mode mode = InputDevice::MODE_DISABLED; + switch(device->get_mode()) { + case Gdk::MODE_SCREEN: mode = InputDevice::MODE_SCREEN; break; + case Gdk::MODE_WINDOW: mode = InputDevice::MODE_WINDOW; break; + default: break; + } + synfig_device->set_mode(mode); + + int n_axes = device->get_source() == Gdk::SOURCE_KEYBOARD ? 0 : device->get_axes(); + if (n_axes > 0) { + std::vector axes(n_axes); + for(int j = 0; j < n_axes; ++j) + switch(device->get_axis_use(j)) { + case Gdk::AXIS_X: axes[j] = InputDevice::AXIS_X; break; + case Gdk::AXIS_Y: axes[j] = InputDevice::AXIS_Y; break; + case Gdk::AXIS_PRESSURE: axes[j] = InputDevice::AXIS_PRESSURE; break; + case Gdk::AXIS_XTILT: axes[j] = InputDevice::AXIS_XTILT; break; + case Gdk::AXIS_YTILT: axes[j] = InputDevice::AXIS_YTILT; break; + case Gdk::AXIS_WHEEL: axes[j] = InputDevice::AXIS_WHEEL; break; + case Gdk::AXIS_LAST: axes[j] = InputDevice::AXIS_LAST; break; + default: axes[j] = InputDevice::AXIS_IGNORE; break; } - synfig_device->set_keys(keys); - } + synfig_device->set_axes(axes); } - g_list_free(device_list); + int n_keys = device->get_n_keys(); + if (n_keys > 0) { + std::vector keys(n_keys); + for(int j = 0; j < n_keys; ++j) { + guint gdk_keyval = 0; + Gdk::ModifierType gdk_modifiers = Gdk::ModifierType(); + device->get_key(j, gdk_keyval, gdk_modifiers); + keys[j].keyval = gdk_keyval; + keys[j].modifiers = gdk_modifiers; + } + synfig_device->set_keys(keys); + } } } void DeviceTracker::load_preferences() { - GdkDeviceType device_types[] = - { - GDK_DEVICE_TYPE_MASTER, - GDK_DEVICE_TYPE_SLAVE, - GDK_DEVICE_TYPE_FLOATING - }; - - for(int i = 0; i < (int)(sizeof(device_types)/sizeof(device_types[0])); ++i) - { - GList *device_list = gdk_device_manager_list_devices( - gdk_display_get_device_manager( - gdk_display_manager_get_default_display( - gdk_display_manager_get() )), - device_types[i] ); - - for(GList *itr=device_list; itr; itr=g_list_next(itr)) - { - GdkDevice * gdk_device = reinterpret_cast(itr->data); - - InputDevice::Handle synfig_device = - synfigapp::Main::find_input_device( - gdk_device_get_name(gdk_device) ); - if (!synfig_device) - continue; - - gdk_device_set_mode(gdk_device, GdkInputMode(synfig_device->get_mode())); - - const std::vector axes = synfig_device->get_axes(); - for (int axis = 0; axis < (int) axes.size(); axis++) - gdk_device_set_axis_use(gdk_device, axis, GdkAxisUse(axes[axis])); - - const std::vector keys = synfig_device->get_keys(); - for (int key = 0; key < (int) keys.size(); key++) - gdk_device_set_key(gdk_device, key, keys[key].keyval, - GdkModifierType(keys[key].modifiers)); + DeviceList devices; + list_devices(devices); + for(DeviceList::const_iterator i = devices.begin(); i != devices.end(); ++i) { + const Glib::RefPtr &device = *i; + + InputDevice::Handle synfig_device = synfigapp::Main::find_input_device(device->get_name()); + if (!synfig_device) + continue; + + Gdk::InputMode gdk_mode = Gdk::MODE_DISABLED; + switch(synfig_device->get_mode()) { + case InputDevice::MODE_SCREEN: gdk_mode = Gdk::MODE_SCREEN; break; + case InputDevice::MODE_WINDOW: gdk_mode = Gdk::MODE_WINDOW; break; + default: break; } + device->set_mode(gdk_mode); + + const std::vector axes = synfig_device->get_axes(); + for(int axis = 0; axis < (int)axes.size(); ++axis) + switch(axes[axis]) { + case InputDevice::AXIS_X: device->set_axis_use(axis, Gdk::AXIS_X); break; + case InputDevice::AXIS_Y: device->set_axis_use(axis, Gdk::AXIS_Y); break; + case InputDevice::AXIS_PRESSURE: device->set_axis_use(axis, Gdk::AXIS_PRESSURE); break; + case InputDevice::AXIS_XTILT: device->set_axis_use(axis, Gdk::AXIS_XTILT); break; + case InputDevice::AXIS_YTILT: device->set_axis_use(axis, Gdk::AXIS_YTILT); break; + case InputDevice::AXIS_WHEEL: device->set_axis_use(axis, Gdk::AXIS_WHEEL); break; + case InputDevice::AXIS_LAST: device->set_axis_use(axis, Gdk::AXIS_LAST); break; + default: device->set_axis_use(axis, Gdk::AXIS_IGNORE); break; + } - g_list_free(device_list); + const std::vector keys = synfig_device->get_keys(); + for (int key = 0; key < (int) keys.size(); key++) + device->set_key(key, keys[key].keyval, Gdk::ModifierType(keys[key].modifiers)); } } diff --git a/synfig-studio/src/gui/devicetracker.h b/synfig-studio/src/gui/devicetracker.h index 14c0272..8684f19 100644 --- a/synfig-studio/src/gui/devicetracker.h +++ b/synfig-studio/src/gui/devicetracker.h @@ -27,6 +27,8 @@ /* === H E A D E R S ======================================================= */ +#include + #include #include @@ -36,14 +38,21 @@ /* === C L A S S E S & S T R U C T S ======================================= */ +namespace Glib { template class RefPtr; } +namespace Gdk { class Device; } + namespace studio { +typedef std::vector< Glib::RefPtr > DeviceList; + class DeviceTracker { public: DeviceTracker(); ~DeviceTracker(); + static void list_devices(DeviceList &out_devices); + void save_preferences(); void load_preferences(); diff --git a/synfig-studio/src/gui/dialogs/dialog_input.cpp b/synfig-studio/src/gui/dialogs/dialog_input.cpp index 8e4297b..147602f 100644 --- a/synfig-studio/src/gui/dialogs/dialog_input.cpp +++ b/synfig-studio/src/gui/dialogs/dialog_input.cpp @@ -29,11 +29,9 @@ # include #endif -#include - #include -#include +#include #include #include @@ -41,17 +39,22 @@ #include #include -#include "dialog_input.h" +#include + #include +#include + +#include "dialog_input.h" + #include #endif /* === U S I N G =========================================================== */ -using namespace std; -using namespace etl; +using namespace synfig; +using namespace synfigapp; using namespace studio; /* === M A C R O S ========================================================= */ @@ -63,49 +66,38 @@ using namespace studio; /* === M E T H O D S ======================================================= */ struct Dialog_Input::DeviceOptions { - struct Axis - { - GdkAxisUse use; - Axis(): use() { } + struct Axis { + Gdk::AxisUse use; + Axis(): use(Gdk::AXIS_IGNORE) { } }; - typedef std::vector AxisList; - struct Key - { + struct Key { guint val; - GdkModifierType modifiers; + Gdk::ModifierType modifiers; Key(): val(), modifiers() { } }; - typedef std::vector KeyList; - struct Device - { - GdkDevice *handle; + struct Device { + Glib::RefPtr device; std::string name; - GdkInputMode mode; + Gdk::InputMode mode; AxisList axes; KeyList keys; - Device(): handle(), mode() { } + Device(): mode(Gdk::MODE_DISABLED) { } }; - typedef std::vector DeviceList; DeviceList devices; - void on_mode_comboboxtext_changed(Gtk::ComboBoxText *comboboxtext, Device *device) - { - int i = comboboxtext->get_active_row_number(); - switch(i) { - case GDK_MODE_SCREEN: - case GDK_MODE_WINDOW: - device->mode = (GdkInputMode)i; - break; - default: - device->mode = GDK_MODE_DISABLED; - break; - } + void on_mode_comboboxtext_changed(Gtk::ComboBoxText *comboboxtext, int device_index) { + if (device_index < 0 || device_index >= (int)devices.size()) return; + Device &device = devices[device_index]; + std::string id = comboboxtext->get_active_id(); + device.mode = id == "screen" ? Gdk::MODE_SCREEN + : id == "window" ? Gdk::MODE_WINDOW + : Gdk::MODE_DISABLED; } }; @@ -137,66 +129,44 @@ void Dialog_Input::take_options() { options->devices.clear(); - static const GdkDeviceType device_types[] = - { - GDK_DEVICE_TYPE_MASTER, - GDK_DEVICE_TYPE_SLAVE, - GDK_DEVICE_TYPE_FLOATING - }; - - for(int i = 0; i < (int)(sizeof(device_types)/sizeof(device_types[0])); ++i) - { - GList *device_list = gdk_device_manager_list_devices( - gdk_display_get_device_manager( - gdk_display_manager_get_default_display( - gdk_display_manager_get() )), - device_types[i] ); - - for(GList *itr=device_list; itr; itr=g_list_next(itr)) - { - GdkDevice * gdk_device = reinterpret_cast(itr->data); - - if (!synfigapp::Main::find_input_device(gdk_device_get_name(gdk_device))) - continue; - - options->devices.push_back(DeviceOptions::Device()); - DeviceOptions::Device &device_options = options->devices.back(); + DeviceList devices; + DeviceTracker::list_devices(devices); + for(DeviceList::const_iterator i = devices.begin(); i != devices.end(); ++i) { + const Glib::RefPtr &device = *i; - device_options.handle = gdk_device; - device_options.name = gdk_device_get_name(gdk_device); + if (!synfigapp::Main::find_input_device(device->get_name())) + continue; - // allow to select device mode - device_options.mode = gdk_device_get_mode(gdk_device); + options->devices.push_back(DeviceOptions::Device()); + DeviceOptions::Device &device_options = options->devices.back(); - // allow to select device axis usage + device_options.device = device; + device_options.name = device->get_name(); - int n_axes = 0; - if (gdk_device_get_source (gdk_device) != GDK_SOURCE_KEYBOARD) n_axes = gdk_device_get_n_axes(gdk_device); - device_options.axes.resize( n_axes ); - for(int j = 0; j < n_axes; ++j) - device_options.axes[j].use = gdk_device_get_axis_use(gdk_device, j); + // allow to select device mode + device_options.mode = device->get_mode(); - // allow to select device keys - device_options.keys.resize( gdk_device_get_n_keys(gdk_device) ); - for(int j = 0; j < (int)device_options.keys.size(); ++j) - gdk_device_get_key(gdk_device, j, &device_options.keys[j].val, &device_options.keys[j].modifiers); - } + // allow to select device axis usage (ignore axes of keyboard devices, why?) + device_options.axes.resize(device->get_source() == Gdk::SOURCE_KEYBOARD ? 0 : device->get_n_axes()); + for(int j = 0; j < (int)device_options.axes.size(); ++j) + device_options.axes[j].use = device->get_axis_use(j); - g_list_free(device_list); + // allow to select device keys + device_options.keys.resize( device->get_n_keys() ); + for(int j = 0; j < (int)device_options.keys.size(); ++j) + device->get_key(j, device_options.keys[j].val, device_options.keys[j].modifiers); } } void Dialog_Input::create_widgets() { - if (scrolled_window != NULL) - { + if (scrolled_window != NULL) { get_content_area()->remove(*scrolled_window); scrolled_window = NULL; } // Devices - if (!options->devices.empty()) - { + if (!options->devices.empty()) { scrolled_window = Gtk::manage(new Gtk::ScrolledWindow()); Gtk::Table *table = Gtk::manage(new Gtk::Table((int)options->devices.size() + 1, 2)); @@ -209,14 +179,18 @@ void Dialog_Input::create_widgets() table->attach(*label, 0, 1, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK | Gtk::FILL); Gtk::ComboBoxText *comboboxtext = Gtk::manage(new Gtk::ComboBoxText()); - comboboxtext->append(_("Disabled")); - comboboxtext->append(_("Screen")); - comboboxtext->append(_("Window")); - comboboxtext->set_active(i->mode); + comboboxtext->append("disabled", _("Disabled")); + comboboxtext->append("screen", _("Screen")); + comboboxtext->append("window", _("Window")); + switch(i->mode) { + case Gdk::MODE_SCREEN: comboboxtext->set_active(1); break; + case Gdk::MODE_WINDOW: comboboxtext->set_active(2); break; + default: comboboxtext->set_active(0); break; + } comboboxtext->signal_changed().connect( sigc::bind( sigc::mem_fun(options, &DeviceOptions::on_mode_comboboxtext_changed), - comboboxtext, &*i )); + comboboxtext, options->devices.begin() - i )); comboboxtext->show(); table->attach(*comboboxtext, 1, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK | Gtk::FILL); } @@ -244,13 +218,12 @@ void Dialog_Input::reset() void Dialog_Input::apply() { - for(DeviceOptions::DeviceList::const_iterator i = options->devices.begin(); i != options->devices.end(); ++i) - { - gdk_device_set_mode(i->handle, i->mode); + for(DeviceOptions::DeviceList::const_iterator i = options->devices.begin(); i != options->devices.end(); ++i) { + i->device->set_mode(i->mode); //for(DeviceOptions::AxisList::const_iterator j = i->axes.begin(); j != i->axes.end(); ++j) - // gdk_device_set_axis_use(i->handle, j - i->axes.begin(), j->use); + // i->device->set_axis_use(j - i->axes.begin(), j->use); //for(DeviceOptions::KeyList::const_iterator j = i->keys.begin(); j != i->keys.end(); ++j) - // gdk_device_set_key(i->handle, j - i->keys.begin(), j->val, j->modifiers); + // i->device->set_key(j - i->keys.begin(), j->val, j->modifiers); } signal_apply()(); } diff --git a/synfig-studio/src/gui/docks/dock_timetrack.cpp b/synfig-studio/src/gui/docks/dock_timetrack.cpp index 6ee5509..c7a6d01 100644 --- a/synfig-studio/src/gui/docks/dock_timetrack.cpp +++ b/synfig-studio/src/gui/docks/dock_timetrack.cpp @@ -528,13 +528,8 @@ Dock_Timetrack::changed_canvas_view_vfunc(etl::loose_handle canvas_v Gtk::DrawingArea* align_drawingArea1 = Gtk::manage(new Gtk::DrawingArea); // TODO ?: one align_drawingArea.(2, 3, 0, 1) modify_bg KF's color another (2, 3, 1, 2) modify_bg TS's color Gtk::DrawingArea* align_drawingArea2 = Gtk::manage(new Gtk::DrawingArea); -#if (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION >= 14) align_drawingArea1->set_size_request(2,-1); align_drawingArea2->set_size_request(4,-1); -#else - align_drawingArea1->set_size_request(4,-1); - align_drawingArea2->set_size_request(9,-1); -#endif widget_timeslider_.set_time_adjustment(canvas_view->time_model()->visible_time_adjustment()); widget_timeslider_.set_bounds_adjustment(canvas_view->time_model()->scroll_time_adjustment()); diff --git a/synfig-studio/src/gui/states/state_normal.cpp b/synfig-studio/src/gui/states/state_normal.cpp index e9dc265..6976009 100644 --- a/synfig-studio/src/gui/states/state_normal.cpp +++ b/synfig-studio/src/gui/states/state_normal.cpp @@ -75,18 +75,6 @@ using namespace studio; #define EPSILON 0.0000001 #endif -#if !GTK_CHECK_VERSION(2, 21, 0) -#define GDK_KEY_Control_L GDK_Control_L -#define GDK_KEY_Control_R GDK_Control_R -#define GDK_KEY_Shift_L GDK_Shift_L -#define GDK_KEY_Shift_R GDK_Shift_R -#define GDK_KEY_Alt_L GDK_Alt_L -#define GDK_KEY_Alt_R GDK_Alt_R -#define GDK_KEY_Meta_L GDK_Meta_L -#define GDK_KEY_Meta_R GDK_Meta_R -#define GDK_KEY_space GDK_space -#endif - /* === G L O B A L S ======================================================= */ StateNormal studio::state_normal;