[gnome-control-center] region: Make the input source chooser back	button activate on click
- From: Rui Matos <rtcm src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [gnome-control-center] region: Make the input source chooser back	button activate on click
 
- Date: Tue, 30 May 2017 16:31:49 +0000 (UTC)
 
commit 6e4b4e944a17b20526baaedd9ade1df92f63b224
Author: Rui Matos <tiagomatos gmail com>
Date:   Fri May 26 18:29:53 2017 +0200
    region: Make the input source chooser back button activate on click
    
    We lost this behavior with commit
    3b14056a01b2dd16880e9f936de8be3cf13cc96f to fix keyboard navigation
    but we can add it back by handling button events ourselves.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=783058
 panels/region/cc-input-chooser.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/panels/region/cc-input-chooser.c b/panels/region/cc-input-chooser.c
index 31824fa..7f39eee 100644
--- a/panels/region/cc-input-chooser.c
+++ b/panels/region/cc-input-chooser.c
@@ -689,6 +689,25 @@ selected_rows_changed (GtkListBox *box,
   gtk_widget_set_sensitive (priv->add_button, sensitive);
 }
 
+static gboolean
+list_button_release_event (GtkListBox *box,
+                           GdkEvent   *event,
+                           GtkWidget  *chooser)
+{
+  gdouble x, y;
+  GtkListBoxRow *row;
+
+  gdk_event_get_coords (event, &x, &y);
+  row = gtk_list_box_get_row_at_y (box, y);
+  if (row && g_object_get_data (G_OBJECT (row), "back"))
+    {
+      g_signal_emit_by_name (row, "activate", NULL);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
 static void
 add_default_row (GtkWidget   *chooser,
                  LocaleInfo  *info,
@@ -1078,6 +1097,7 @@ cc_input_chooser_new (GtkWindow    *main_window,
   gtk_list_box_set_sort_func (GTK_LIST_BOX (priv->list), (GtkListBoxSortFunc)list_sort, chooser, NULL);
   g_signal_connect (priv->list, "row-activated", G_CALLBACK (row_activated), chooser);
   g_signal_connect (priv->list, "selected-rows-changed", G_CALLBACK (selected_rows_changed), chooser);
+  g_signal_connect (priv->list, "button-release-event", G_CALLBACK (list_button_release_event), chooser);
 
   g_signal_connect_swapped (priv->filter_entry, "search-changed", G_CALLBACK (filter_changed), chooser);
   g_signal_connect (priv->filter_entry, "key-release-event", G_CALLBACK (reset_on_escape), chooser);
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]