macos: keybindings for deprecated widgets

mac-style select-all and unselect-all.
This commit is contained in:
Arjan Molenaar
2024-05-22 11:59:04 +02:00
parent 03337534f9
commit 6e02b9d5bc
2 changed files with 31 additions and 3 deletions

View File

@@ -780,6 +780,17 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
_gtk_marshal_BOOLEAN__ENUM_INT_BOOLEAN_BOOLEANv);
/* Key bindings */
#ifdef __APPLE__
gtk_widget_class_add_binding_signal (widget_class,
GDK_KEY_a, GDK_META_MASK,
"select-all",
NULL);
gtk_widget_class_add_binding_signal (widget_class,
GDK_KEY_a, GDK_META_MASK | GDK_SHIFT_MASK,
"unselect-all",
NULL);
#else
gtk_widget_class_add_binding_signal (widget_class,
GDK_KEY_a, GDK_CONTROL_MASK,
"select-all",
@@ -788,6 +799,8 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
GDK_KEY_a, GDK_CONTROL_MASK | GDK_SHIFT_MASK,
"unselect-all",
NULL);
#endif
gtk_widget_class_add_binding_signal (widget_class,
GDK_KEY_space, GDK_CONTROL_MASK,
"toggle-cursor-item",
@@ -2062,7 +2075,11 @@ gtk_icon_view_button_press (GtkGestureClick *gesture,
if (button == GDK_BUTTON_PRIMARY)
{
GdkModifierType extend_mod_mask = GDK_SHIFT_MASK;
#ifdef __APPLE__
GdkModifierType modify_mod_mask = GDK_META_MASK;
#else
GdkModifierType modify_mod_mask = GDK_CONTROL_MASK;
#endif
state = gdk_event_get_modifier_state (event);

View File

@@ -1472,11 +1472,17 @@ gtk_tree_view_class_init (GtkTreeViewClass *class)
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_space, GDK_CONTROL_MASK, "toggle-cursor-row", NULL);
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_KP_Space, GDK_CONTROL_MASK, "toggle-cursor-row", NULL);
#ifdef __APPLE__
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_a, GDK_META_MASK, "select-all", NULL);
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_A, GDK_META_MASK | GDK_SHIFT_MASK, "unselect-all", NULL);
#else
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_a, GDK_CONTROL_MASK, "select-all", NULL);
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_slash, GDK_CONTROL_MASK, "select-all", NULL);
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_A, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "unselect-all", NULL);
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_backslash, GDK_CONTROL_MASK, "unselect-all", NULL);
#endif
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_space, GDK_SHIFT_MASK, "select-cursor-row", "(b)", TRUE);
gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_KP_Space, GDK_SHIFT_MASK, "select-cursor-row", "(b)", TRUE);
@@ -2712,6 +2718,9 @@ get_current_selection_modifiers (GtkEventController *controller,
state = gtk_event_controller_get_current_event_state (controller);
*modify = (state & GDK_CONTROL_MASK) != 0;
#ifdef __APPLE__
*modify = *modify | ((state & GDK_META_MASK) != 0);
#endif
*extend = (state & GDK_SHIFT_MASK) != 0;
}
@@ -13816,7 +13825,11 @@ gtk_tree_view_search_key_pressed (GtkEventControllerKey *key,
{
GtkTreeViewPrivate *priv = gtk_tree_view_get_instance_private (tree_view);
GtkWidget *widget = priv->search_entry;
GdkModifierType default_accel;
#ifdef __APPLE__
GdkModifierType default_accel = GDK_META_MASK;
#else
GdkModifierType default_accel = GDK_CONTROL_MASK;
#endif
gboolean retval = FALSE;
g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
@@ -13830,8 +13843,6 @@ gtk_tree_view_search_key_pressed (GtkEventControllerKey *key,
return TRUE;
}
default_accel = GDK_CONTROL_MASK;
/* select previous matching iter */
if (keyval == GDK_KEY_Up || keyval == GDK_KEY_KP_Up)
{