void gimp_tool_set_active_modifier_state (GimpTool *tool, GdkModifierType state, GimpDisplay *display) { g_return_if_fail (GIMP_IS_TOOL (tool)); g_return_if_fail (GIMP_IS_DISPLAY (display)); g_return_if_fail (display == tool->focus_display); if ((tool->active_modifier_state & GDK_SHIFT_MASK) != (state & GDK_SHIFT_MASK)) { gboolean press = state & GDK_SHIFT_MASK; #ifdef DEBUG_ACTIVE_STATE g_printerr ("%s: SHIFT %s\n", G_STRFUNC, press ? "pressed" : "released"); #endif if (! press && (tool->button_press_state & GDK_SHIFT_MASK)) { tool->button_press_state &= ~GDK_SHIFT_MASK; } else { gimp_tool_active_modifier_key (tool, GDK_SHIFT_MASK, press, state, display); } } if ((tool->active_modifier_state & GDK_CONTROL_MASK) != (state & GDK_CONTROL_MASK)) { gboolean press = state & GDK_CONTROL_MASK; #ifdef DEBUG_ACTIVE_STATE g_printerr ("%s: CONTROL %s\n", G_STRFUNC, press ? "pressed" : "released"); #endif if (! press && (tool->button_press_state & GDK_CONTROL_MASK)) { tool->button_press_state &= ~GDK_CONTROL_MASK; } else { gimp_tool_active_modifier_key (tool, GDK_CONTROL_MASK, press, state, display); } } if ((tool->active_modifier_state & GDK_MOD1_MASK) != (state & GDK_MOD1_MASK)) { gboolean press = state & GDK_MOD1_MASK; #ifdef DEBUG_ACTIVE_STATE g_printerr ("%s: ALT %s\n", G_STRFUNC, press ? "pressed" : "released"); #endif if (! press && (tool->button_press_state & GDK_MOD1_MASK)) { tool->button_press_state &= ~GDK_MOD1_MASK; } else { gimp_tool_active_modifier_key (tool, GDK_MOD1_MASK, press, state, display); } } tool->active_modifier_state = state; }
void gimp_tool_set_active_modifier_state (GimpTool *tool, GdkModifierType state, GimpDisplay *display) { gboolean press; g_return_if_fail (GIMP_IS_TOOL (tool)); g_return_if_fail (GIMP_IS_DISPLAY (display)); g_return_if_fail (gimp_tool_control_is_active (tool->control) == TRUE); GIMP_LOG (TOOL_FOCUS, "tool: %p display: %p tool->focus_display: %p", tool, display, tool->focus_display); g_return_if_fail (display == tool->focus_display); if (state_changed (tool->active_modifier_state, state, GDK_SHIFT_MASK, &press)) { #ifdef DEBUG_ACTIVE_STATE g_printerr ("%s: SHIFT %s\n", G_STRFUNC, press ? "pressed" : "released"); #endif if (! press && (tool->button_press_state & GDK_SHIFT_MASK)) { tool->button_press_state &= ~GDK_SHIFT_MASK; } else { gimp_tool_active_modifier_key (tool, GDK_SHIFT_MASK, press, state, display); } } if (state_changed (tool->active_modifier_state, state, GDK_CONTROL_MASK, &press)) { #ifdef DEBUG_ACTIVE_STATE g_printerr ("%s: CONTROL %s\n", G_STRFUNC, press ? "pressed" : "released"); #endif if (! press && (tool->button_press_state & GDK_CONTROL_MASK)) { tool->button_press_state &= ~GDK_CONTROL_MASK; } else { gimp_tool_active_modifier_key (tool, GDK_CONTROL_MASK, press, state, display); } } if (state_changed (tool->active_modifier_state, state, GDK_MOD1_MASK, &press)) { #ifdef DEBUG_ACTIVE_STATE g_printerr ("%s: ALT %s\n", G_STRFUNC, press ? "pressed" : "released"); #endif if (! press && (tool->button_press_state & GDK_MOD1_MASK)) { tool->button_press_state &= ~GDK_MOD1_MASK; } else { gimp_tool_active_modifier_key (tool, GDK_MOD1_MASK, press, state, display); } } if (state_changed (tool->active_modifier_state, state, GDK_MOD2_MASK, &press)) { #ifdef DEBUG_ACTIVE_STATE g_printerr ("%s: MOD2 %s\n", G_STRFUNC, press ? "pressed" : "released"); #endif if (! press && (tool->button_press_state & GDK_MOD2_MASK)) { tool->button_press_state &= ~GDK_MOD2_MASK; } else { gimp_tool_active_modifier_key (tool, GDK_MOD2_MASK, press, state, display); } } tool->active_modifier_state = state; }