]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcellrendereraccel.c
Updated Spanish translation
[~andy/gtk] / gtk / gtkcellrendereraccel.c
index 4cafe70ff9bf10fa317e79999f582f751764fc38..88255901c1f40622a652b49d3f33e8e25b48eedc 100644 (file)
@@ -91,8 +91,6 @@ enum {
 
 struct _GtkCellRendererAccelPrivate
 {
-  GtkCellRendererAccelMode accel_mode;
-
   GtkWidget *edit_widget;
   GtkWidget *grab_widget;
   GtkWidget *sizing_label;
@@ -100,6 +98,8 @@ struct _GtkCellRendererAccelPrivate
   GdkDevice *grab_keyboard;
   GdkDevice *grab_pointer;
 
+  GtkCellRendererAccelMode accel_mode;
+
   GdkModifierType accel_mods;
 
   guint accel_key;
@@ -301,18 +301,9 @@ convert_keysym_state_to_string (GtkCellRendererAccel *accel,
         {
           gchar *name;
 
-          name = gtk_accelerator_get_label (keysym, mask);
+          name = gtk_accelerator_get_label_with_keycode (NULL, keysym, keycode, mask);
           if (name == NULL)
-            name = gtk_accelerator_name (keysym, mask);
-
-          if (keysym == 0)
-            {
-              gchar *tmp;
-
-              tmp = name;
-              name = g_strdup_printf ("%s0x%02x", tmp, keycode);
-              g_free (tmp);
-            }
+            name = gtk_accelerator_name_with_keycode (NULL, keysym, keycode, mask);
 
           return name;
         }
@@ -451,6 +442,7 @@ grab_key_callback (GtkWidget            *widget,
   GtkCellRendererAccelPrivate *priv = accel->priv;
   GdkModifierType accel_mods = 0;
   guint accel_key;
+  guint keyval;
   gchar *path;
   gboolean edited;
   gboolean cleared;
@@ -465,17 +457,20 @@ grab_key_callback (GtkWidget            *widget,
   edited = FALSE;
   cleared = FALSE;
 
-  gdk_keymap_translate_keyboard_state (gdk_keymap_get_for_display (display),
+  accel_mods = event->state;
+
+  _gtk_translate_keyboard_accel_state (gdk_keymap_get_for_display (display),
                                        event->hardware_keycode,
                                        event->state,
+                                       gtk_accelerator_get_default_mod_mask (),
                                        event->group,
-                                       NULL, NULL, NULL, &consumed_modifiers);
+                                       &keyval, NULL, NULL, &consumed_modifiers);
 
-  accel_key = gdk_keyval_to_lower (event->keyval);
+  accel_key = gdk_keyval_to_lower (keyval);
   if (accel_key == GDK_KEY_ISO_Left_Tab) 
     accel_key = GDK_KEY_Tab;
 
-  accel_mods = event->state & gtk_accelerator_get_default_mod_mask ();
+  accel_mods &= gtk_accelerator_get_default_mod_mask ();
 
   /* Filter consumed modifiers 
    */
@@ -484,22 +479,22 @@ grab_key_callback (GtkWidget            *widget,
   
   /* Put shift back if it changed the case of the key, not otherwise.
    */
-  if (accel_key != event->keyval)
+  if (accel_key != keyval)
     accel_mods |= GDK_SHIFT_MASK;
     
   if (accel_mods == 0)
     {
-      switch (event->keyval)
-        {
-        case GDK_KEY_Escape:
-          goto out; /* cancel */
-        case GDK_KEY_BackSpace:
-          /* clear the accelerator on Backspace */
-          cleared = TRUE;
-          goto out;
-        default:
-          break;
-        }
+      switch (keyval)
+       {
+       case GDK_KEY_Escape:
+         goto out; /* cancel */
+       case GDK_KEY_BackSpace:
+         /* clear the accelerator on Backspace */
+         cleared = TRUE;
+         goto out;
+       default:
+         break;
+       }
     }
 
   if (priv->accel_mode == GTK_CELL_RENDERER_ACCEL_MODE_GTK)
@@ -729,7 +724,8 @@ gtk_cell_renderer_accel_start_editing (GtkCellRenderer      *cell,
                              (gpointer) &priv->edit_widget);
   
   label = gtk_label_new (NULL);
-  gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+  gtk_widget_set_halign (label, GTK_ALIGN_START);
+  gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
 
   gtk_style_context_get_background_color (context, GTK_STATE_FLAG_SELECTED, &color);
   gtk_widget_override_background_color (label, 0, &color);