static gboolean gimp_foreground_select_tool_key_press (GimpTool *tool, GdkEventKey *kevent, GimpDisplay *display) { GimpForegroundSelectTool *fg_select = GIMP_FOREGROUND_SELECT_TOOL (tool); if (display != tool->display) return FALSE; if (fg_select->state) { switch (kevent->keyval) { case GDK_KEY_Return: case GDK_KEY_KP_Enter: case GDK_KEY_ISO_Enter: gimp_foreground_select_tool_apply (fg_select, display); return TRUE; case GDK_KEY_Escape: gimp_tool_control (tool, GIMP_TOOL_ACTION_HALT, display); return TRUE; default: return FALSE; } } else { return GIMP_TOOL_CLASS (parent_class)->key_press (tool, kevent, display); } }
static void gimp_foreground_select_tool_response (GimpToolGui *gui, gint response_id, GimpForegroundSelectTool *fg_select) { GimpTool *tool = GIMP_TOOL (fg_select); GimpDisplay *display = tool->display; if (response_id == RESPONSE_PREVIEW) { if (fg_select->state == MATTING_STATE_PREVIEW_MASK) gimp_foreground_select_tool_set_trimap (fg_select, display); else gimp_foreground_select_tool_preview (fg_select, display); } else if (response_id == RESPONSE_APPLY) { if (fg_select->state != MATTING_STATE_PREVIEW_MASK) gimp_foreground_select_tool_preview (fg_select, display); gimp_foreground_select_tool_apply (fg_select, display); } else if (response_id == RESPONSE_RESET) { gimp_tool_control (tool, GIMP_TOOL_ACTION_HALT, display); } gimp_foreground_select_tool_update_gui (fg_select); }