app: don't hardcode MOD2 in GimpContainerTreeView either

Add new utility function gimp_get_all_modifiers_mask() which returns
all modifiers used for "useful" things on the current platform, like
in the commit below.
This commit is contained in:
Michael Natterer
2011-10-10 00:17:20 +02:00
parent 6bee9df474
commit fffd1920e2
3 changed files with 16 additions and 4 deletions

View File

@ -1124,10 +1124,7 @@ gimp_container_tree_view_button_press (GtkWidget *widget,
column, edit_cell, TRUE);
}
else if (! toggled_cell &&
((bevent->state & (GDK_SHIFT_MASK |
GDK_CONTROL_MASK |
GDK_MOD1_MASK |
GDK_MOD2_MASK)) == 0))
! (bevent->state & gimp_get_all_modifiers_mask ()))
{
/* Only activate if we're not in a toggled cell
* and no modifier keys are pressed

View File

@ -699,6 +699,20 @@ gimp_get_constrain_behavior_mask (void)
GDK_MODIFIER_INTENT_MODIFY_SELECTION);
}
GdkModifierType
gimp_get_all_modifiers_mask (void)
{
GdkDisplay *display = gdk_display_get_default ();
return (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK |
gdk_keymap_get_modifier_mask (gdk_keymap_get_for_display (display),
GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR) |
gdk_keymap_get_modifier_mask (gdk_keymap_get_for_display (display),
GDK_MODIFIER_INTENT_EXTEND_SELECTION) |
gdk_keymap_get_modifier_mask (gdk_keymap_get_for_display (display),
GDK_MODIFIER_INTENT_MODIFY_SELECTION));
}
/**
* gimp_get_screen_resolution:
* @screen: a #GdkScreen or %NULL

View File

@ -63,6 +63,7 @@ GdkModifierType gimp_get_extend_selection_mask (void);
GdkModifierType gimp_get_modify_selection_mask (void);
GdkModifierType gimp_get_toggle_behavior_mask (void);
GdkModifierType gimp_get_constrain_behavior_mask (void);
GdkModifierType gimp_get_all_modifiers_mask (void);
void gimp_get_screen_resolution (GdkScreen *screen,
gdouble *xres,