[maemo-commits] [maemo-commits] r19499 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Nov 16 14:04:41 EET 2009
Author: kalikiana
Date: 2009-11-16 14:04:30 +0200 (Mon, 16 Nov 2009)
New Revision: 19499

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkentry.c
Log:
2009-11-16  Christian Dywan  <christian at lanedo.com>

	Fixes: NB#143062 - Browser, "Save page as" title right-aligned

	* gtk/gtkentry.c (gtk_entry_class_init),
	(gtk_entry_set_selection_bounds): Restrict the direction flipping to
	select-all, by implementing a keybinding signal and using that, and
	comparing the selection bounds. So Shift+Arrow works normally.

Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2009-11-16 09:23:04 UTC (rev 19498)
+++ projects/haf/trunk/gtk+/ChangeLog	2009-11-16 12:04:30 UTC (rev 19499)
@@ -1,3 +1,12 @@
+2009-11-16  Christian Dywan  <christian at lanedo.com>
+
+	Fixes: NB#143062 - Browser, "Save page as" title right-aligned
+
+	* gtk/gtkentry.c (gtk_entry_class_init),
+	(gtk_entry_set_selection_bounds): Restrict the direction flipping to
+	select-all, by implementing a keybinding signal and using that, and
+	comparing the selection bounds. So Shift+Arrow works normally.
+
 2009-11-10  Christian Dywan  <christian at lanedo.com>
 
 	Fixes: NB#143062 - Browser, "Save page as" title right-aligned

Modified: projects/haf/trunk/gtk+/gtk/gtkentry.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkentry.c	2009-11-16 09:23:04 UTC (rev 19498)
+++ projects/haf/trunk/gtk+/gtk/gtkentry.c	2009-11-16 12:04:30 UTC (rev 19499)
@@ -128,6 +128,7 @@
   TOGGLE_OVERWRITE,
 #ifdef MAEMO_CHANGES
   INVALID_INPUT,
+  SELECT_ALL,
 #endif /* MAEMO_CHANGES */
   LAST_SIGNAL
 };
@@ -912,6 +913,27 @@
                   _gtk_marshal_VOID__ENUM,
                   G_TYPE_NONE, 1,
                   GTK_TYPE_INVALID_INPUT_TYPE);
+
+  /**
+   * GtkEntry::select-all:
+   * @entry: the object which received the signal
+   *
+   * The ::select-all signal is a 
+   * <link linkend="keybinding-signals">keybinding signal</link>
+   * which gets emitted to select the complete contents of the entry.
+   *
+   * The default bindings for this signal are Ctrl-a and Ctrl-/.
+   *
+   * Since: 2.20
+   */
+  signals[SELECT_ALL] =
+    g_signal_new_class_handler (I_("select-all"),
+                                G_OBJECT_CLASS_TYPE (gobject_class),
+                                G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+                                G_CALLBACK (gtk_entry_select_all),
+                                NULL, NULL,
+                                g_cclosure_marshal_VOID__VOID,
+                                G_TYPE_NONE, 0, G_TYPE_NONE);
 #endif /* MAEMO_CHANGES */
 
   /*
@@ -971,7 +993,13 @@
 
   /* Select all
    */
+#ifdef MAEMO_CHANGES
   gtk_binding_entry_add_signal (binding_set, GDK_a, GDK_CONTROL_MASK,
+                                "select-all", 0);
+  gtk_binding_entry_add_signal (binding_set, GDK_slash, GDK_CONTROL_MASK,
+                                "select-all", 0);
+#else
+  gtk_binding_entry_add_signal (binding_set, GDK_a, GDK_CONTROL_MASK,
                                 "move-cursor", 3,
                                 GTK_TYPE_MOVEMENT_STEP, GTK_MOVEMENT_BUFFER_ENDS,
                                 G_TYPE_INT, -1,
@@ -992,6 +1020,8 @@
                                 GTK_TYPE_MOVEMENT_STEP, GTK_MOVEMENT_BUFFER_ENDS,
                                 G_TYPE_INT, 1,
 				G_TYPE_BOOLEAN, TRUE);  
+#endif
+
   /* Unselect all 
    */
   gtk_binding_entry_add_signal (binding_set, GDK_backslash, GDK_CONTROL_MASK,
@@ -2750,6 +2780,12 @@
 #ifdef MAEMO_CHANGES
   GtkWidget *widget = GTK_WIDGET (editable);
   gboolean flip = FALSE;
+
+  if (start == 0 && end == -1 && gtk_widget_has_screen (widget))
+    {
+      GtkSettings *settings = gtk_widget_get_settings (widget);
+      g_object_get (settings, "gtk-touchscreen-mode", &flip, NULL);
+    }
 #endif
 
   if (start < 0)
@@ -2764,11 +2800,6 @@
 			   MIN (end, entry->text_length),
 			   MIN (start, entry->text_length));
 #else
-  if (gtk_widget_has_screen (widget))
-    {
-      GtkSettings *settings = gtk_widget_get_settings (widget);
-      g_object_get (settings, "gtk-touchscreen-mode", &flip, NULL);
-    }
   if (flip)
     gtk_entry_set_positions (entry,
                              MIN (start, entry->text_length),

More information about the maemo-commits mailing list