]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcellrendereraccel.c
filechooserbutton: Do not propagate state from the dialog unless it is active
[~andy/gtk] / gtk / gtkcellrendereraccel.c
index 10758f6b551d74e8d93992adf30225889d1a5c14..32f385ea59556f7e2803257a0c4e402407e5726f 100644 (file)
@@ -413,7 +413,7 @@ gtk_cell_renderer_accel_get_preferred_width (GtkCellRenderer    *cell,
   GtkRequisition min_req, nat_req;
 
   if (priv->sizing_label == NULL)
-    priv->sizing_label = gtk_label_new (_("New accelerator..."));
+    priv->sizing_label = gtk_label_new (_("New accelerator"));
 
   gtk_widget_get_preferred_size (priv->sizing_label, &min_req, &nat_req);
 
@@ -452,12 +452,24 @@ grab_key_callback (GtkWidget            *widget,
 
   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,
-                                       &keyval, NULL, NULL, &consumed_modifiers);
+  if (event->keyval == GDK_KEY_Sys_Req && 
+      (accel_mods & GDK_MOD1_MASK) != 0)
+    {
+      /* HACK: we don't want to use SysRq as a keybinding (but we do
+       * want Alt+Print), so we avoid translation from Alt+Print to SysRq
+       */
+      keyval = GDK_KEY_Print;
+      consumed_modifiers = 0;
+    }
+  else
+    {
+      _gtk_translate_keyboard_accel_state (gdk_keymap_get_for_display (display),
+                                           event->hardware_keycode,
+                                           event->state,
+                                           gtk_accelerator_get_default_mod_mask (),
+                                           event->group,
+                                           &keyval, NULL, NULL, &consumed_modifiers);
+    }
 
   accel_key = gdk_keyval_to_lower (keyval);
   if (accel_key == GDK_KEY_ISO_Left_Tab) 
@@ -567,6 +579,8 @@ struct _GtkCellEditableEventBox
   gboolean editing_canceled;
 };
 
+GType _gtk_cell_editable_event_box_get_type (void);
+
 G_DEFINE_TYPE_WITH_CODE (GtkCellEditableEventBox, _gtk_cell_editable_event_box, GTK_TYPE_EVENT_BOX, { \
     G_IMPLEMENT_INTERFACE (GTK_TYPE_CELL_EDITABLE, _gtk_cell_editable_event_box_cell_editable_init)   \
       })
@@ -730,7 +744,7 @@ gtk_cell_renderer_accel_start_editing (GtkCellRenderer      *cell,
    * an accelerator when the cell is clicked to change the 
    * acelerator.
    */
-  gtk_label_set_text (GTK_LABEL (label), _("New accelerator..."));
+  gtk_label_set_text (GTK_LABEL (label), _("New accelerator"));
 
   gtk_container_add (GTK_CONTAINER (eventbox), label);