app: abstract which modifiers are used for extending and modifying selections
which are SHIFT and MOD2 on the Mac, and SHIFT and CONTROL otherwise. Use the new define all over the place and rename variables and members to not say "shift" or "control".
This commit is contained in:
parent
286fff4e5f
commit
0955a59563
@ -3781,7 +3781,7 @@ gtk_entry_button_press (GtkWidget *widget,
|
||||
priv->select_words = FALSE;
|
||||
priv->select_lines = FALSE;
|
||||
|
||||
if (event->state & GDK_SHIFT_MASK)
|
||||
if (event->state & GTK_EXTEND_SELECTION_MOD_MASK)
|
||||
{
|
||||
_gtk_entry_reset_im_context (entry);
|
||||
|
||||
|
@ -178,8 +178,8 @@ struct _GtkIconViewPrivate
|
||||
guint reorderable : 1;
|
||||
guint empty_view_drop :1;
|
||||
|
||||
guint ctrl_pressed : 1;
|
||||
guint shift_pressed : 1;
|
||||
guint modify_selection_pressed : 1;
|
||||
guint extend_selection_pressed : 1;
|
||||
|
||||
guint draw_focus : 1;
|
||||
|
||||
@ -2043,7 +2043,7 @@ gtk_icon_view_button_press (GtkWidget *widget,
|
||||
gtk_icon_view_set_cursor_item (icon_view, item, cursor_cell);
|
||||
}
|
||||
else if (icon_view->priv->selection_mode == GTK_SELECTION_MULTIPLE &&
|
||||
(event->state & GDK_SHIFT_MASK))
|
||||
(event->state & GTK_EXTEND_SELECTION_MOD_MASK))
|
||||
{
|
||||
gtk_icon_view_unselect_all_internal (icon_view);
|
||||
|
||||
@ -2060,7 +2060,7 @@ gtk_icon_view_button_press (GtkWidget *widget,
|
||||
{
|
||||
if ((icon_view->priv->selection_mode == GTK_SELECTION_MULTIPLE ||
|
||||
((icon_view->priv->selection_mode == GTK_SELECTION_SINGLE) && item->selected)) &&
|
||||
(event->state & GDK_CONTROL_MASK))
|
||||
(event->state & GTK_MODIFY_SELECTION_MOD_MASK))
|
||||
{
|
||||
item->selected = !item->selected;
|
||||
gtk_icon_view_queue_draw_item (icon_view, item);
|
||||
@ -2107,7 +2107,7 @@ gtk_icon_view_button_press (GtkWidget *widget,
|
||||
else
|
||||
{
|
||||
if (icon_view->priv->selection_mode != GTK_SELECTION_BROWSE &&
|
||||
!(event->state & GDK_CONTROL_MASK))
|
||||
!(event->state & GTK_MODIFY_SELECTION_MOD_MASK))
|
||||
{
|
||||
dirty = gtk_icon_view_unselect_all_internal (icon_view);
|
||||
}
|
||||
@ -3566,10 +3566,10 @@ gtk_icon_view_real_move_cursor (GtkIconView *icon_view,
|
||||
|
||||
if (gtk_get_current_event_state (&state))
|
||||
{
|
||||
if ((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
|
||||
icon_view->priv->ctrl_pressed = TRUE;
|
||||
if ((state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK)
|
||||
icon_view->priv->shift_pressed = TRUE;
|
||||
if ((state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK)
|
||||
icon_view->priv->modify_selection_pressed = TRUE;
|
||||
if ((state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK)
|
||||
icon_view->priv->extend_selection_pressed = TRUE;
|
||||
}
|
||||
/* else we assume not pressed */
|
||||
|
||||
@ -3592,8 +3592,8 @@ gtk_icon_view_real_move_cursor (GtkIconView *icon_view,
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
icon_view->priv->ctrl_pressed = FALSE;
|
||||
icon_view->priv->shift_pressed = FALSE;
|
||||
icon_view->priv->modify_selection_pressed = FALSE;
|
||||
icon_view->priv->extend_selection_pressed = FALSE;
|
||||
|
||||
icon_view->priv->draw_focus = TRUE;
|
||||
|
||||
@ -3792,8 +3792,8 @@ gtk_icon_view_move_cursor_up_down (GtkIconView *icon_view,
|
||||
return;
|
||||
}
|
||||
|
||||
if (icon_view->priv->ctrl_pressed ||
|
||||
!icon_view->priv->shift_pressed ||
|
||||
if (icon_view->priv->modify_selection_pressed ||
|
||||
!icon_view->priv->extend_selection_pressed ||
|
||||
!icon_view->priv->anchor_item ||
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_MULTIPLE)
|
||||
icon_view->priv->anchor_item = item;
|
||||
@ -3801,7 +3801,7 @@ gtk_icon_view_move_cursor_up_down (GtkIconView *icon_view,
|
||||
cell = gtk_cell_area_get_focus_cell (icon_view->priv->cell_area);
|
||||
gtk_icon_view_set_cursor_item (icon_view, item, cell);
|
||||
|
||||
if (!icon_view->priv->ctrl_pressed &&
|
||||
if (!icon_view->priv->modify_selection_pressed &&
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_NONE)
|
||||
{
|
||||
dirty = gtk_icon_view_unselect_all_internal (icon_view);
|
||||
@ -3848,15 +3848,15 @@ gtk_icon_view_move_cursor_page_up_down (GtkIconView *icon_view,
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
if (icon_view->priv->ctrl_pressed ||
|
||||
!icon_view->priv->shift_pressed ||
|
||||
if (icon_view->priv->modify_selection_pressed ||
|
||||
!icon_view->priv->extend_selection_pressed ||
|
||||
!icon_view->priv->anchor_item ||
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_MULTIPLE)
|
||||
icon_view->priv->anchor_item = item;
|
||||
|
||||
gtk_icon_view_set_cursor_item (icon_view, item, NULL);
|
||||
|
||||
if (!icon_view->priv->ctrl_pressed &&
|
||||
if (!icon_view->priv->modify_selection_pressed &&
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_NONE)
|
||||
{
|
||||
dirty = gtk_icon_view_unselect_all_internal (icon_view);
|
||||
@ -3937,8 +3937,8 @@ gtk_icon_view_move_cursor_left_right (GtkIconView *icon_view,
|
||||
return;
|
||||
}
|
||||
|
||||
if (icon_view->priv->ctrl_pressed ||
|
||||
!icon_view->priv->shift_pressed ||
|
||||
if (icon_view->priv->modify_selection_pressed ||
|
||||
!icon_view->priv->extend_selection_pressed ||
|
||||
!icon_view->priv->anchor_item ||
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_MULTIPLE)
|
||||
icon_view->priv->anchor_item = item;
|
||||
@ -3946,7 +3946,7 @@ gtk_icon_view_move_cursor_left_right (GtkIconView *icon_view,
|
||||
cell = gtk_cell_area_get_focus_cell (icon_view->priv->cell_area);
|
||||
gtk_icon_view_set_cursor_item (icon_view, item, cell);
|
||||
|
||||
if (!icon_view->priv->ctrl_pressed &&
|
||||
if (!icon_view->priv->modify_selection_pressed &&
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_NONE)
|
||||
{
|
||||
dirty = gtk_icon_view_unselect_all_internal (icon_view);
|
||||
@ -3985,15 +3985,15 @@ gtk_icon_view_move_cursor_start_end (GtkIconView *icon_view,
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
if (icon_view->priv->ctrl_pressed ||
|
||||
!icon_view->priv->shift_pressed ||
|
||||
if (icon_view->priv->modify_selection_pressed ||
|
||||
!icon_view->priv->extend_selection_pressed ||
|
||||
!icon_view->priv->anchor_item ||
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_MULTIPLE)
|
||||
icon_view->priv->anchor_item = item;
|
||||
|
||||
gtk_icon_view_set_cursor_item (icon_view, item, NULL);
|
||||
|
||||
if (!icon_view->priv->ctrl_pressed &&
|
||||
if (!icon_view->priv->modify_selection_pressed &&
|
||||
icon_view->priv->selection_mode != GTK_SELECTION_NONE)
|
||||
{
|
||||
dirty = gtk_icon_view_unselect_all_internal (icon_view);
|
||||
|
@ -77,6 +77,14 @@ const gchar *_gtk_get_data_prefix ();
|
||||
#define GTK_NO_TEXT_INPUT_MOD_MASK (GDK_MOD2_MASK | GDK_CONTROL_MASK)
|
||||
#endif
|
||||
|
||||
#ifndef GDK_WINDOWING_QUARTZ
|
||||
#define GTK_EXTEND_SELECTION_MOD_MASK GDK_SHIFT_MASK
|
||||
#define GTK_MODIFY_SELECTION_MOD_MASK GDK_CONTROL_MASK
|
||||
#else
|
||||
#define GTK_EXTEND_SELECTION_MOD_MASK GDK_SHIFT_MASK
|
||||
#define GTK_MODIFY_SELECTION_MOD_MASK GDK_MOD2_MASK
|
||||
#endif
|
||||
|
||||
gboolean _gtk_fnmatch (const char *pattern,
|
||||
const char *string,
|
||||
gboolean no_leading_period);
|
||||
|
@ -4561,7 +4561,7 @@ gtk_text_view_button_press_event (GtkWidget *widget, GdkEventButton *event)
|
||||
if (gtk_text_buffer_get_selection_bounds (get_buffer (text_view),
|
||||
&start, &end) &&
|
||||
gtk_text_iter_in_range (&iter, &start, &end) &&
|
||||
!(event->state & GDK_SHIFT_MASK))
|
||||
!(event->state & GTK_EXTEND_SELECTION_MOD_MASK))
|
||||
{
|
||||
priv->drag_start_x = event->x;
|
||||
priv->drag_start_y = event->y;
|
||||
@ -6491,7 +6491,7 @@ gtk_text_view_start_selection_drag (GtkTextView *text_view,
|
||||
orig_start = ins;
|
||||
orig_end = bound;
|
||||
|
||||
if (button->state & GDK_SHIFT_MASK)
|
||||
if (button->state & GTK_EXTEND_SELECTION_MOD_MASK)
|
||||
{
|
||||
/* Extend selection */
|
||||
GtkTextIter old_ins, old_bound;
|
||||
|
@ -399,8 +399,8 @@ struct _GtkTreeViewPrivate
|
||||
gint rubber_band_status;
|
||||
gint rubber_band_x;
|
||||
gint rubber_band_y;
|
||||
gint rubber_band_shift;
|
||||
gint rubber_band_ctrl;
|
||||
gint rubber_band_extend;
|
||||
gint rubber_band_modify;
|
||||
|
||||
GtkRBNode *rubber_band_start_node;
|
||||
GtkRBTree *rubber_band_start_tree;
|
||||
@ -464,8 +464,8 @@ struct _GtkTreeViewPrivate
|
||||
/* for DnD */
|
||||
guint empty_view_drop : 1;
|
||||
|
||||
guint ctrl_pressed : 1;
|
||||
guint shift_pressed : 1;
|
||||
guint modify_selection_pressed : 1;
|
||||
guint extend_selection_pressed : 1;
|
||||
|
||||
guint init_hadjust_value : 1;
|
||||
|
||||
@ -3044,10 +3044,10 @@ gtk_tree_view_button_press (GtkWidget *widget,
|
||||
{
|
||||
GtkCellRenderer *focus_cell;
|
||||
|
||||
if ((event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
|
||||
tree_view->priv->ctrl_pressed = TRUE;
|
||||
if ((event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK)
|
||||
tree_view->priv->shift_pressed = TRUE;
|
||||
if ((event->state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK)
|
||||
tree_view->priv->modify_selection_pressed = TRUE;
|
||||
if ((event->state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK)
|
||||
tree_view->priv->extend_selection_pressed = TRUE;
|
||||
|
||||
/* We update the focus cell here, this is also needed if the
|
||||
* column does not contain an editable cell. In this case,
|
||||
@ -3063,12 +3063,12 @@ gtk_tree_view_button_press (GtkWidget *widget,
|
||||
if (focus_cell)
|
||||
gtk_tree_view_column_focus_cell (column, focus_cell);
|
||||
|
||||
if (event->state & GDK_CONTROL_MASK)
|
||||
if (event->state & GTK_MODIFY_SELECTION_MOD_MASK)
|
||||
{
|
||||
gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE);
|
||||
gtk_tree_view_real_toggle_cursor_row (tree_view);
|
||||
}
|
||||
else if (event->state & GDK_SHIFT_MASK)
|
||||
else if (event->state & GTK_EXTEND_SELECTION_MOD_MASK)
|
||||
{
|
||||
gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE);
|
||||
gtk_tree_view_real_select_cursor_row (tree_view, FALSE);
|
||||
@ -3078,8 +3078,8 @@ gtk_tree_view_button_press (GtkWidget *widget,
|
||||
gtk_tree_view_real_set_cursor (tree_view, path, TRUE, TRUE);
|
||||
}
|
||||
|
||||
tree_view->priv->ctrl_pressed = FALSE;
|
||||
tree_view->priv->shift_pressed = FALSE;
|
||||
tree_view->priv->modify_selection_pressed = FALSE;
|
||||
tree_view->priv->extend_selection_pressed = FALSE;
|
||||
}
|
||||
|
||||
/* the treeview may have been scrolled because of _set_cursor,
|
||||
@ -3111,10 +3111,10 @@ gtk_tree_view_button_press (GtkWidget *widget,
|
||||
tree_view->priv->rubber_band_y = event->y + tree_view->priv->dy;
|
||||
tree_view->priv->rubber_band_status = RUBBER_BAND_MAYBE_START;
|
||||
|
||||
if ((event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
|
||||
tree_view->priv->rubber_band_ctrl = TRUE;
|
||||
if ((event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK)
|
||||
tree_view->priv->rubber_band_shift = TRUE;
|
||||
if ((event->state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK)
|
||||
tree_view->priv->rubber_band_modify = TRUE;
|
||||
if ((event->state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK)
|
||||
tree_view->priv->rubber_band_extend = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4118,8 +4118,8 @@ gtk_tree_view_stop_rubber_band (GtkTreeView *tree_view)
|
||||
|
||||
/* Clear status variables */
|
||||
tree_view->priv->rubber_band_status = RUBBER_BAND_OFF;
|
||||
tree_view->priv->rubber_band_shift = 0;
|
||||
tree_view->priv->rubber_band_ctrl = 0;
|
||||
tree_view->priv->rubber_band_extend = FALSE;
|
||||
tree_view->priv->rubber_band_modify = FALSE;
|
||||
|
||||
tree_view->priv->rubber_band_start_node = NULL;
|
||||
tree_view->priv->rubber_band_start_tree = NULL;
|
||||
@ -4164,9 +4164,9 @@ gtk_tree_view_update_rubber_band_selection_range (GtkTreeView *tree_view,
|
||||
|
||||
if (select)
|
||||
{
|
||||
if (tree_view->priv->rubber_band_shift)
|
||||
GTK_RBNODE_SET_FLAG (start_node, GTK_RBNODE_IS_SELECTED);
|
||||
else if (tree_view->priv->rubber_band_ctrl)
|
||||
if (tree_view->priv->rubber_band_extend)
|
||||
GTK_RBNODE_SET_FLAG (start_node, GTK_RBNODE_IS_SELECTED);
|
||||
else if (tree_view->priv->rubber_band_modify)
|
||||
{
|
||||
/* Toggle the selection state */
|
||||
if (GTK_RBNODE_FLAG_SET (start_node, GTK_RBNODE_IS_SELECTED))
|
||||
@ -4180,9 +4180,9 @@ gtk_tree_view_update_rubber_band_selection_range (GtkTreeView *tree_view,
|
||||
else
|
||||
{
|
||||
/* Mirror the above */
|
||||
if (tree_view->priv->rubber_band_shift)
|
||||
if (tree_view->priv->rubber_band_extend)
|
||||
GTK_RBNODE_UNSET_FLAG (start_node, GTK_RBNODE_IS_SELECTED);
|
||||
else if (tree_view->priv->rubber_band_ctrl)
|
||||
else if (tree_view->priv->rubber_band_modify)
|
||||
{
|
||||
/* Toggle the selection state */
|
||||
if (GTK_RBNODE_FLAG_SET (start_node, GTK_RBNODE_IS_SELECTED))
|
||||
@ -8572,10 +8572,10 @@ gtk_tree_view_real_move_cursor (GtkTreeView *tree_view,
|
||||
|
||||
if (gtk_get_current_event_state (&state))
|
||||
{
|
||||
if ((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
|
||||
tree_view->priv->ctrl_pressed = TRUE;
|
||||
if ((state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK)
|
||||
tree_view->priv->shift_pressed = TRUE;
|
||||
if ((state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK)
|
||||
tree_view->priv->modify_selection_pressed = TRUE;
|
||||
if ((state & GTK_EXTEND_SELECTION_MOD_MASK) == GTK_EXTEND_SELECTION_MOD_MASK)
|
||||
tree_view->priv->extend_selection_pressed = TRUE;
|
||||
}
|
||||
/* else we assume not pressed */
|
||||
|
||||
@ -8599,8 +8599,8 @@ gtk_tree_view_real_move_cursor (GtkTreeView *tree_view,
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
tree_view->priv->ctrl_pressed = FALSE;
|
||||
tree_view->priv->shift_pressed = FALSE;
|
||||
tree_view->priv->modify_selection_pressed = FALSE;
|
||||
tree_view->priv->extend_selection_pressed = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -10190,7 +10190,7 @@ gtk_tree_view_move_cursor_up_down (GtkTreeView *tree_view,
|
||||
|
||||
if (selection_count == 0
|
||||
&& gtk_tree_selection_get_mode (tree_view->priv->selection) != GTK_SELECTION_NONE
|
||||
&& !tree_view->priv->ctrl_pressed
|
||||
&& !tree_view->priv->modify_selection_pressed
|
||||
&& selectable)
|
||||
{
|
||||
/* Don't move the cursor, but just select the current node */
|
||||
@ -10263,7 +10263,7 @@ gtk_tree_view_move_cursor_up_down (GtkTreeView *tree_view,
|
||||
{
|
||||
gtk_tree_view_clamp_node_visible (tree_view, cursor_tree, cursor_node);
|
||||
|
||||
if (!tree_view->priv->shift_pressed)
|
||||
if (!tree_view->priv->extend_selection_pressed)
|
||||
{
|
||||
if (! gtk_widget_keynav_failed (GTK_WIDGET (tree_view),
|
||||
count < 0 ?
|
||||
@ -10629,7 +10629,7 @@ gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!tree_view->priv->shift_pressed && start_editing &&
|
||||
if (!tree_view->priv->extend_selection_pressed && start_editing &&
|
||||
tree_view->priv->focus_column)
|
||||
{
|
||||
if (gtk_tree_view_start_editing (tree_view, cursor_path, FALSE))
|
||||
@ -10639,9 +10639,9 @@ gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
|
||||
}
|
||||
}
|
||||
|
||||
if (tree_view->priv->ctrl_pressed)
|
||||
if (tree_view->priv->modify_selection_pressed)
|
||||
mode |= GTK_TREE_SELECT_MODE_TOGGLE;
|
||||
if (tree_view->priv->shift_pressed)
|
||||
if (tree_view->priv->extend_selection_pressed)
|
||||
mode |= GTK_TREE_SELECT_MODE_EXTEND;
|
||||
|
||||
_gtk_tree_selection_internal_select_node (tree_view->priv->selection,
|
||||
@ -10665,7 +10665,7 @@ gtk_tree_view_real_select_cursor_row (GtkTreeView *tree_view,
|
||||
gtk_widget_grab_focus (GTK_WIDGET (tree_view));
|
||||
_gtk_tree_view_queue_draw_node (tree_view, cursor_tree, cursor_node, NULL);
|
||||
|
||||
if (!tree_view->priv->shift_pressed)
|
||||
if (!tree_view->priv->extend_selection_pressed)
|
||||
gtk_tree_view_row_activated (tree_view, cursor_path,
|
||||
tree_view->priv->focus_column);
|
||||
|
||||
@ -10803,8 +10803,8 @@ gtk_tree_view_real_select_cursor_parent (GtkTreeView *tree_view)
|
||||
|
||||
if (gtk_get_current_event_state (&state))
|
||||
{
|
||||
if ((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK)
|
||||
tree_view->priv->ctrl_pressed = TRUE;
|
||||
if ((state & GTK_MODIFY_SELECTION_MOD_MASK) == GTK_MODIFY_SELECTION_MOD_MASK)
|
||||
tree_view->priv->modify_selection_pressed = TRUE;
|
||||
}
|
||||
|
||||
gtk_tree_view_real_set_cursor (tree_view, cursor_path, TRUE, FALSE);
|
||||
@ -10814,7 +10814,7 @@ gtk_tree_view_real_select_cursor_parent (GtkTreeView *tree_view)
|
||||
gtk_tree_view_queue_draw_path (tree_view, cursor_path, NULL);
|
||||
gtk_tree_path_free (cursor_path);
|
||||
|
||||
tree_view->priv->ctrl_pressed = FALSE;
|
||||
tree_view->priv->modify_selection_pressed = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -13140,11 +13140,11 @@ gtk_tree_view_real_set_cursor (GtkTreeView *tree_view,
|
||||
GtkRBTree *new_tree = NULL;
|
||||
GtkRBNode *new_node = NULL;
|
||||
|
||||
if (clear_and_select && !tree_view->priv->ctrl_pressed)
|
||||
if (clear_and_select && !tree_view->priv->modify_selection_pressed)
|
||||
{
|
||||
GtkTreeSelectMode mode = 0;
|
||||
|
||||
if (tree_view->priv->shift_pressed)
|
||||
if (tree_view->priv->extend_selection_pressed)
|
||||
mode |= GTK_TREE_SELECT_MODE_EXTEND;
|
||||
|
||||
_gtk_tree_selection_internal_select_node (tree_view->priv->selection,
|
||||
|
Loading…
Reference in New Issue
Block a user