]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkentry.c
Bug 659406 - Abstract what triggers a context menu
[~andy/gtk] / gtk / gtkentry.c
index 21c0ee22621011f2a799516de64c0f820f32cbbc..f9ad68ab3caa37a3f2fc13e33d29f86ba971aa1d 100644 (file)
@@ -3771,10 +3771,17 @@ gtk_entry_button_press (GtkWidget      *widget,
       gtk_widget_grab_focus (widget);
       priv->in_click = FALSE;
     }
-  
+
   tmp_pos = gtk_entry_find_position (entry, event->x + priv->scroll_offset);
-    
-  if (event->button == 1)
+
+  if (_gtk_button_event_triggers_context_menu (event))
+    {
+      gtk_entry_do_popup (entry, event);
+      priv->button = 0; /* Don't wait for release, since the menu will gtk_grab_add */
+
+      return TRUE;
+    }
+  else if (event->button == 1)
     {
       gboolean have_selection = gtk_editable_get_selection_bounds (editable, &sel_start, &sel_end);
       
@@ -3895,13 +3902,6 @@ gtk_entry_button_press (GtkWidget      *widget,
           gtk_widget_error_bell (widget);
         }
     }
-  else if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
-    {
-      gtk_entry_do_popup (entry, event);
-      priv->button = 0;        /* Don't wait for release, since the menu will gtk_grab_add */
-
-      return TRUE;
-    }
 
   return FALSE;
 }