/* Touchpad.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from Touchpad.vala, do not modify */

/*
 * SPDX-License-Identifier: GPL-2.0-or-later
 * SPDX-FileCopyrightText: 2011-2024 elementary, Inc. (https://elementary.io)
 */

#include "mouse-touchpad.h"
#include <gio/gio.h>
#include <gtk/gtk.h>
#include <glib-object.h>
#include <glib.h>
#include <glib/gi18n-lib.h>
#include <granite-7.h>
#include <switchboard.h>
#include <float.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

enum  {
	MOUSE_TOUCHPAD_TOUCHPAD_VIEW_0_PROPERTY,
	MOUSE_TOUCHPAD_TOUCHPAD_VIEW_NUM_PROPERTIES
};
static GParamSpec* mouse_touchpad_touchpad_view_properties[MOUSE_TOUCHPAD_TOUCHPAD_VIEW_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _Block3Data Block3Data;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

struct _MouseTouchpadTouchpadViewPrivate {
	GSettings* glib_settings;
	GtkCheckButton* drag_lock_check;
};

struct _Block3Data {
	int _ref_count_;
	MouseTouchpadTouchpadView* self;
	GtkSwitch* natural_scrolling_switch;
	GraniteHeaderLabel* natural_scrolling_header;
	GtkCheckButton* disabled_scroll_radio;
};

static gint MouseTouchpadTouchpadView_private_offset;
static gpointer mouse_touchpad_touchpad_view_parent_class = NULL;

static void mouse_touchpad_touchpad_view_update_drag_lock_sensitive (MouseTouchpadTouchpadView* self);
static GObject * mouse_touchpad_touchpad_view_constructor (GType type,
                                                    guint n_construct_properties,
                                                    GObjectConstructParam * construct_properties);
static Block3Data* block3_data_ref (Block3Data* _data3_);
static void block3_data_unref (void * _userdata_);
static void _mouse_touchpad_touchpad_view_update_drag_lock_sensitive_g_settings_changed (GSettings* _sender,
                                                                                  const gchar* key,
                                                                                  gpointer self);
static gboolean _mouse_touchpad_touchpad_view___lambda9_ (GValue* value,
                                                   GVariant* variant,
                                                   void* user_data);
static gboolean __mouse_touchpad_touchpad_view___lambda9__gsettings_bind_get_mapping (GValue* value,
                                                                               GVariant* variant,
                                                                               void* user_data);
static GVariant* _mouse_touchpad_touchpad_view___lambda10_ (GValue* value,
                                                     const GVariantType* expected_type,
                                                     void* user_data);
static GVariant* __mouse_touchpad_touchpad_view___lambda10__gsettings_bind_set_mapping (GValue* value,
                                                                                 const GVariantType* expected_type,
                                                                                 void* user_data);
static void _mouse_touchpad_touchpad_view___lambda11_ (Block3Data* _data3_);
static void __mouse_touchpad_touchpad_view___lambda11__gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                          gpointer self);
static void _mouse_touchpad_touchpad_view___lambda12_ (MouseTouchpadTouchpadView* self);
static void __mouse_touchpad_touchpad_view___lambda12__gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                          gpointer self);
static void _mouse_touchpad_touchpad_view___lambda13_ (MouseTouchpadTouchpadView* self);
static void __mouse_touchpad_touchpad_view___lambda13__gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                          gpointer self);
static void mouse_touchpad_touchpad_view_finalize (GObject * obj);
static GType mouse_touchpad_touchpad_view_get_type_once (void);

static inline gpointer
mouse_touchpad_touchpad_view_get_instance_private (MouseTouchpadTouchpadView* self)
{
	return G_STRUCT_MEMBER_P (self, MouseTouchpadTouchpadView_private_offset);
}

MouseTouchpadTouchpadView*
mouse_touchpad_touchpad_view_construct (GType object_type)
{
	MouseTouchpadTouchpadView * self = NULL;
	GThemedIcon* _tmp0_;
	GThemedIcon* _tmp1_;
	_tmp0_ = (GThemedIcon*) g_themed_icon_new ("input-touchpad");
	_tmp1_ = _tmp0_;
	self = (MouseTouchpadTouchpadView*) g_object_new (object_type, "icon", _tmp1_, "title", _ ("Touchpad"), NULL);
	_g_object_unref0 (_tmp1_);
	return self;
}

MouseTouchpadTouchpadView*
mouse_touchpad_touchpad_view_new (void)
{
	return mouse_touchpad_touchpad_view_construct (MOUSE_TOUCHPAD_TYPE_TOUCHPAD_VIEW);
}

static void
mouse_touchpad_touchpad_view_update_drag_lock_sensitive (MouseTouchpadTouchpadView* self)
{
	gboolean _tmp0_ = FALSE;
	GSettings* _tmp1_;
	GtkCheckButton* _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->glib_settings;
	if (g_settings_get_boolean (_tmp1_, "tap-to-click")) {
		GSettings* _tmp2_;
		_tmp2_ = self->priv->glib_settings;
		_tmp0_ = g_settings_get_boolean (_tmp2_, "tap-and-drag");
	} else {
		_tmp0_ = FALSE;
	}
	_tmp3_ = self->priv->drag_lock_check;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp3_, _tmp0_);
}

static Block3Data*
block3_data_ref (Block3Data* _data3_)
{
	g_atomic_int_inc (&_data3_->_ref_count_);
	return _data3_;
}

static void
block3_data_unref (void * _userdata_)
{
	Block3Data* _data3_;
	_data3_ = (Block3Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
		MouseTouchpadTouchpadView* self;
		self = _data3_->self;
		_g_object_unref0 (_data3_->disabled_scroll_radio);
		_g_object_unref0 (_data3_->natural_scrolling_header);
		_g_object_unref0 (_data3_->natural_scrolling_switch);
		_g_object_unref0 (self);
		g_slice_free (Block3Data, _data3_);
	}
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

static void
_mouse_touchpad_touchpad_view_update_drag_lock_sensitive_g_settings_changed (GSettings* _sender,
                                                                             const gchar* key,
                                                                             gpointer self)
{
	mouse_touchpad_touchpad_view_update_drag_lock_sensitive ((MouseTouchpadTouchpadView*) self);
}

static gboolean
_mouse_touchpad_touchpad_view___lambda9_ (GValue* value,
                                          GVariant* variant,
                                          void* user_data)
{
	const gchar* _tmp0_;
	gboolean result;
	g_return_val_if_fail (value != NULL, FALSE);
	g_return_val_if_fail (variant != NULL, FALSE);
	_tmp0_ = g_variant_get_string (variant, NULL);
	g_value_set_boolean (value, g_strcmp0 (_tmp0_, "disabled-on-external-mouse") == 0);
	result = TRUE;
	return result;
}

static gboolean
__mouse_touchpad_touchpad_view___lambda9__gsettings_bind_get_mapping (GValue* value,
                                                                      GVariant* variant,
                                                                      void* user_data)
{
	gboolean result;
	result = _mouse_touchpad_touchpad_view___lambda9_ (value, variant, user_data);
	return result;
}

static GVariant*
_mouse_touchpad_touchpad_view___lambda10_ (GValue* value,
                                           const GVariantType* expected_type,
                                           void* user_data)
{
	GVariant* result;
	g_return_val_if_fail (value != NULL, NULL);
	g_return_val_if_fail (expected_type != NULL, NULL);
	if (g_value_get_boolean (value)) {
		GVariant* _tmp0_;
		_tmp0_ = g_variant_new ("s", "disabled-on-external-mouse", NULL);
		g_variant_ref_sink (_tmp0_);
		result = _tmp0_;
		return result;
	} else {
		GVariant* _tmp1_;
		_tmp1_ = g_variant_new ("s", "enabled", NULL);
		g_variant_ref_sink (_tmp1_);
		result = _tmp1_;
		return result;
	}
}

static GVariant*
__mouse_touchpad_touchpad_view___lambda10__gsettings_bind_set_mapping (GValue* value,
                                                                       const GVariantType* expected_type,
                                                                       void* user_data)
{
	GVariant* result;
	result = _mouse_touchpad_touchpad_view___lambda10_ (value, expected_type, user_data);
	return result;
}

static void
_mouse_touchpad_touchpad_view___lambda11_ (Block3Data* _data3_)
{
	MouseTouchpadTouchpadView* self;
	GraniteHeaderLabel* _tmp0_;
	GtkCheckButton* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	GtkSwitch* _tmp4_;
	GtkCheckButton* _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	self = _data3_->self;
	_tmp0_ = _data3_->natural_scrolling_header;
	_tmp1_ = _data3_->disabled_scroll_radio;
	_tmp2_ = gtk_check_button_get_active (_tmp1_);
	_tmp3_ = _tmp2_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, !_tmp3_);
	_tmp4_ = _data3_->natural_scrolling_switch;
	_tmp5_ = _data3_->disabled_scroll_radio;
	_tmp6_ = gtk_check_button_get_active (_tmp5_);
	_tmp7_ = _tmp6_;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp4_, !_tmp7_);
}

static void
__mouse_touchpad_touchpad_view___lambda11__gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                     gpointer self)
{
	_mouse_touchpad_touchpad_view___lambda11_ (self);
}

static void
_mouse_touchpad_touchpad_view___lambda12_ (MouseTouchpadTouchpadView* self)
{
	GSettings* _tmp0_;
	GSettings* _tmp1_;
	_tmp0_ = self->priv->glib_settings;
	g_settings_set_boolean (_tmp0_, "edge-scrolling-enabled", FALSE);
	_tmp1_ = self->priv->glib_settings;
	g_settings_set_boolean (_tmp1_, "two-finger-scrolling-enabled", TRUE);
}

static void
__mouse_touchpad_touchpad_view___lambda12__gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                     gpointer self)
{
	_mouse_touchpad_touchpad_view___lambda12_ ((MouseTouchpadTouchpadView*) self);
}

static void
_mouse_touchpad_touchpad_view___lambda13_ (MouseTouchpadTouchpadView* self)
{
	GSettings* _tmp0_;
	GSettings* _tmp1_;
	_tmp0_ = self->priv->glib_settings;
	g_settings_set_boolean (_tmp0_, "edge-scrolling-enabled", TRUE);
	_tmp1_ = self->priv->glib_settings;
	g_settings_set_boolean (_tmp1_, "two-finger-scrolling-enabled", FALSE);
}

static void
__mouse_touchpad_touchpad_view___lambda13__gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                     gpointer self)
{
	_mouse_touchpad_touchpad_view___lambda13_ ((MouseTouchpadTouchpadView*) self);
}

static GObject *
mouse_touchpad_touchpad_view_constructor (GType type,
                                          guint n_construct_properties,
                                          GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	MouseTouchpadTouchpadView * self;
	Block3Data* _data3_;
	GtkAdjustment* pointer_speed_adjustment = NULL;
	GtkAdjustment* _tmp0_;
	GtkScale* pointer_speed_scale = NULL;
	GtkAdjustment* _tmp1_;
	GtkScale* _tmp2_ = NULL;
	GtkScale* _tmp3_;
	GtkScale* _tmp4_;
	GtkScale* _tmp5_;
	GraniteHeaderLabel* pointer_speed_header = NULL;
	GtkScale* _tmp6_;
	GtkWidget* _tmp7_;
	GraniteHeaderLabel* _tmp8_ = NULL;
	GtkCheckButton* multitouch_click_method_radio = NULL;
	gchar* _tmp9_;
	GVariant* _tmp10_;
	GtkCheckButton* _tmp11_ = NULL;
	GtkCheckButton* _tmp12_;
	GtkLabel* multitouch_click_method_label = NULL;
	GtkLabel* _tmp13_;
	GtkImage* multitouch_click_method_image = NULL;
	GtkImage* _tmp14_ = NULL;
	GtkBox* multitouch_click_method_box = NULL;
	GtkBox* _tmp15_;
	GtkBox* _tmp16_;
	GtkImage* _tmp17_;
	GtkBox* _tmp18_;
	GtkLabel* _tmp19_;
	GtkBox* _tmp20_;
	GtkCheckButton* _tmp21_;
	GtkCheckButton* areas_click_method_radio = NULL;
	gchar* _tmp22_;
	GVariant* _tmp23_;
	GtkCheckButton* _tmp24_ = NULL;
	GtkCheckButton* _tmp25_;
	GtkLabel* areas_click_method_label = NULL;
	GtkLabel* _tmp26_;
	GtkImage* areas_click_method_image = NULL;
	GtkImage* _tmp27_ = NULL;
	GtkBox* areas_click_method_box = NULL;
	GtkBox* _tmp28_;
	GtkBox* _tmp29_;
	GtkImage* _tmp30_;
	GtkBox* _tmp31_;
	GtkLabel* _tmp32_;
	GtkBox* _tmp33_;
	GtkCheckButton* _tmp34_;
	GraniteHeaderLabel* click_method_label = NULL;
	GraniteHeaderLabel* _tmp35_;
	GtkBox* click_method_box = NULL;
	GtkBox* _tmp36_;
	GtkBox* _tmp37_;
	GtkCheckButton* _tmp38_;
	GtkBox* _tmp39_;
	GtkCheckButton* _tmp40_;
	GtkCheckButton* tap_to_click_check = NULL;
	GtkCheckButton* _tmp41_ = NULL;
	GtkCheckButton* tap_and_drag_check = NULL;
	GtkCheckButton* _tmp42_ = NULL;
	GtkCheckButton* _tmp43_ = NULL;
	GtkBox* tap_box = NULL;
	GtkBox* _tmp44_ = NULL;
	GtkBox* _tmp45_;
	GtkCheckButton* _tmp46_;
	GtkBox* _tmp47_;
	GtkCheckButton* _tmp48_;
	GtkBox* _tmp49_;
	GtkCheckButton* _tmp50_;
	GraniteHeaderLabel* tapping_header = NULL;
	GtkBox* _tmp51_;
	GtkWidget* _tmp52_;
	GraniteHeaderLabel* _tmp53_ = NULL;
	GraniteHeaderLabel* scroll_method_label = NULL;
	GraniteHeaderLabel* _tmp54_;
	GtkCheckButton* two_finger_scroll_radio = NULL;
	GtkCheckButton* _tmp55_;
	GtkCheckButton* _tmp56_;
	GtkLabel* two_finger_scroll_label = NULL;
	GtkLabel* _tmp57_;
	GtkImage* two_finger_scroll_image = NULL;
	GtkImage* _tmp58_ = NULL;
	GtkBox* two_finger_scroll_box = NULL;
	GtkBox* _tmp59_;
	GtkBox* _tmp60_;
	GtkImage* _tmp61_;
	GtkBox* _tmp62_;
	GtkLabel* _tmp63_;
	GtkBox* _tmp64_;
	GtkCheckButton* _tmp65_;
	GtkCheckButton* edge_scroll_radio = NULL;
	GtkCheckButton* _tmp66_;
	GtkCheckButton* _tmp67_;
	GtkCheckButton* _tmp68_ = NULL;
	GtkCheckButton* _tmp69_;
	GtkLabel* edge_scroll_label = NULL;
	GtkLabel* _tmp70_;
	GtkImage* edge_scroll_image = NULL;
	GtkImage* _tmp71_ = NULL;
	GtkBox* edge_scroll_box = NULL;
	GtkBox* _tmp72_;
	GtkBox* _tmp73_;
	GtkImage* _tmp74_;
	GtkBox* _tmp75_;
	GtkLabel* _tmp76_;
	GtkBox* _tmp77_;
	GtkCheckButton* _tmp78_;
	GtkBox* scroll_method_box = NULL;
	GtkBox* _tmp79_;
	GtkBox* _tmp80_;
	GtkCheckButton* _tmp81_;
	GtkBox* _tmp82_;
	GtkCheckButton* _tmp83_;
	GtkSwitch* _tmp84_ = NULL;
	GtkSwitch* _tmp85_;
	GtkWidget* _tmp86_;
	gchar* _tmp87_;
	GraniteHeaderLabel* _tmp88_ = NULL;
	GtkBox* natural_scrolling_box = NULL;
	GtkBox* _tmp89_ = NULL;
	GtkBox* _tmp90_;
	GraniteHeaderLabel* _tmp91_;
	GtkBox* _tmp92_;
	GtkSwitch* _tmp93_;
	GraniteHeaderLabel* disable_label = NULL;
	GraniteHeaderLabel* _tmp94_;
	GtkCheckButton* disable_while_typing_check = NULL;
	GtkCheckButton* _tmp95_;
	GtkCheckButton* disable_with_mouse_check = NULL;
	GtkCheckButton* _tmp96_;
	GtkBox* disable_box = NULL;
	GtkBox* _tmp97_;
	GtkBox* _tmp98_;
	GtkCheckButton* _tmp99_;
	GtkBox* _tmp100_;
	GtkCheckButton* _tmp101_;
	GtkBox* content_box = NULL;
	GtkBox* _tmp102_;
	GtkBox* _tmp103_;
	GraniteHeaderLabel* _tmp104_;
	GtkBox* _tmp105_;
	GtkScale* _tmp106_;
	GtkBox* _tmp107_;
	GraniteHeaderLabel* _tmp108_;
	GtkBox* _tmp109_;
	GtkBox* _tmp110_;
	GtkBox* _tmp111_;
	GraniteHeaderLabel* _tmp112_;
	GtkBox* _tmp113_;
	GtkBox* _tmp114_;
	GtkBox* _tmp115_;
	GraniteHeaderLabel* _tmp116_;
	GtkBox* _tmp117_;
	GtkBox* _tmp118_;
	GtkBox* _tmp119_;
	GraniteHeaderLabel* _tmp120_;
	GtkBox* _tmp121_;
	GtkBox* _tmp122_;
	GtkBox* _tmp123_;
	GtkBox* _tmp124_;
	GtkBox* _tmp125_;
	GSettings* _tmp126_;
	GSettings* _tmp127_;
	GtkCheckButton* _tmp128_;
	GSettings* _tmp129_;
	GtkSwitch* _tmp130_;
	GSettings* _tmp131_;
	GtkAdjustment* _tmp132_;
	GSettings* _tmp133_;
	GtkCheckButton* _tmp134_;
	GSettings* _tmp135_;
	GtkCheckButton* _tmp136_;
	GtkCheckButton* _tmp137_;
	GtkCheckButton* _tmp138_;
	GSettings* _tmp139_;
	GtkCheckButton* _tmp140_;
	GSettings* _tmp141_;
	GSettings* _tmp142_;
	GSettings* _tmp143_;
	GtkCheckButton* _tmp144_;
	GSimpleActionGroup* action_group = NULL;
	GSimpleActionGroup* _tmp145_;
	GSimpleActionGroup* _tmp146_;
	GSettings* _tmp147_;
	GAction* _tmp148_;
	GAction* _tmp149_;
	GSimpleActionGroup* _tmp150_;
	GtkCheckButton* _tmp151_;
	GtkCheckButton* _tmp152_;
	GtkCheckButton* _tmp153_ = NULL;
	GtkCheckButton* _tmp154_;
	GtkCheckButton* _tmp155_;
	GtkCheckButton* _tmp156_;
	gboolean two_finger_scrolling = FALSE;
	GSettings* _tmp157_;
	gboolean _tmp158_ = FALSE;
	GSettings* _tmp159_;
	parent_class = G_OBJECT_CLASS (mouse_touchpad_touchpad_view_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, MOUSE_TOUCHPAD_TYPE_TOUCHPAD_VIEW, MouseTouchpadTouchpadView);
	_data3_ = g_slice_new0 (Block3Data);
	_data3_->_ref_count_ = 1;
	_data3_->self = g_object_ref (self);
	switchboard_settings_page_set_show_end_title_buttons ((SwitchboardSettingsPage*) self, TRUE);
	_tmp0_ = gtk_adjustment_new ((gdouble) 0, (gdouble) -1, (gdouble) 1, 0.1, (gdouble) 0, (gdouble) 0);
	g_object_ref_sink (_tmp0_);
	pointer_speed_adjustment = _tmp0_;
	_tmp1_ = pointer_speed_adjustment;
	_tmp2_ = (GtkScale*) gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, _tmp1_);
	gtk_scale_set_digits (_tmp2_, 2);
	gtk_scale_set_draw_value (_tmp2_, FALSE);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp2_, TRUE);
	g_object_ref_sink (_tmp2_);
	pointer_speed_scale = _tmp2_;
	_tmp3_ = pointer_speed_scale;
	gtk_scale_add_mark (_tmp3_, (gdouble) -1, GTK_POS_BOTTOM, _ ("Slower"));
	_tmp4_ = pointer_speed_scale;
	gtk_scale_add_mark (_tmp4_, (gdouble) 0, GTK_POS_BOTTOM, NULL);
	_tmp5_ = pointer_speed_scale;
	gtk_scale_add_mark (_tmp5_, (gdouble) 1, GTK_POS_BOTTOM, _ ("Faster"));
	_tmp6_ = pointer_speed_scale;
	_tmp7_ = _g_object_ref0 ((GtkWidget*) _tmp6_);
	_tmp8_ = granite_header_label_new (_ ("Pointer Speed"));
	granite_header_label_set_mnemonic_widget (_tmp8_, _tmp7_);
	_g_object_unref0 (_tmp7_);
	g_object_ref_sink (_tmp8_);
	pointer_speed_header = _tmp8_;
	_tmp9_ = g_strdup ("touchpad.click-method");
	_tmp10_ = g_variant_new_string ("fingers");
	g_variant_ref_sink (_tmp10_);
	_tmp11_ = (GtkCheckButton*) gtk_check_button_new ();
	gtk_actionable_set_action_name ((GtkActionable*) _tmp11_, _tmp9_);
	_g_free0 (_tmp9_);
	g_object_set ((GtkActionable*) _tmp11_, "action-target", _tmp10_, NULL);
	_g_variant_unref0 (_tmp10_);
	g_object_ref_sink (_tmp11_);
	multitouch_click_method_radio = _tmp11_;
	_tmp12_ = multitouch_click_method_radio;
	gtk_widget_add_css_class ((GtkWidget*) _tmp12_, "image-button");
	_tmp13_ = (GtkLabel*) gtk_label_new (_ ("Multitouch"));
	g_object_ref_sink (_tmp13_);
	multitouch_click_method_label = _tmp13_;
	_tmp14_ = (GtkImage*) gtk_image_new_from_icon_name ("touchpad-click-multitouch-symbolic");
	gtk_image_set_pixel_size (_tmp14_, 32);
	g_object_ref_sink (_tmp14_);
	multitouch_click_method_image = _tmp14_;
	_tmp15_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp15_);
	multitouch_click_method_box = _tmp15_;
	_tmp16_ = multitouch_click_method_box;
	_tmp17_ = multitouch_click_method_image;
	gtk_box_append (_tmp16_, (GtkWidget*) _tmp17_);
	_tmp18_ = multitouch_click_method_box;
	_tmp19_ = multitouch_click_method_label;
	gtk_box_append (_tmp18_, (GtkWidget*) _tmp19_);
	_tmp20_ = multitouch_click_method_box;
	_tmp21_ = multitouch_click_method_radio;
	gtk_widget_set_parent ((GtkWidget*) _tmp20_, (GtkWidget*) _tmp21_);
	_tmp22_ = g_strdup ("touchpad.click-method");
	_tmp23_ = g_variant_new_string ("areas");
	g_variant_ref_sink (_tmp23_);
	_tmp24_ = (GtkCheckButton*) gtk_check_button_new ();
	gtk_actionable_set_action_name ((GtkActionable*) _tmp24_, _tmp22_);
	_g_free0 (_tmp22_);
	g_object_set ((GtkActionable*) _tmp24_, "action-target", _tmp23_, NULL);
	_g_variant_unref0 (_tmp23_);
	g_object_ref_sink (_tmp24_);
	areas_click_method_radio = _tmp24_;
	_tmp25_ = areas_click_method_radio;
	gtk_widget_add_css_class ((GtkWidget*) _tmp25_, "image-button");
	_tmp26_ = (GtkLabel*) gtk_label_new (_ ("Areas"));
	g_object_ref_sink (_tmp26_);
	areas_click_method_label = _tmp26_;
	_tmp27_ = (GtkImage*) gtk_image_new_from_icon_name ("touchpad-click-areas-symbolic");
	gtk_image_set_pixel_size (_tmp27_, 32);
	g_object_ref_sink (_tmp27_);
	areas_click_method_image = _tmp27_;
	_tmp28_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp28_);
	areas_click_method_box = _tmp28_;
	_tmp29_ = areas_click_method_box;
	_tmp30_ = areas_click_method_image;
	gtk_box_append (_tmp29_, (GtkWidget*) _tmp30_);
	_tmp31_ = areas_click_method_box;
	_tmp32_ = areas_click_method_label;
	gtk_box_append (_tmp31_, (GtkWidget*) _tmp32_);
	_tmp33_ = areas_click_method_box;
	_tmp34_ = areas_click_method_radio;
	gtk_widget_set_parent ((GtkWidget*) _tmp33_, (GtkWidget*) _tmp34_);
	_tmp35_ = granite_header_label_new (_ ("Physical Secondary Clicking"));
	g_object_ref_sink (_tmp35_);
	click_method_label = _tmp35_;
	_tmp36_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
	g_object_ref_sink (_tmp36_);
	click_method_box = _tmp36_;
	_tmp37_ = click_method_box;
	_tmp38_ = multitouch_click_method_radio;
	gtk_box_append (_tmp37_, (GtkWidget*) _tmp38_);
	_tmp39_ = click_method_box;
	_tmp40_ = areas_click_method_radio;
	gtk_box_append (_tmp39_, (GtkWidget*) _tmp40_);
	_tmp41_ = (GtkCheckButton*) gtk_check_button_new_with_label (_ ("Tap to click"));
	gtk_widget_set_halign ((GtkWidget*) _tmp41_, GTK_ALIGN_START);
	g_object_ref_sink (_tmp41_);
	tap_to_click_check = _tmp41_;
	_tmp42_ = (GtkCheckButton*) gtk_check_button_new_with_label (_ ("Double-tap and move to drag"));
	gtk_widget_set_halign ((GtkWidget*) _tmp42_, GTK_ALIGN_START);
	g_object_ref_sink (_tmp42_);
	tap_and_drag_check = _tmp42_;
	_tmp43_ = (GtkCheckButton*) gtk_check_button_new_with_label (_ ("Continue dragging if the finger is only lifted briefly"));
	gtk_widget_set_halign ((GtkWidget*) _tmp43_, GTK_ALIGN_START);
	g_object_ref_sink (_tmp43_);
	_g_object_unref0 (self->priv->drag_lock_check);
	self->priv->drag_lock_check = _tmp43_;
	_tmp44_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
	g_object_set ((GtkAccessible*) _tmp44_, "accessible-role", GTK_ACCESSIBLE_ROLE_LIST, NULL);
	g_object_ref_sink (_tmp44_);
	tap_box = _tmp44_;
	_tmp45_ = tap_box;
	_tmp46_ = tap_to_click_check;
	gtk_box_append (_tmp45_, (GtkWidget*) _tmp46_);
	_tmp47_ = tap_box;
	_tmp48_ = tap_and_drag_check;
	gtk_box_append (_tmp47_, (GtkWidget*) _tmp48_);
	_tmp49_ = tap_box;
	_tmp50_ = self->priv->drag_lock_check;
	gtk_box_append (_tmp49_, (GtkWidget*) _tmp50_);
	_tmp51_ = tap_box;
	_tmp52_ = _g_object_ref0 ((GtkWidget*) _tmp51_);
	_tmp53_ = granite_header_label_new (_ ("Tapping"));
	granite_header_label_set_mnemonic_widget (_tmp53_, _tmp52_);
	_g_object_unref0 (_tmp52_);
	g_object_ref_sink (_tmp53_);
	tapping_header = _tmp53_;
	_tmp54_ = granite_header_label_new (_ ("Scroll Method"));
	g_object_ref_sink (_tmp54_);
	scroll_method_label = _tmp54_;
	_tmp55_ = (GtkCheckButton*) gtk_check_button_new ();
	g_object_ref_sink (_tmp55_);
	two_finger_scroll_radio = _tmp55_;
	_tmp56_ = two_finger_scroll_radio;
	gtk_widget_add_css_class ((GtkWidget*) _tmp56_, "image-button");
	_tmp57_ = (GtkLabel*) gtk_label_new (_ ("Two-finger"));
	g_object_ref_sink (_tmp57_);
	two_finger_scroll_label = _tmp57_;
	_tmp58_ = (GtkImage*) gtk_image_new_from_icon_name ("touchpad-scroll-two-finger-symbolic");
	gtk_image_set_pixel_size (_tmp58_, 32);
	g_object_ref_sink (_tmp58_);
	two_finger_scroll_image = _tmp58_;
	_tmp59_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp59_);
	two_finger_scroll_box = _tmp59_;
	_tmp60_ = two_finger_scroll_box;
	_tmp61_ = two_finger_scroll_image;
	gtk_box_append (_tmp60_, (GtkWidget*) _tmp61_);
	_tmp62_ = two_finger_scroll_box;
	_tmp63_ = two_finger_scroll_label;
	gtk_box_append (_tmp62_, (GtkWidget*) _tmp63_);
	_tmp64_ = two_finger_scroll_box;
	_tmp65_ = two_finger_scroll_radio;
	gtk_widget_set_parent ((GtkWidget*) _tmp64_, (GtkWidget*) _tmp65_);
	_tmp66_ = two_finger_scroll_radio;
	_tmp67_ = _g_object_ref0 (_tmp66_);
	_tmp68_ = (GtkCheckButton*) gtk_check_button_new ();
	gtk_check_button_set_group (_tmp68_, _tmp67_);
	_g_object_unref0 (_tmp67_);
	g_object_ref_sink (_tmp68_);
	edge_scroll_radio = _tmp68_;
	_tmp69_ = edge_scroll_radio;
	gtk_widget_add_css_class ((GtkWidget*) _tmp69_, "image-button");
	_tmp70_ = (GtkLabel*) gtk_label_new (_ ("Edge"));
	g_object_ref_sink (_tmp70_);
	edge_scroll_label = _tmp70_;
	_tmp71_ = (GtkImage*) gtk_image_new_from_icon_name ("touchpad-scroll-edge-symbolic");
	gtk_image_set_pixel_size (_tmp71_, 32);
	g_object_ref_sink (_tmp71_);
	edge_scroll_image = _tmp71_;
	_tmp72_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	g_object_ref_sink (_tmp72_);
	edge_scroll_box = _tmp72_;
	_tmp73_ = edge_scroll_box;
	_tmp74_ = edge_scroll_image;
	gtk_box_append (_tmp73_, (GtkWidget*) _tmp74_);
	_tmp75_ = edge_scroll_box;
	_tmp76_ = edge_scroll_label;
	gtk_box_append (_tmp75_, (GtkWidget*) _tmp76_);
	_tmp77_ = edge_scroll_box;
	_tmp78_ = edge_scroll_radio;
	gtk_widget_set_parent ((GtkWidget*) _tmp77_, (GtkWidget*) _tmp78_);
	_tmp79_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 24);
	g_object_ref_sink (_tmp79_);
	scroll_method_box = _tmp79_;
	_tmp80_ = scroll_method_box;
	_tmp81_ = two_finger_scroll_radio;
	gtk_box_append (_tmp80_, (GtkWidget*) _tmp81_);
	_tmp82_ = scroll_method_box;
	_tmp83_ = edge_scroll_radio;
	gtk_box_append (_tmp82_, (GtkWidget*) _tmp83_);
	_tmp84_ = (GtkSwitch*) gtk_switch_new ();
	gtk_widget_set_halign ((GtkWidget*) _tmp84_, GTK_ALIGN_END);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp84_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp84_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp84_);
	_data3_->natural_scrolling_switch = _tmp84_;
	_tmp85_ = _data3_->natural_scrolling_switch;
	_tmp86_ = _g_object_ref0 ((GtkWidget*) _tmp85_);
	_tmp87_ = g_strdup (_ ("Scrolling moves the content, not the view"));
	_tmp88_ = granite_header_label_new (_ ("Natural Scrolling"));
	granite_header_label_set_mnemonic_widget (_tmp88_, _tmp86_);
	_g_object_unref0 (_tmp86_);
	granite_header_label_set_secondary_text (_tmp88_, _tmp87_);
	_g_free0 (_tmp87_);
	g_object_ref_sink (_tmp88_);
	_data3_->natural_scrolling_header = _tmp88_;
	_tmp89_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
	gtk_widget_set_margin_top ((GtkWidget*) _tmp89_, 12);
	g_object_ref_sink (_tmp89_);
	natural_scrolling_box = _tmp89_;
	_tmp90_ = natural_scrolling_box;
	_tmp91_ = _data3_->natural_scrolling_header;
	gtk_box_append (_tmp90_, (GtkWidget*) _tmp91_);
	_tmp92_ = natural_scrolling_box;
	_tmp93_ = _data3_->natural_scrolling_switch;
	gtk_box_append (_tmp92_, (GtkWidget*) _tmp93_);
	_tmp94_ = granite_header_label_new (_ ("Ignore"));
	g_object_ref_sink (_tmp94_);
	disable_label = _tmp94_;
	_tmp95_ = (GtkCheckButton*) gtk_check_button_new_with_label (_ ("While typing"));
	g_object_ref_sink (_tmp95_);
	disable_while_typing_check = _tmp95_;
	_tmp96_ = (GtkCheckButton*) gtk_check_button_new_with_label (_ ("When mouse is connected"));
	g_object_ref_sink (_tmp96_);
	disable_with_mouse_check = _tmp96_;
	_tmp97_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 24);
	g_object_ref_sink (_tmp97_);
	disable_box = _tmp97_;
	_tmp98_ = disable_box;
	_tmp99_ = disable_while_typing_check;
	gtk_box_append (_tmp98_, (GtkWidget*) _tmp99_);
	_tmp100_ = disable_box;
	_tmp101_ = disable_with_mouse_check;
	gtk_box_append (_tmp100_, (GtkWidget*) _tmp101_);
	_tmp102_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
	g_object_ref_sink (_tmp102_);
	content_box = _tmp102_;
	_tmp103_ = content_box;
	_tmp104_ = pointer_speed_header;
	gtk_box_append (_tmp103_, (GtkWidget*) _tmp104_);
	_tmp105_ = content_box;
	_tmp106_ = pointer_speed_scale;
	gtk_box_append (_tmp105_, (GtkWidget*) _tmp106_);
	_tmp107_ = content_box;
	_tmp108_ = disable_label;
	gtk_box_append (_tmp107_, (GtkWidget*) _tmp108_);
	_tmp109_ = content_box;
	_tmp110_ = disable_box;
	gtk_box_append (_tmp109_, (GtkWidget*) _tmp110_);
	_tmp111_ = content_box;
	_tmp112_ = tapping_header;
	gtk_box_append (_tmp111_, (GtkWidget*) _tmp112_);
	_tmp113_ = content_box;
	_tmp114_ = tap_box;
	gtk_box_append (_tmp113_, (GtkWidget*) _tmp114_);
	_tmp115_ = content_box;
	_tmp116_ = click_method_label;
	gtk_box_append (_tmp115_, (GtkWidget*) _tmp116_);
	_tmp117_ = content_box;
	_tmp118_ = click_method_box;
	gtk_box_append (_tmp117_, (GtkWidget*) _tmp118_);
	_tmp119_ = content_box;
	_tmp120_ = scroll_method_label;
	gtk_box_append (_tmp119_, (GtkWidget*) _tmp120_);
	_tmp121_ = content_box;
	_tmp122_ = scroll_method_box;
	gtk_box_append (_tmp121_, (GtkWidget*) _tmp122_);
	_tmp123_ = content_box;
	_tmp124_ = natural_scrolling_box;
	gtk_box_append (_tmp123_, (GtkWidget*) _tmp124_);
	_tmp125_ = content_box;
	switchboard_settings_page_set_child ((SwitchboardSettingsPage*) self, (GtkWidget*) _tmp125_);
	_tmp126_ = g_settings_new ("org.gnome.desktop.peripherals.touchpad");
	_g_object_unref0 (self->priv->glib_settings);
	self->priv->glib_settings = _tmp126_;
	_tmp127_ = self->priv->glib_settings;
	_tmp128_ = disable_while_typing_check;
	g_settings_bind (_tmp127_, "disable-while-typing", (GObject*) _tmp128_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp129_ = self->priv->glib_settings;
	_tmp130_ = _data3_->natural_scrolling_switch;
	g_settings_bind (_tmp129_, "natural-scroll", (GObject*) _tmp130_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp131_ = self->priv->glib_settings;
	_tmp132_ = pointer_speed_adjustment;
	g_settings_bind (_tmp131_, "speed", (GObject*) _tmp132_, "value", G_SETTINGS_BIND_DEFAULT);
	_tmp133_ = self->priv->glib_settings;
	_tmp134_ = tap_to_click_check;
	g_settings_bind (_tmp133_, "tap-to-click", (GObject*) _tmp134_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp135_ = self->priv->glib_settings;
	_tmp136_ = tap_and_drag_check;
	g_settings_bind (_tmp135_, "tap-and-drag", (GObject*) _tmp136_, "active", G_SETTINGS_BIND_DEFAULT);
	_tmp137_ = tap_to_click_check;
	_tmp138_ = tap_and_drag_check;
	g_object_bind_property_with_closures ((GObject*) _tmp137_, "active", (GObject*) _tmp138_, "sensitive", G_BINDING_SYNC_CREATE, (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)), (GClosure*) ((NULL == NULL) ? NULL : g_cclosure_new ((GCallback) NULL, NULL, (GClosureNotify) NULL)));
	_tmp139_ = self->priv->glib_settings;
	_tmp140_ = self->priv->drag_lock_check;
	g_settings_bind (_tmp139_, "tap-and-drag-lock", (GObject*) _tmp140_, "active", G_SETTINGS_BIND_DEFAULT);
	mouse_touchpad_touchpad_view_update_drag_lock_sensitive (self);
	_tmp141_ = self->priv->glib_settings;
	g_signal_connect_object (_tmp141_, "changed::tap-to-click", (GCallback) _mouse_touchpad_touchpad_view_update_drag_lock_sensitive_g_settings_changed, self, 0);
	_tmp142_ = self->priv->glib_settings;
	g_signal_connect_object (_tmp142_, "changed::tap-and-drag", (GCallback) _mouse_touchpad_touchpad_view_update_drag_lock_sensitive_g_settings_changed, self, 0);
	_tmp143_ = self->priv->glib_settings;
	_tmp144_ = disable_with_mouse_check;
	g_settings_bind_with_mapping (_tmp143_, "send-events", (GObject*) _tmp144_, "active", G_SETTINGS_BIND_DEFAULT, __mouse_touchpad_touchpad_view___lambda9__gsettings_bind_get_mapping, __mouse_touchpad_touchpad_view___lambda10__gsettings_bind_set_mapping, NULL, NULL);
	_tmp145_ = g_simple_action_group_new ();
	action_group = _tmp145_;
	_tmp146_ = action_group;
	_tmp147_ = self->priv->glib_settings;
	_tmp148_ = g_settings_create_action (_tmp147_, "click-method");
	_tmp149_ = _tmp148_;
	g_action_map_add_action ((GActionMap*) _tmp146_, _tmp149_);
	_g_object_unref0 (_tmp149_);
	_tmp150_ = action_group;
	gtk_widget_insert_action_group ((GtkWidget*) self, "touchpad", (GActionGroup*) _tmp150_);
	_tmp151_ = two_finger_scroll_radio;
	_tmp152_ = _g_object_ref0 (_tmp151_);
	_tmp153_ = (GtkCheckButton*) gtk_check_button_new ();
	gtk_check_button_set_group (_tmp153_, _tmp152_);
	_g_object_unref0 (_tmp152_);
	g_object_ref_sink (_tmp153_);
	_data3_->disabled_scroll_radio = _tmp153_;
	_tmp154_ = _data3_->disabled_scroll_radio;
	g_signal_connect_data (_tmp154_, "toggled", (GCallback) __mouse_touchpad_touchpad_view___lambda11__gtk_check_button_toggled, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
	_tmp155_ = two_finger_scroll_radio;
	g_signal_connect_object (_tmp155_, "toggled", (GCallback) __mouse_touchpad_touchpad_view___lambda12__gtk_check_button_toggled, self, 0);
	_tmp156_ = edge_scroll_radio;
	g_signal_connect_object (_tmp156_, "toggled", (GCallback) __mouse_touchpad_touchpad_view___lambda13__gtk_check_button_toggled, self, 0);
	_tmp157_ = self->priv->glib_settings;
	two_finger_scrolling = g_settings_get_boolean (_tmp157_, "two-finger-scrolling-enabled");
	_tmp159_ = self->priv->glib_settings;
	if (!g_settings_get_boolean (_tmp159_, "edge-scrolling-enabled")) {
		_tmp158_ = !two_finger_scrolling;
	} else {
		_tmp158_ = FALSE;
	}
	if (_tmp158_) {
		GtkCheckButton* _tmp160_;
		_tmp160_ = _data3_->disabled_scroll_radio;
		gtk_check_button_set_active (_tmp160_, TRUE);
	} else {
		if (two_finger_scrolling) {
			GtkCheckButton* _tmp161_;
			_tmp161_ = two_finger_scroll_radio;
			gtk_check_button_set_active (_tmp161_, TRUE);
		} else {
			GtkCheckButton* _tmp162_;
			_tmp162_ = edge_scroll_radio;
			gtk_check_button_set_active (_tmp162_, TRUE);
		}
	}
	_g_object_unref0 (action_group);
	_g_object_unref0 (content_box);
	_g_object_unref0 (disable_box);
	_g_object_unref0 (disable_with_mouse_check);
	_g_object_unref0 (disable_while_typing_check);
	_g_object_unref0 (disable_label);
	_g_object_unref0 (natural_scrolling_box);
	_g_object_unref0 (scroll_method_box);
	_g_object_unref0 (edge_scroll_box);
	_g_object_unref0 (edge_scroll_image);
	_g_object_unref0 (edge_scroll_label);
	_g_object_unref0 (edge_scroll_radio);
	_g_object_unref0 (two_finger_scroll_box);
	_g_object_unref0 (two_finger_scroll_image);
	_g_object_unref0 (two_finger_scroll_label);
	_g_object_unref0 (two_finger_scroll_radio);
	_g_object_unref0 (scroll_method_label);
	_g_object_unref0 (tapping_header);
	_g_object_unref0 (tap_box);
	_g_object_unref0 (tap_and_drag_check);
	_g_object_unref0 (tap_to_click_check);
	_g_object_unref0 (click_method_box);
	_g_object_unref0 (click_method_label);
	_g_object_unref0 (areas_click_method_box);
	_g_object_unref0 (areas_click_method_image);
	_g_object_unref0 (areas_click_method_label);
	_g_object_unref0 (areas_click_method_radio);
	_g_object_unref0 (multitouch_click_method_box);
	_g_object_unref0 (multitouch_click_method_image);
	_g_object_unref0 (multitouch_click_method_label);
	_g_object_unref0 (multitouch_click_method_radio);
	_g_object_unref0 (pointer_speed_header);
	_g_object_unref0 (pointer_speed_scale);
	_g_object_unref0 (pointer_speed_adjustment);
	block3_data_unref (_data3_);
	_data3_ = NULL;
	return obj;
}

static void
mouse_touchpad_touchpad_view_class_init (MouseTouchpadTouchpadViewClass * klass,
                                         gpointer klass_data)
{
	mouse_touchpad_touchpad_view_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &MouseTouchpadTouchpadView_private_offset);
	G_OBJECT_CLASS (klass)->constructor = mouse_touchpad_touchpad_view_constructor;
	G_OBJECT_CLASS (klass)->finalize = mouse_touchpad_touchpad_view_finalize;
}

static void
mouse_touchpad_touchpad_view_instance_init (MouseTouchpadTouchpadView * self,
                                            gpointer klass)
{
	self->priv = mouse_touchpad_touchpad_view_get_instance_private (self);
}

static void
mouse_touchpad_touchpad_view_finalize (GObject * obj)
{
	MouseTouchpadTouchpadView * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, MOUSE_TOUCHPAD_TYPE_TOUCHPAD_VIEW, MouseTouchpadTouchpadView);
	_g_object_unref0 (self->priv->glib_settings);
	_g_object_unref0 (self->priv->drag_lock_check);
	G_OBJECT_CLASS (mouse_touchpad_touchpad_view_parent_class)->finalize (obj);
}

static GType
mouse_touchpad_touchpad_view_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (MouseTouchpadTouchpadViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) mouse_touchpad_touchpad_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MouseTouchpadTouchpadView), 0, (GInstanceInitFunc) mouse_touchpad_touchpad_view_instance_init, NULL };
	GType mouse_touchpad_touchpad_view_type_id;
	mouse_touchpad_touchpad_view_type_id = g_type_register_static (SWITCHBOARD_TYPE_SETTINGS_PAGE, "MouseTouchpadTouchpadView", &g_define_type_info, 0);
	MouseTouchpadTouchpadView_private_offset = g_type_add_instance_private (mouse_touchpad_touchpad_view_type_id, sizeof (MouseTouchpadTouchpadViewPrivate));
	return mouse_touchpad_touchpad_view_type_id;
}

GType
mouse_touchpad_touchpad_view_get_type (void)
{
	static volatile gsize mouse_touchpad_touchpad_view_type_id__once = 0;
	if (g_once_init_enter (&mouse_touchpad_touchpad_view_type_id__once)) {
		GType mouse_touchpad_touchpad_view_type_id;
		mouse_touchpad_touchpad_view_type_id = mouse_touchpad_touchpad_view_get_type_once ();
		g_once_init_leave (&mouse_touchpad_touchpad_view_type_id__once, mouse_touchpad_touchpad_view_type_id);
	}
	return mouse_touchpad_touchpad_view_type_id__once;
}

