aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch')
-rw-r--r--recipes/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/recipes/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch b/recipes/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch
new file mode 100644
index 0000000000..aa7e276bec
--- /dev/null
+++ b/recipes/gtk+/gtk+-2.10.14/cell-renderer-edit-focus.patch
@@ -0,0 +1,30 @@
+Index: gtk/gtkcellrenderertext.c
+===================================================================
+--- gtk/gtkcellrenderertext.c (revision 18557)
++++ gtk/gtkcellrenderertext.c (working copy)
+@@ -1794,13 +1794,24 @@ gtk_cell_renderer_text_focus_out_event (
+ gpointer data)
+ {
+ GtkCellRendererTextPrivate *priv;
++ GtkSettings *settings;
++ gboolean in_touchscreen_mode = FALSE;
+
+ priv = GTK_CELL_RENDERER_TEXT_GET_PRIVATE (data);
+
+ if (priv->in_entry_menu)
+ return FALSE;
+
+- GTK_ENTRY (entry)->editing_canceled = TRUE;
++ if (gtk_widget_has_screen (entry))
++ settings = gtk_settings_get_for_screen (gtk_widget_get_screen (entry));
++ else
++ settings = gtk_settings_get_default ();
++
++ g_object_get (G_OBJECT (settings),
++ "gtk-touchscreen-mode", &in_touchscreen_mode,
++ NULL);
++
++ GTK_ENTRY (entry)->editing_canceled = !in_touchscreen_mode;
+ gtk_cell_editable_editing_done (GTK_CELL_EDITABLE (entry));
+ gtk_cell_editable_remove_widget (GTK_CELL_EDITABLE (entry));
+