struct _GtkCellRendererAccelPrivate
{
- GtkCellRendererAccelMode accel_mode;
-
GtkWidget *edit_widget;
GtkWidget *grab_widget;
GtkWidget *sizing_label;
GdkDevice *grab_keyboard;
GdkDevice *grab_pointer;
+ GtkCellRendererAccelMode accel_mode;
+
GdkModifierType accel_mods;
guint accel_key;
{
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;
}
GtkCellRendererAccelPrivate *priv = accel->priv;
GdkModifierType accel_mods = 0;
guint accel_key;
+ guint keyval;
gchar *path;
gboolean edited;
gboolean cleared;
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
*/
/* 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)
(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);