gimp r26244 - in branches/soc-2008-tagging: . app/widgets



Author: aurisj
Date: Sun Jul 20 13:10:48 2008
New Revision: 26244
URL: http://svn.gnome.org/viewvc/gimp?rev=26244&view=rev

Log:
2008-07-20  Aurimas JuÅka  <aurisj svn gnome org>

	* app/widgets/gimptagentry.c: allow jellybean selection with mouse
	button 1 (normally left).



Modified:
   branches/soc-2008-tagging/ChangeLog
   branches/soc-2008-tagging/app/widgets/gimptagentry.c

Modified: branches/soc-2008-tagging/app/widgets/gimptagentry.c
==============================================================================
--- branches/soc-2008-tagging/app/widgets/gimptagentry.c	(original)
+++ branches/soc-2008-tagging/app/widgets/gimptagentry.c	Sun Jul 20 13:10:48 2008
@@ -40,32 +40,34 @@
 #define GIMP_TAG_ENTRY_QUERY_DESC       "filter"
 #define GIMP_TAG_ENTRY_ASSIGN_DESC      "enter tags"
 
-static void     gimp_tag_entry_activate        (GtkEntry          *entry,
-                                                gpointer           unused);
-static void     gimp_tag_entry_changed         (GtkEntry          *entry,
-                                                gpointer           unused);
-static void     gimp_tag_entry_insert_text     (GtkEditable       *editable,
-                                                gchar             *new_text,
-                                                gint               text_length,
-                                                gint              *position,
-                                                gpointer           user_data);
-static gboolean gimp_tag_entry_focus_in        (GtkWidget         *widget,
-                                                GdkEventFocus     *event,
-                                                gpointer           user_data);
-static gboolean gimp_tag_entry_focus_out       (GtkWidget         *widget,
-                                                GdkEventFocus     *event,
-                                                gpointer           user_data);
-static void     gimp_tag_entry_backspace       (GtkEntry          *entry);
-static void     gimp_tag_entry_delete_from_cursor (GtkEntry            *entry,
-                                                   GtkDeleteType        delete_type,
-                                                   gint                 count);
-static void     gimp_tag_entry_query_tag       (GimpTagEntry      *entry);
-
-static void     gimp_tag_entry_assign_tags     (GimpTagEntry      *tag_entry);
-static void     gimp_tag_entry_item_set_tags   (GimpTagged        *entry,
-                                                GList             *tags);
+static void     gimp_tag_entry_activate                  (GtkEntry             *entry,
+                                                          gpointer              unused);
+static void     gimp_tag_entry_changed                   (GtkEntry             *entry,
+                                                          gpointer              unused);
+static void     gimp_tag_entry_insert_text               (GtkEditable          *editable,
+                                                          gchar                *new_text,
+                                                          gint                  text_length,
+                                                          gint                 *position,
+                                                          gpointer              user_data);
+static gboolean gimp_tag_entry_focus_in                  (GtkWidget            *widget,
+                                                          GdkEventFocus        *event,
+                                                          gpointer              user_data);
+static gboolean gimp_tag_entry_focus_out                 (GtkWidget            *widget,
+                                                          GdkEventFocus        *event,
+                                                          gpointer              user_data);
+static gboolean gimp_tag_entry_button_release            (GtkWidget            *widget,
+                                                          GdkEventButton       *event);
+static void     gimp_tag_entry_backspace                 (GtkEntry             *entry);
+static void     gimp_tag_entry_delete_from_cursor        (GtkEntry             *entry,
+                                                          GtkDeleteType         delete_type,
+                                                          gint                  count);
+static void     gimp_tag_entry_query_tag                 (GimpTagEntry         *entry);
+
+static void     gimp_tag_entry_assign_tags               (GimpTagEntry         *tag_entry);
+static void     gimp_tag_entry_item_set_tags             (GimpTagged           *entry,
+                                                          GList                *tags);
 
-static void     gimp_tag_entry_load_selection  (GimpTagEntry      *tag_entry);
+static void     gimp_tag_entry_load_selection            (GimpTagEntry         *tag_entry);
 
 
 static gchar*   gimp_tag_entry_get_completion_prefix     (GimpTagEntry         *entry);
@@ -77,13 +79,14 @@
                                                           gchar                *prefix);
 static gboolean gimp_tag_entry_auto_complete             (GimpTagEntry         *tag_entry);
 
-static void     gimp_tag_entry_toggle_desc     (GimpTagEntry      *widget,
-                                                gboolean           show);
-static gboolean gimp_tag_entry_expose          (GtkWidget         *widget,
-                                                GdkEventExpose    *event,
-                                                gpointer           user_data);
+static void     gimp_tag_entry_toggle_desc               (GimpTagEntry         *widget,
+                                                          gboolean              show);
+static gboolean gimp_tag_entry_expose                    (GtkWidget            *widget,
+                                                          GdkEventExpose       *event,
+                                                          gpointer              user_data);
 
-static gboolean gimp_tag_entry_select_jellybean (GimpTagEntry             *entry);
+static gboolean gimp_tag_entry_select_jellybean          (GimpTagEntry         *entry);
+static gboolean gimp_tag_entry_try_select_jellybean      (GimpTagEntry         *tag_entry);
 
 
 G_DEFINE_TYPE (GimpTagEntry, gimp_tag_entry, GTK_TYPE_ENTRY);
@@ -94,8 +97,11 @@
 static void
 gimp_tag_entry_class_init (GimpTagEntryClass *klass)
 {
+  GtkWidgetClass       *widget_class = GTK_WIDGET_CLASS (klass);
   GtkEntryClass        *entry_class = GTK_ENTRY_CLASS (klass);
 
+  widget_class->button_release_event    = gimp_tag_entry_button_release;
+
   entry_class->backspace                = gimp_tag_entry_backspace;
   entry_class->delete_from_cursor       = gimp_tag_entry_delete_from_cursor;
 }
@@ -737,6 +743,25 @@
 }
 
 static gboolean
+gimp_tag_entry_button_release  (GtkWidget         *widget,
+                                GdkEventButton    *event)
+{
+  if (event->button == 1)
+    {
+      g_idle_add ((GSourceFunc) gimp_tag_entry_try_select_jellybean,
+                  widget);
+    }
+  return GTK_WIDGET_CLASS (parent_class)->button_release_event (widget, event);
+}
+
+static gboolean
+gimp_tag_entry_try_select_jellybean (GimpTagEntry      *tag_entry)
+{
+  gimp_tag_entry_select_jellybean (tag_entry);
+  return FALSE;
+}
+
+static gboolean
 gimp_tag_entry_select_jellybean (GimpTagEntry             *entry)
 {
   gchar        *original_string;
@@ -804,3 +829,4 @@
   return TRUE;
 }
 
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]