Use Gtk3's GdkModifierIntent masks.

These replace certain GdkModifierType masks for better cross-platform
behavior, especially on MacOS.
This commit is contained in:
John Ralls 2018-01-23 13:26:35 -08:00
parent a8cc2d2c99
commit f256b3bd23
5 changed files with 10 additions and 11 deletions

View File

@ -415,7 +415,7 @@ gnc_handle_date_accelerator (GdkEventKey *event,
* prevents weird behavior of the menu accelerators (i.e. work in
* some widgets but not others.)
*/
if (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK))
if (event->state & (GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK))
return FALSE;
/* Now check for the remaining keystrokes. */

View File

@ -183,7 +183,7 @@ gnc_amount_edit_key_press(GtkWidget *widget, GdkEventKey *event)
case GDK_KEY_Return:
if (gae->evaluate_on_enter)
break;
if (event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK))
if (event->state & (GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK))
break;
return result;
case GDK_KEY_KP_Enter:

View File

@ -80,7 +80,7 @@ gnc_formula_cell_direct_update( BasicCell *bcell,
{
case GDK_KEY_Return:
if (!(event->state &
(GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK)))
(GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK)))
is_return = TRUE;
/* FALL THROUGH */

View File

@ -1568,7 +1568,7 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
{
case GDK_KEY_C:
case GDK_KEY_c:
if (event->state & GDK_CONTROL_MASK)
if (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR)
{
gnc_item_edit_copy_clipboard(item_edit);
handled = TRUE;
@ -1576,7 +1576,7 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
break;
case GDK_KEY_X:
case GDK_KEY_x:
if (event->state & GDK_CONTROL_MASK)
if (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR)
{
gnc_item_edit_cut_clipboard(item_edit);
handled = TRUE;
@ -1584,7 +1584,7 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
break;
case GDK_KEY_V:
case GDK_KEY_v:
if (event->state & GDK_CONTROL_MASK)
if (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR)
{
gnc_item_edit_paste_clipboard (item_edit);
handled = TRUE;
@ -1596,7 +1596,7 @@ gnucash_sheet_clipboard_event (GnucashSheet *sheet, GdkEventKey *event)
gnc_item_edit_paste_clipboard (item_edit);
handled = TRUE;
}
else if (event->state & GDK_CONTROL_MASK)
else if (event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR)
{
gnc_item_edit_copy_clipboard(item_edit);
handled = TRUE;
@ -1706,8 +1706,7 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
/* Don't process any keystrokes where a modifier key (Alt,
* Meta, etc.) is being held down. This should't include
* MOD2, aka NUM LOCK. */
if (event->state & (GDK_MOD1_MASK | GDK_MOD3_MASK |
GDK_MOD4_MASK | GDK_MOD5_MASK))
if (event->state & (GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK))
pass_on = TRUE;
/* Calculate tentative physical values */
@ -1772,7 +1771,7 @@ gnucash_sheet_key_press_event_internal (GtkWidget *widget, GdkEventKey *event)
case GDK_KEY_Down:
case GDK_KEY_Menu:
if (event->keyval == GDK_KEY_Menu ||
(event->state & GDK_CONTROL_MASK))
(event->state & GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR))
{
GncItemEdit *item_edit;

View File

@ -69,7 +69,7 @@ gnc_price_cell_direct_update (BasicCell *bcell,
{
case GDK_KEY_Return:
if (!(event->state &
(GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_SHIFT_MASK)))
(GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK)))
is_return = TRUE;
/* fall through */