wacom: Do signal handlers in swapped form

This commit is contained in:
Robert Ancell 2023-05-26 12:31:41 +12:00 committed by Felipe Borges
parent 3ad1f01b34
commit 543f24a754
4 changed files with 30 additions and 20 deletions

View file

@ -494,17 +494,15 @@ on_map_buttons_activated (CcWacomPage *self)
} }
static void static void
on_display_selected (GtkWidget *widget, on_display_selected (CcWacomPage *page)
GParamSpec *pspec,
CcWacomPage *page)
{ {
GListModel *list; GListModel *list;
g_autoptr (GObject) obj = NULL; g_autoptr (GObject) obj = NULL;
GVariant *variant; GVariant *variant;
gint idx; gint idx;
list = adw_combo_row_get_model (ADW_COMBO_ROW (widget)); list = adw_combo_row_get_model (ADW_COMBO_ROW (page->tablet_display));
idx = adw_combo_row_get_selected (ADW_COMBO_ROW (widget)); idx = adw_combo_row_get_selected (ADW_COMBO_ROW (page->tablet_display));
obj = g_list_model_get_item (list, idx); obj = g_list_model_get_item (list, idx);
variant = g_object_get_data (obj, "value-output"); variant = g_object_get_data (obj, "value-output");

View file

@ -52,7 +52,7 @@
<object class="AdwComboRow" id="tablet_display"> <object class="AdwComboRow" id="tablet_display">
<property name="width_request">100</property> <property name="width_request">100</property>
<property name="title" translatable="yes" context="display setting">Map to Monitor</property> <property name="title" translatable="yes" context="display setting">Map to Monitor</property>
<signal name="notify::selected-item" handler="on_display_selected" swapped="no"/> <signal name="notify::selected-item" handler="on_display_selected" object="CcWacomPage" swapped="yes"/>
</object> </object>
</child> </child>
<child> <child>

View file

@ -143,20 +143,30 @@ cc_wacom_stylus_page_set_property (GObject *object,
} }
static void static void
on_stylus_action_selected (GtkWidget *widget, on_stylus_button1_action_selected (CcWacomStylusPage *page)
GParamSpec *pspec,
CcWacomStylusPage *page)
{ {
gint idx; gint idx;
idx = adw_combo_row_get_selected (ADW_COMBO_ROW (widget)); idx = adw_combo_row_get_selected (ADW_COMBO_ROW (page->stylus_button1_action));
g_settings_set_enum (page->stylus_settings, "button-action", idx);
}
if (widget == page->stylus_button1_action) static void
g_settings_set_enum (page->stylus_settings, "button-action", idx); on_stylus_button2_action_selected (CcWacomStylusPage *page)
else if (widget == page->stylus_button2_action) {
g_settings_set_enum (page->stylus_settings, "secondary-button-action", idx); gint idx;
else if (widget == page->stylus_button3_action)
g_settings_set_enum (page->stylus_settings, "tertiary-button-action", idx); idx = adw_combo_row_get_selected (ADW_COMBO_ROW (page->stylus_button2_action));
g_settings_set_enum (page->stylus_settings, "secondary-button-action", idx);
}
static void
on_stylus_button3_action_selected (CcWacomStylusPage *page)
{
gint idx;
idx = adw_combo_row_get_selected (ADW_COMBO_ROW (page->stylus_button3_action));
g_settings_set_enum (page->stylus_settings, "tertiary-button-action", idx);
} }
static void static void
@ -181,7 +191,9 @@ cc_wacom_stylus_page_class_init (CcWacomStylusPageClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcWacomStylusPage, stylus_tip_pressure_adjustment); gtk_widget_class_bind_template_child (widget_class, CcWacomStylusPage, stylus_tip_pressure_adjustment);
gtk_widget_class_bind_template_child (widget_class, CcWacomStylusPage, stylus_eraser_pressure_adjustment); gtk_widget_class_bind_template_child (widget_class, CcWacomStylusPage, stylus_eraser_pressure_adjustment);
gtk_widget_class_bind_template_callback (widget_class, on_stylus_action_selected); gtk_widget_class_bind_template_callback (widget_class, on_stylus_button1_action_selected);
gtk_widget_class_bind_template_callback (widget_class, on_stylus_button2_action_selected);
gtk_widget_class_bind_template_callback (widget_class, on_stylus_button3_action_selected);
gtk_widget_class_bind_template_callback (widget_class, on_tip_pressure_value_changed); gtk_widget_class_bind_template_callback (widget_class, on_tip_pressure_value_changed);
gtk_widget_class_bind_template_callback (widget_class, on_eraser_pressure_value_changed); gtk_widget_class_bind_template_callback (widget_class, on_eraser_pressure_value_changed);
} }

View file

@ -53,7 +53,7 @@
<property name="width_request">100</property> <property name="width_request">100</property>
<property name="title" translatable="yes" context="display setting">Button 1</property> <property name="title" translatable="yes" context="display setting">Button 1</property>
<property name="model">button_model</property> <property name="model">button_model</property>
<signal name="notify::selected-item" handler="on_stylus_action_selected" swapped="no"/> <signal name="notify::selected-item" handler="on_stylus_button1_action_selected" swapped="yes"/>
</object> </object>
</child> </child>
<child> <child>
@ -61,7 +61,7 @@
<property name="width_request">100</property> <property name="width_request">100</property>
<property name="title" translatable="yes" context="display setting">Button 2</property> <property name="title" translatable="yes" context="display setting">Button 2</property>
<property name="model">button_model</property> <property name="model">button_model</property>
<signal name="notify::selected-item" handler="on_stylus_action_selected" swapped="no"/> <signal name="notify::selected-item" handler="on_stylus_button2_action_selected" swapped="yes"/>
</object> </object>
</child> </child>
<child> <child>
@ -69,7 +69,7 @@
<property name="width_request">100</property> <property name="width_request">100</property>
<property name="title" translatable="yes" context="display setting">Button 3</property> <property name="title" translatable="yes" context="display setting">Button 3</property>
<property name="model">button_model</property> <property name="model">button_model</property>
<signal name="notify::selected-item" handler="on_stylus_action_selected" swapped="no"/> <signal name="notify::selected-item" handler="on_stylus_button3_action_selected" swapped="yes"/>
</object> </object>
</child> </child>
<child> <child>