/* gitg-diff-view-file-selectable.c generated by valac 0.32.1, the Vala compiler
 * generated from gitg-diff-view-file-selectable.vala, do not modify */

/*
 * This file is part of gitg
 *
 * Copyright (C) 2015 - Jesse van den Kieboom
 *
 * gitg is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * gitg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with gitg. If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>
#include <gee.h>
#include <gdk/gdk.h>
#include <gtksourceview/gtksource.h>
#include <cairo.h>
#include <libgitg/gitg-platform-support.h>
#include <float.h>
#include <math.h>


#define GITG_TYPE_DIFF_SELECTION_MODE (gitg_diff_selection_mode_get_type ())

#define GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE (gitg_diff_view_file_selectable_get_type ())
#define GITG_DIFF_VIEW_FILE_SELECTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectable))
#define GITG_DIFF_VIEW_FILE_SELECTABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectableClass))
#define GITG_IS_DIFF_VIEW_FILE_SELECTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE))
#define GITG_IS_DIFF_VIEW_FILE_SELECTABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE))
#define GITG_DIFF_VIEW_FILE_SELECTABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectableClass))

typedef struct _GitgDiffViewFileSelectable GitgDiffViewFileSelectable;
typedef struct _GitgDiffViewFileSelectableClass GitgDiffViewFileSelectableClass;
typedef struct _GitgDiffViewFileSelectablePrivate GitgDiffViewFileSelectablePrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
#define _g_slist_free0(var) ((var == NULL) ? NULL : (var = (g_slist_free (var), NULL)))

typedef enum  {
	GITG_DIFF_SELECTION_MODE_NONE,
	GITG_DIFF_SELECTION_MODE_SELECTING,
	GITG_DIFF_SELECTION_MODE_DESELECTING
} GitgDiffSelectionMode;

struct _GitgDiffViewFileSelectable {
	GObject parent_instance;
	GitgDiffViewFileSelectablePrivate * priv;
};

struct _GitgDiffViewFileSelectableClass {
	GObjectClass parent_class;
};

struct _GitgDiffViewFileSelectablePrivate {
	gchar* d_selection_category;
	GtkTextTag* d_selection_tag;
	GitgDiffSelectionMode d_selection_mode;
	GtkTextMark* d_start_selection_mark;
	GtkTextMark* d_end_selection_mark;
	GeeHashMap* d_originally_selected;
	GdkCursor* d_subtract_cursor_ptr;
	GdkCursor* d_subtract_cursor_hand;
	GdkCursor* d_cursor_ptr;
	GdkCursor* d_cursor_hand;
	GtkSourceView* _source_view;
	gboolean _has_selection;
};


static gpointer gitg_diff_view_file_selectable_parent_class = NULL;

GType gitg_diff_selection_mode_get_type (void) G_GNUC_CONST;
GType gitg_diff_view_file_selectable_get_type (void) G_GNUC_CONST;
#define GITG_DIFF_VIEW_FILE_SELECTABLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectablePrivate))
enum  {
	GITG_DIFF_VIEW_FILE_SELECTABLE_DUMMY_PROPERTY,
	GITG_DIFF_VIEW_FILE_SELECTABLE_SOURCE_VIEW,
	GITG_DIFF_VIEW_FILE_SELECTABLE_HAS_SELECTION
};
GitgDiffViewFileSelectable* gitg_diff_view_file_selectable_new (GtkSourceView* source_view);
GitgDiffViewFileSelectable* gitg_diff_view_file_selectable_construct (GType object_type, GtkSourceView* source_view);
static GdkCursor* gitg_diff_view_file_selectable_composite_subtract_cursor (GitgDiffViewFileSelectable* self, GdkCursorType cursor);
GtkSourceView* gitg_diff_view_file_selectable_get_source_view (GitgDiffViewFileSelectable* self);
static void gitg_diff_view_file_selectable_update_cursor (GitgDiffViewFileSelectable* self, GdkCursor* cursor);
static void gitg_diff_view_file_selectable_update_cursor_for_state (GitgDiffViewFileSelectable* self, GdkModifierType state);
static gboolean gitg_diff_view_file_selectable_get_iter_from_pointer_position (GitgDiffViewFileSelectable* self, GtkTextIter* iter);
static gboolean gitg_diff_view_file_selectable_get_line_is_hunk (GitgDiffViewFileSelectable* self, GtkTextIter* iter);
static GdkCursor* gitg_diff_view_file_selectable_get_subtract_cursor_hand (GitgDiffViewFileSelectable* self);
static GdkCursor* gitg_diff_view_file_selectable_get_subtract_cursor_ptr (GitgDiffViewFileSelectable* self);
static GdkCursor* gitg_diff_view_file_selectable_get_cursor_hand (GitgDiffViewFileSelectable* self);
static GdkCursor* gitg_diff_view_file_selectable_get_cursor_ptr (GitgDiffViewFileSelectable* self);
static void gitg_diff_view_file_selectable_update_theme (GitgDiffViewFileSelectable* self);
static gboolean gitg_diff_view_file_selectable_get_line_selected (GitgDiffViewFileSelectable* self, GtkTextIter* iter);
static gboolean gitg_diff_view_file_selectable_get_line_is_diff (GitgDiffViewFileSelectable* self, GtkTextIter* iter);
static gboolean gitg_diff_view_file_selectable_get_iter_from_event_position (GitgDiffViewFileSelectable* self, GtkTextIter* iter, gint x, gint y);
static void gitg_diff_view_file_selectable_update_selection_range (GitgDiffViewFileSelectable* self, GtkTextIter* start, GtkTextIter* end, gboolean select);
static void gitg_diff_view_file_selectable_clear_original_selection (GitgDiffViewFileSelectable* self, GtkTextIter* start, GtkTextIter* end, gboolean include_end);
static void gitg_diff_view_file_selectable_update_selection_hunk (GitgDiffViewFileSelectable* self, GtkTextIter* iter, gboolean select);
static gboolean gitg_diff_view_file_selectable_button_press_event_on_view (GitgDiffViewFileSelectable* self, GdkEventButton* event);
static void gitg_diff_view_file_selectable_update_selection (GitgDiffViewFileSelectable* self, GtkTextIter* cursor);
static gboolean gitg_diff_view_file_selectable_update_selection_event (GitgDiffViewFileSelectable* self, GdkModifierType state, gint x, gint y);
static gboolean gitg_diff_view_file_selectable_motion_notify_event_on_view (GitgDiffViewFileSelectable* self, GdkEventMotion* event);
static gboolean gitg_diff_view_file_selectable_leave_notify_event_on_view (GitgDiffViewFileSelectable* self, GdkEventCrossing* event);
static gboolean gitg_diff_view_file_selectable_enter_notify_event_on_view (GitgDiffViewFileSelectable* self, GdkEventCrossing* event);
static void gitg_diff_view_file_selectable_update_has_selection (GitgDiffViewFileSelectable* self);
gboolean gitg_diff_view_file_selectable_get_has_selection (GitgDiffViewFileSelectable* self);
static void gitg_diff_view_file_selectable_set_has_selection (GitgDiffViewFileSelectable* self, gboolean value);
static gboolean gitg_diff_view_file_selectable_button_release_event_on_view (GitgDiffViewFileSelectable* self, GdkEventButton* event);
void gitg_diff_view_file_selectable_set_source_view (GitgDiffViewFileSelectable* self, GtkSourceView* value);
gint* gitg_diff_view_file_selectable_get_selected_lines (GitgDiffViewFileSelectable* self, int* result_length1);
static void _vala_array_add3 (gint** array, int* length, int* size, gint value);
static GObject * gitg_diff_view_file_selectable_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
static gboolean _gitg_diff_view_file_selectable_button_press_event_on_view_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean _gitg_diff_view_file_selectable_motion_notify_event_on_view_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self);
static gboolean _gitg_diff_view_file_selectable_leave_notify_event_on_view_gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
static gboolean _gitg_diff_view_file_selectable_enter_notify_event_on_view_gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
static gboolean _gitg_diff_view_file_selectable_button_release_event_on_view_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static void _gitg_diff_view_file_selectable___lambda48_ (GitgDiffViewFileSelectable* self);
static void __gitg_diff_view_file_selectable___lambda48__gtk_widget_realize (GtkWidget* _sender, gpointer self);
static void _gitg_diff_view_file_selectable___lambda49_ (GitgDiffViewFileSelectable* self);
static void __gitg_diff_view_file_selectable___lambda49__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
static void _gitg_diff_view_file_selectable_update_theme_gtk_widget_style_updated (GtkWidget* _sender, gpointer self);
static void gitg_diff_view_file_selectable_finalize (GObject* obj);
static void _vala_gitg_diff_view_file_selectable_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_gitg_diff_view_file_selectable_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);


GType gitg_diff_selection_mode_get_type (void) {
	static volatile gsize gitg_diff_selection_mode_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_diff_selection_mode_type_id__volatile)) {
		static const GEnumValue values[] = {{GITG_DIFF_SELECTION_MODE_NONE, "GITG_DIFF_SELECTION_MODE_NONE", "none"}, {GITG_DIFF_SELECTION_MODE_SELECTING, "GITG_DIFF_SELECTION_MODE_SELECTING", "selecting"}, {GITG_DIFF_SELECTION_MODE_DESELECTING, "GITG_DIFF_SELECTION_MODE_DESELECTING", "deselecting"}, {0, NULL, NULL}};
		GType gitg_diff_selection_mode_type_id;
		gitg_diff_selection_mode_type_id = g_enum_register_static ("GitgDiffSelectionMode", values);
		g_once_init_leave (&gitg_diff_selection_mode_type_id__volatile, gitg_diff_selection_mode_type_id);
	}
	return gitg_diff_selection_mode_type_id__volatile;
}


GitgDiffViewFileSelectable* gitg_diff_view_file_selectable_construct (GType object_type, GtkSourceView* source_view) {
	GitgDiffViewFileSelectable * self = NULL;
	GtkSourceView* _tmp0_ = NULL;
#line 69 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (source_view != NULL, NULL);
#line 71 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = source_view;
#line 71 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self = (GitgDiffViewFileSelectable*) g_object_new (object_type, "source-view", _tmp0_, NULL);
#line 69 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return self;
#line 168 "gitg-diff-view-file-selectable.c"
}


GitgDiffViewFileSelectable* gitg_diff_view_file_selectable_new (GtkSourceView* source_view) {
#line 69 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return gitg_diff_view_file_selectable_construct (GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, source_view);
#line 175 "gitg-diff-view-file-selectable.c"
}


static GdkCursor* gitg_diff_view_file_selectable_composite_subtract_cursor (GitgDiffViewFileSelectable* self, GdkCursorType cursor) {
	GdkCursor* result = NULL;
	gint width = 0;
	gint height = 0;
	gint hot_x = 0;
	gint hot_y = 0;
	cairo_surface_t* surface = NULL;
	GtkSourceView* _tmp0_ = NULL;
	GdkDisplay* _tmp1_ = NULL;
	GdkCursorType _tmp2_ = 0;
	gint _tmp3_ = 0;
	gint _tmp4_ = 0;
	gint _tmp5_ = 0;
	gint _tmp6_ = 0;
	cairo_surface_t* _tmp7_ = NULL;
	cairo_surface_t* _tmp8_ = NULL;
	cairo_t* ctx = NULL;
	cairo_surface_t* _tmp13_ = NULL;
	cairo_t* _tmp14_ = NULL;
	cairo_t* _tmp15_ = NULL;
#line 118 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	static const gint margin = 2;
#line 119 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	static const gint length = 5;
#line 203 "gitg-diff-view-file-selectable.c"
	cairo_t* _tmp16_ = NULL;
	cairo_t* _tmp17_ = NULL;
	gint _tmp18_ = 0;
	cairo_t* _tmp19_ = NULL;
	cairo_t* _tmp20_ = NULL;
	cairo_t* _tmp21_ = NULL;
	cairo_t* _tmp22_ = NULL;
	gint _tmp23_ = 0;
	cairo_t* _tmp24_ = NULL;
	cairo_t* _tmp25_ = NULL;
	GtkSourceView* _tmp26_ = NULL;
	GdkDisplay* _tmp27_ = NULL;
	cairo_surface_t* _tmp28_ = NULL;
	gint _tmp29_ = 0;
	gint _tmp30_ = 0;
	GdkCursor* _tmp31_ = NULL;
#line 98 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = gtk_widget_get_display ((GtkWidget*) _tmp0_);
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = cursor;
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = gitg_platform_support_create_cursor_surface (_tmp1_, _tmp2_, &_tmp3_, &_tmp4_, &_tmp5_, &_tmp6_);
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	hot_x = _tmp3_;
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	hot_y = _tmp4_;
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	width = _tmp5_;
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	height = _tmp6_;
#line 102 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	surface = _tmp7_;
#line 109 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = surface;
#line 109 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp8_ == NULL) {
#line 244 "gitg-diff-view-file-selectable.c"
		GtkSourceView* _tmp9_ = NULL;
		GdkDisplay* _tmp10_ = NULL;
		GdkCursorType _tmp11_ = 0;
		GdkCursor* _tmp12_ = NULL;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp9_ = self->priv->_source_view;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp10_ = gtk_widget_get_display ((GtkWidget*) _tmp9_);
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp11_ = cursor;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp12_ = gdk_cursor_new_for_display (_tmp10_, _tmp11_);
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = _tmp12_;
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_cairo_surface_destroy0 (surface);
#line 111 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 263 "gitg-diff-view-file-selectable.c"
	}
#line 114 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp13_ = surface;
#line 114 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp14_ = cairo_create (_tmp13_);
#line 114 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	ctx = _tmp14_;
#line 116 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp15_ = ctx;
#line 116 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_set_line_width (_tmp15_, (gdouble) 1);
#line 121 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp16_ = ctx;
#line 121 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_set_source_rgb (_tmp16_, (gdouble) 0, (gdouble) 0, (gdouble) 0);
#line 122 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp17_ = ctx;
#line 122 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp18_ = width;
#line 122 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_move_to (_tmp17_, ((_tmp18_ - margin) - length) + 0.5, (margin - ((length - 1) / 2)) + 0.5);
#line 123 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp19_ = ctx;
#line 123 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_rel_line_to (_tmp19_, (gdouble) length, (gdouble) 0);
#line 124 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp20_ = ctx;
#line 124 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_stroke (_tmp20_);
#line 126 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp21_ = ctx;
#line 126 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_set_source_rgb (_tmp21_, (gdouble) 1, (gdouble) 1, (gdouble) 1);
#line 127 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp22_ = ctx;
#line 127 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp23_ = width;
#line 127 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_move_to (_tmp22_, ((_tmp23_ - margin) - length) + 0.5, (margin - ((length - 1) / 2)) + 1.5);
#line 128 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp24_ = ctx;
#line 128 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_rel_line_to (_tmp24_, (gdouble) length, (gdouble) 0);
#line 129 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp25_ = ctx;
#line 129 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	cairo_stroke (_tmp25_);
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp26_ = self->priv->_source_view;
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp27_ = gtk_widget_get_display ((GtkWidget*) _tmp26_);
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp28_ = surface;
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp29_ = hot_x;
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp30_ = hot_y;
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp31_ = gdk_cursor_new_from_surface (_tmp27_, _tmp28_, (gdouble) _tmp29_, (gdouble) _tmp30_);
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp31_;
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_cairo_destroy0 (ctx);
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_cairo_surface_destroy0 (surface);
#line 131 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 331 "gitg-diff-view-file-selectable.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return self ? g_object_ref (self) : NULL;
#line 338 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_update_cursor (GitgDiffViewFileSelectable* self, GdkCursor* cursor) {
	GdkWindow* window = NULL;
	GtkSourceView* _tmp0_ = NULL;
	GdkWindow* _tmp1_ = NULL;
	GdkWindow* _tmp2_ = NULL;
	GdkWindow* _tmp3_ = NULL;
	GdkWindow* _tmp4_ = NULL;
	GdkCursor* _tmp5_ = NULL;
#line 188 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 188 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (cursor != NULL);
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = gtk_text_view_get_window ((GtkTextView*) _tmp0_, GTK_TEXT_WINDOW_TEXT);
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 190 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	window = _tmp2_;
#line 192 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = window;
#line 192 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp3_ == NULL) {
#line 194 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (window);
#line 194 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return;
#line 370 "gitg-diff-view-file-selectable.c"
	}
#line 197 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = window;
#line 197 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = cursor;
#line 197 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gdk_window_set_cursor (_tmp4_, _tmp5_);
#line 188 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (window);
#line 380 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_update_cursor_for_state (GitgDiffViewFileSelectable* self, GdkModifierType state) {
	GtkTextIter iter = {0};
	gboolean _tmp0_ = FALSE;
	GtkTextIter _tmp1_ = {0};
	gboolean _tmp2_ = FALSE;
	gboolean is_hunk = FALSE;
	gboolean _tmp5_ = FALSE;
	GdkModifierType _tmp6_ = 0;
#line 200 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gitg_diff_view_file_selectable_get_iter_from_pointer_position (self, &_tmp1_);
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	iter = _tmp1_;
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp2_) {
#line 400 "gitg-diff-view-file-selectable.c"
		GtkTextIter _tmp3_ = {0};
		gboolean _tmp4_ = FALSE;
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp3_ = iter;
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp4_ = gitg_diff_view_file_selectable_get_line_is_hunk (self, &_tmp3_);
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp0_ = _tmp4_;
#line 409 "gitg-diff-view-file-selectable.c"
	} else {
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp0_ = FALSE;
#line 413 "gitg-diff-view-file-selectable.c"
	}
#line 204 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	is_hunk = _tmp0_;
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = state;
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if ((_tmp6_ & GDK_MOD1_MASK) != 0) {
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp5_ = TRUE;
#line 423 "gitg-diff-view-file-selectable.c"
	} else {
		GitgDiffSelectionMode _tmp7_ = 0;
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp7_ = self->priv->d_selection_mode;
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp5_ = _tmp7_ == GITG_DIFF_SELECTION_MODE_DESELECTING;
#line 430 "gitg-diff-view-file-selectable.c"
	}
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp5_) {
#line 434 "gitg-diff-view-file-selectable.c"
		gboolean _tmp8_ = FALSE;
#line 208 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp8_ = is_hunk;
#line 208 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (_tmp8_) {
#line 440 "gitg-diff-view-file-selectable.c"
			GdkCursor* _tmp9_ = NULL;
			GdkCursor* _tmp10_ = NULL;
			GdkCursor* _tmp11_ = NULL;
#line 210 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp9_ = gitg_diff_view_file_selectable_get_subtract_cursor_hand (self);
#line 210 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp10_ = _tmp9_;
#line 210 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp11_ = _tmp10_;
#line 210 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			gitg_diff_view_file_selectable_update_cursor (self, _tmp11_);
#line 210 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_g_object_unref0 (_tmp11_);
#line 454 "gitg-diff-view-file-selectable.c"
		} else {
			GdkCursor* _tmp12_ = NULL;
			GdkCursor* _tmp13_ = NULL;
			GdkCursor* _tmp14_ = NULL;
#line 214 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp12_ = gitg_diff_view_file_selectable_get_subtract_cursor_ptr (self);
#line 214 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp13_ = _tmp12_;
#line 214 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp14_ = _tmp13_;
#line 214 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			gitg_diff_view_file_selectable_update_cursor (self, _tmp14_);
#line 214 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_g_object_unref0 (_tmp14_);
#line 469 "gitg-diff-view-file-selectable.c"
		}
	} else {
		GdkCursor* _tmp15_ = NULL;
		gboolean _tmp16_ = FALSE;
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp16_ = is_hunk;
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (_tmp16_) {
#line 478 "gitg-diff-view-file-selectable.c"
			GdkCursor* _tmp17_ = NULL;
			GdkCursor* _tmp18_ = NULL;
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp17_ = gitg_diff_view_file_selectable_get_cursor_hand (self);
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp18_ = _tmp17_;
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_g_object_unref0 (_tmp15_);
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp15_ = _tmp18_;
#line 489 "gitg-diff-view-file-selectable.c"
		} else {
			GdkCursor* _tmp19_ = NULL;
			GdkCursor* _tmp20_ = NULL;
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp19_ = gitg_diff_view_file_selectable_get_cursor_ptr (self);
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp20_ = _tmp19_;
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_g_object_unref0 (_tmp15_);
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp15_ = _tmp20_;
#line 501 "gitg-diff-view-file-selectable.c"
		}
#line 219 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_update_cursor (self, _tmp15_);
#line 206 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (_tmp15_);
#line 507 "gitg-diff-view-file-selectable.c"
	}
}


static void gitg_diff_view_file_selectable_update_theme (GitgDiffViewFileSelectable* self) {
	GtkSourceMarkAttributes* selection_attributes = NULL;
	GtkSourceMarkAttributes* _tmp0_ = NULL;
	GtkStyleContext* context = NULL;
	GtkSourceView* _tmp1_ = NULL;
	GtkStyleContext* _tmp2_ = NULL;
	GtkStyleContext* _tmp3_ = NULL;
	GdkRGBA theme_selected_bg_color = {0};
	GdkRGBA theme_selected_fg_color = {0};
	GtkStyleContext* _tmp4_ = NULL;
	GdkRGBA _tmp5_ = {0};
	gboolean _tmp6_ = FALSE;
	GtkStyleContext* _tmp9_ = NULL;
	GdkRGBA _tmp10_ = {0};
	gboolean _tmp11_ = FALSE;
	GtkSourceView* _tmp14_ = NULL;
	const gchar* _tmp15_ = NULL;
	GtkSourceMarkAttributes* _tmp16_ = NULL;
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 225 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = gtk_source_mark_attributes_new ();
#line 225 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	selection_attributes = _tmp0_;
#line 226 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = self->priv->_source_view;
#line 226 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gtk_widget_get_style_context ((GtkWidget*) _tmp1_);
#line 226 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 226 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	context = _tmp3_;
#line 230 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = context;
#line 230 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = gtk_style_context_lookup_color (_tmp4_, "theme_selected_bg_color", &_tmp5_);
#line 230 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	theme_selected_bg_color = _tmp5_;
#line 230 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp6_) {
#line 552 "gitg-diff-view-file-selectable.c"
		GtkSourceMarkAttributes* _tmp7_ = NULL;
		GdkRGBA _tmp8_ = {0};
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp7_ = selection_attributes;
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp8_ = theme_selected_bg_color;
#line 232 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		g_object_set (_tmp7_, "background", &_tmp8_, NULL);
#line 561 "gitg-diff-view-file-selectable.c"
	}
#line 235 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = context;
#line 235 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp11_ = gtk_style_context_lookup_color (_tmp9_, "theme_selected_fg_color", &_tmp10_);
#line 235 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	theme_selected_fg_color = _tmp10_;
#line 235 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp11_) {
#line 571 "gitg-diff-view-file-selectable.c"
		GtkTextTag* _tmp12_ = NULL;
		GdkRGBA _tmp13_ = {0};
#line 237 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp12_ = self->priv->d_selection_tag;
#line 237 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp13_ = theme_selected_fg_color;
#line 237 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		g_object_set (_tmp12_, "foreground-rgba", &_tmp13_, NULL);
#line 580 "gitg-diff-view-file-selectable.c"
	}
#line 240 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp14_ = self->priv->_source_view;
#line 240 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp15_ = self->priv->d_selection_category;
#line 240 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp16_ = selection_attributes;
#line 240 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_source_view_set_mark_attributes (_tmp14_, _tmp15_, _tmp16_, 0);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (context);
#line 223 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (selection_attributes);
#line 594 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_get_line_selected (GitgDiffViewFileSelectable* self, GtkTextIter* iter) {
	gboolean result = FALSE;
	GtkTextIter start = {0};
	GtkTextIter _tmp0_ = {0};
	GtkSourceBuffer* buffer = NULL;
	GtkSourceView* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkSourceBuffer* _tmp4_ = NULL;
	GtkTextIter _tmp5_ = {0};
	const gchar* _tmp6_ = NULL;
	GSList* _tmp7_ = NULL;
	GSList* _tmp8_ = NULL;
	gboolean _tmp9_ = FALSE;
#line 243 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 243 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (iter != NULL, FALSE);
#line 245 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = *iter;
#line 245 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	start = _tmp0_;
#line 247 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_iter_set_line_offset (&start, 0);
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = self->priv->_source_view;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp1_);
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_;
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_source_buffer_get_type ()) ? ((GtkSourceBuffer*) _tmp3_) : NULL);
#line 249 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp4_;
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = start;
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = self->priv->d_selection_category;
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = gtk_source_buffer_get_source_marks_at_iter (buffer, &_tmp5_, _tmp6_);
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = _tmp7_;
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = _tmp8_ != NULL;
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_slist_free0 (_tmp8_);
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp9_;
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 251 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 650 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_get_line_is_diff (GitgDiffViewFileSelectable* self, GtkTextIter* iter) {
	gboolean result = FALSE;
	GtkTextIter start = {0};
	GtkTextIter _tmp0_ = {0};
	GtkSourceBuffer* buffer = NULL;
	GtkSourceView* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkSourceBuffer* _tmp4_ = NULL;
	gboolean _tmp5_ = FALSE;
	GtkSourceBuffer* _tmp6_ = NULL;
	GtkTextIter _tmp7_ = {0};
	GSList* _tmp8_ = NULL;
	GSList* _tmp9_ = NULL;
	gboolean _tmp10_ = FALSE;
#line 254 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 254 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (iter != NULL, FALSE);
#line 256 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = *iter;
#line 256 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	start = _tmp0_;
#line 258 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_iter_set_line_offset (&start, 0);
#line 260 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = self->priv->_source_view;
#line 260 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp1_);
#line 260 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_;
#line 260 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_source_buffer_get_type ()) ? ((GtkSourceBuffer*) _tmp3_) : NULL);
#line 260 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp4_;
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = buffer;
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = start;
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = gtk_source_buffer_get_source_marks_at_iter (_tmp6_, &_tmp7_, "added");
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = _tmp8_;
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp10_ = _tmp9_ != NULL;
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_slist_free0 (_tmp9_);
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp10_) {
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp5_ = TRUE;
#line 705 "gitg-diff-view-file-selectable.c"
	} else {
		GtkSourceBuffer* _tmp11_ = NULL;
		GtkTextIter _tmp12_ = {0};
		GSList* _tmp13_ = NULL;
		GSList* _tmp14_ = NULL;
#line 263 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp11_ = buffer;
#line 263 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp12_ = start;
#line 263 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp13_ = gtk_source_buffer_get_source_marks_at_iter (_tmp11_, &_tmp12_, "removed");
#line 263 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp14_ = _tmp13_;
#line 263 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp5_ = _tmp14_ != NULL;
#line 263 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_slist_free0 (_tmp14_);
#line 723 "gitg-diff-view-file-selectable.c"
	}
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp5_;
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 262 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 731 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_get_line_is_hunk (GitgDiffViewFileSelectable* self, GtkTextIter* iter) {
	gboolean result = FALSE;
	GtkTextIter start = {0};
	GtkTextIter _tmp0_ = {0};
	GtkSourceBuffer* buffer = NULL;
	GtkSourceView* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkSourceBuffer* _tmp4_ = NULL;
	GtkTextIter _tmp5_ = {0};
	GSList* _tmp6_ = NULL;
	GSList* _tmp7_ = NULL;
	gboolean _tmp8_ = FALSE;
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 266 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (iter != NULL, FALSE);
#line 268 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = *iter;
#line 268 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	start = _tmp0_;
#line 270 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_iter_set_line_offset (&start, 0);
#line 272 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = self->priv->_source_view;
#line 272 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp1_);
#line 272 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_;
#line 272 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_source_buffer_get_type ()) ? ((GtkSourceBuffer*) _tmp3_) : NULL);
#line 272 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp4_;
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = start;
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = gtk_source_buffer_get_source_marks_at_iter (buffer, &_tmp5_, "header");
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = _tmp6_;
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = _tmp7_ != NULL;
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_slist_free0 (_tmp7_);
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp8_;
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 274 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 784 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_get_iter_from_pointer_position (GitgDiffViewFileSelectable* self, GtkTextIter* iter) {
	GtkTextIter _vala_iter = {0};
	gboolean result = FALSE;
	GdkWindow* win = NULL;
	GtkSourceView* _tmp0_ = NULL;
	GdkWindow* _tmp1_ = NULL;
	GdkWindow* _tmp2_ = NULL;
	gint x = 0;
	gint y = 0;
	gint width = 0;
	gint height = 0;
	GtkTextIter dummy_iter = {0};
	GtkTextIter _tmp3_ = {0};
	GdkWindow* _tmp4_ = NULL;
	gint _tmp5_ = 0;
	GdkWindow* _tmp6_ = NULL;
	gint _tmp7_ = 0;
	GdkDevice* pointer = NULL;
	GdkDisplay* _tmp8_ = NULL;
	GdkDeviceManager* _tmp9_ = NULL;
	GdkDevice* _tmp10_ = NULL;
	GdkDevice* _tmp11_ = NULL;
	GdkWindow* _tmp12_ = NULL;
	GdkDevice* _tmp13_ = NULL;
	gint _tmp14_ = 0;
	gint _tmp15_ = 0;
	gboolean _tmp16_ = FALSE;
	gboolean _tmp17_ = FALSE;
	gboolean _tmp18_ = FALSE;
	gint _tmp19_ = 0;
	gint _tmp25_ = 0;
	gint _tmp26_ = 0;
	GtkTextIter _tmp27_ = {0};
	gboolean _tmp28_ = FALSE;
#line 277 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 279 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 279 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = gtk_text_view_get_window ((GtkTextView*) _tmp0_, GTK_TEXT_WINDOW_TEXT);
#line 279 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 279 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	win = _tmp2_;
#line 284 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	memset (&dummy_iter, 0, sizeof (GtkTextIter));
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = dummy_iter;
#line 285 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_vala_iter = _tmp3_;
#line 287 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = win;
#line 287 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = gdk_window_get_width (_tmp4_);
#line 287 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	width = _tmp5_;
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = win;
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = gdk_window_get_height (_tmp6_);
#line 288 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	height = _tmp7_;
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = gdk_display_get_default ();
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = gdk_display_get_device_manager (_tmp8_);
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp10_ = gdk_device_manager_get_client_pointer (_tmp9_);
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp11_ = _g_object_ref0 (_tmp10_);
#line 290 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	pointer = _tmp11_;
#line 291 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp12_ = win;
#line 291 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp13_ = pointer;
#line 291 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gdk_window_get_device_position (_tmp12_, _tmp13_, &_tmp14_, &_tmp15_, NULL);
#line 291 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	x = _tmp14_;
#line 291 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	y = _tmp15_;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp19_ = x;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp19_ < 0) {
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp18_ = TRUE;
#line 876 "gitg-diff-view-file-selectable.c"
	} else {
		gint _tmp20_ = 0;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp20_ = y;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp18_ = _tmp20_ < 0;
#line 883 "gitg-diff-view-file-selectable.c"
	}
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp18_) {
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp17_ = TRUE;
#line 889 "gitg-diff-view-file-selectable.c"
	} else {
		gint _tmp21_ = 0;
		gint _tmp22_ = 0;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp21_ = x;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp22_ = width;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp17_ = _tmp21_ > _tmp22_;
#line 899 "gitg-diff-view-file-selectable.c"
	}
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp17_) {
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp16_ = TRUE;
#line 905 "gitg-diff-view-file-selectable.c"
	} else {
		gint _tmp23_ = 0;
		gint _tmp24_ = 0;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp23_ = y;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp24_ = height;
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp16_ = _tmp23_ > _tmp24_;
#line 915 "gitg-diff-view-file-selectable.c"
	}
#line 293 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp16_) {
#line 295 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = FALSE;
#line 295 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (pointer);
#line 295 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (win);
#line 295 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (iter) {
#line 295 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			*iter = _vala_iter;
#line 929 "gitg-diff-view-file-selectable.c"
		}
#line 295 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 933 "gitg-diff-view-file-selectable.c"
	}
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp25_ = x;
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp26_ = y;
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp28_ = gitg_diff_view_file_selectable_get_iter_from_event_position (self, &_tmp27_, _tmp25_, _tmp26_);
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_vala_iter = _tmp27_;
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp28_;
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (pointer);
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (win);
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (iter) {
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		*iter = _vala_iter;
#line 953 "gitg-diff-view-file-selectable.c"
	}
#line 298 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 957 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_get_iter_from_event_position (GitgDiffViewFileSelectable* self, GtkTextIter* iter, gint x, gint y) {
	GtkTextIter _vala_iter = {0};
	gboolean result = FALSE;
	gint win_x = 0;
	gint win_y = 0;
	GtkSourceView* _tmp0_ = NULL;
	gint _tmp1_ = 0;
	gint _tmp2_ = 0;
	gint _tmp3_ = 0;
	gint _tmp4_ = 0;
	GtkSourceView* _tmp5_ = NULL;
	GtkTextIter _tmp6_ = {0};
#line 301 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 305 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 305 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = x;
#line 305 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = y;
#line 305 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_view_window_to_buffer_coords ((GtkTextView*) _tmp0_, GTK_TEXT_WINDOW_TEXT, _tmp1_, _tmp2_, &_tmp3_, &_tmp4_);
#line 305 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	win_x = _tmp3_;
#line 305 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	win_y = _tmp4_;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = self->priv->_source_view;
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_view_get_line_at_y ((GtkTextView*) _tmp5_, &_tmp6_, win_y, NULL);
#line 306 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_vala_iter = _tmp6_;
#line 308 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = TRUE;
#line 308 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (iter) {
#line 308 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		*iter = _vala_iter;
#line 999 "gitg-diff-view-file-selectable.c"
	}
#line 308 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 1003 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_update_selection_range (GitgDiffViewFileSelectable* self, GtkTextIter* start, GtkTextIter* end, gboolean select) {
	GtkSourceBuffer* buffer = NULL;
	GtkSourceView* _tmp0_ = NULL;
	GtkTextBuffer* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkSourceBuffer* _tmp3_ = NULL;
	GtkTextIter real_start = {0};
	GtkTextIter real_end = {0};
	GtkTextIter _tmp4_ = {0};
	GtkTextIter _tmp5_ = {0};
	GtkTextIter _tmp6_ = {0};
	gboolean _tmp7_ = FALSE;
	gint start_line = 0;
	gint _tmp8_ = 0;
	gint end_line = 0;
	gint _tmp9_ = 0;
	GtkTextIter current = {0};
	GtkTextIter _tmp10_ = {0};
	gboolean _tmp34_ = FALSE;
#line 311 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 311 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (start != NULL);
#line 311 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (end != NULL);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp0_);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = _tmp1_;
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_source_buffer_get_type ()) ? ((GtkSourceBuffer*) _tmp2_) : NULL);
#line 313 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp3_;
#line 317 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = *start;
#line 317 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	real_start = _tmp4_;
#line 318 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = *end;
#line 318 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	real_end = _tmp5_;
#line 320 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = real_end;
#line 320 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_iter_order (&real_start, &_tmp6_);
#line 321 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_iter_set_line_offset (&real_start, 0);
#line 323 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = gtk_text_iter_ends_line (&real_end);
#line 323 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (!_tmp7_) {
#line 325 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_text_iter_forward_to_line_end (&real_end);
#line 1062 "gitg-diff-view-file-selectable.c"
	}
#line 328 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = gtk_text_iter_get_line (&real_start);
#line 328 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	start_line = _tmp8_;
#line 329 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = gtk_text_iter_get_line (&real_end);
#line 329 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	end_line = _tmp9_;
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp10_ = real_start;
#line 331 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	current = _tmp10_;
#line 333 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	while (TRUE) {
#line 1078 "gitg-diff-view-file-selectable.c"
		gint _tmp11_ = 0;
		gint _tmp12_ = 0;
		GtkTextIter _tmp13_ = {0};
		gboolean _tmp14_ = FALSE;
		gboolean _tmp32_ = FALSE;
		gint _tmp33_ = 0;
#line 333 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp11_ = start_line;
#line 333 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp12_ = end_line;
#line 333 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (!(_tmp11_ <= _tmp12_)) {
#line 333 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			break;
#line 1093 "gitg-diff-view-file-selectable.c"
		}
#line 335 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp13_ = current;
#line 335 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp14_ = gitg_diff_view_file_selectable_get_line_is_diff (self, &_tmp13_);
#line 335 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (_tmp14_) {
#line 1101 "gitg-diff-view-file-selectable.c"
			GeeHashMap* _tmp15_ = NULL;
			gint _tmp16_ = 0;
			gboolean _tmp17_ = FALSE;
			gboolean _tmp22_ = FALSE;
#line 337 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp15_ = self->priv->d_originally_selected;
#line 337 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp16_ = start_line;
#line 337 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp17_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp15_, (gpointer) ((gintptr) _tmp16_));
#line 337 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			if (!_tmp17_) {
#line 1114 "gitg-diff-view-file-selectable.c"
				GeeHashMap* _tmp18_ = NULL;
				gint _tmp19_ = 0;
				GtkTextIter _tmp20_ = {0};
				gboolean _tmp21_ = FALSE;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp18_ = self->priv->d_originally_selected;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp19_ = start_line;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp20_ = current;
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp21_ = gitg_diff_view_file_selectable_get_line_selected (self, &_tmp20_);
#line 339 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				gee_abstract_map_set ((GeeAbstractMap*) _tmp18_, (gpointer) ((gintptr) _tmp19_), (gpointer) ((gintptr) _tmp21_));
#line 1129 "gitg-diff-view-file-selectable.c"
			}
#line 342 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp22_ = select;
#line 342 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			if (_tmp22_) {
#line 1135 "gitg-diff-view-file-selectable.c"
				GtkSourceBuffer* _tmp23_ = NULL;
				const gchar* _tmp24_ = NULL;
				GtkTextIter _tmp25_ = {0};
				GtkTextIter line_end = {0};
				GtkTextIter _tmp26_ = {0};
				gboolean _tmp27_ = FALSE;
				GtkSourceBuffer* _tmp28_ = NULL;
				GtkTextTag* _tmp29_ = NULL;
				GtkTextIter _tmp30_ = {0};
				GtkTextIter _tmp31_ = {0};
#line 344 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp23_ = buffer;
#line 344 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp24_ = self->priv->d_selection_category;
#line 344 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp25_ = current;
#line 344 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				gtk_source_buffer_create_source_mark (_tmp23_, NULL, _tmp24_, &_tmp25_);
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp26_ = current;
#line 346 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				line_end = _tmp26_;
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp27_ = gtk_text_iter_ends_line (&line_end);
#line 348 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				if (!_tmp27_) {
#line 350 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
					gtk_text_iter_forward_to_line_end (&line_end);
#line 1164 "gitg-diff-view-file-selectable.c"
				}
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp28_ = buffer;
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp29_ = self->priv->d_selection_tag;
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp30_ = current;
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				_tmp31_ = line_end;
#line 353 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
				gtk_text_buffer_apply_tag ((GtkTextBuffer*) _tmp28_, _tmp29_, &_tmp30_, &_tmp31_);
#line 1176 "gitg-diff-view-file-selectable.c"
			}
		}
#line 357 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp32_ = gtk_text_iter_forward_line (&current);
#line 357 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (!_tmp32_) {
#line 359 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			break;
#line 1185 "gitg-diff-view-file-selectable.c"
		}
#line 362 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp33_ = start_line;
#line 362 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		start_line = _tmp33_ + 1;
#line 1191 "gitg-diff-view-file-selectable.c"
	}
#line 365 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp34_ = select;
#line 365 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (!_tmp34_) {
#line 1197 "gitg-diff-view-file-selectable.c"
		GtkSourceBuffer* _tmp35_ = NULL;
		GtkTextIter _tmp36_ = {0};
		GtkTextIter _tmp37_ = {0};
		const gchar* _tmp38_ = NULL;
		GtkSourceBuffer* _tmp39_ = NULL;
		GtkTextTag* _tmp40_ = NULL;
		GtkTextIter _tmp41_ = {0};
		GtkTextIter _tmp42_ = {0};
#line 367 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp35_ = buffer;
#line 367 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp36_ = real_start;
#line 367 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp37_ = real_end;
#line 367 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp38_ = self->priv->d_selection_category;
#line 367 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_source_buffer_remove_source_marks (_tmp35_, &_tmp36_, &_tmp37_, _tmp38_);
#line 368 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp39_ = buffer;
#line 368 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp40_ = self->priv->d_selection_tag;
#line 368 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp41_ = real_start;
#line 368 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp42_ = real_end;
#line 368 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_text_buffer_remove_tag ((GtkTextBuffer*) _tmp39_, _tmp40_, &_tmp41_, &_tmp42_);
#line 1226 "gitg-diff-view-file-selectable.c"
	}
#line 311 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 1230 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_clear_original_selection (GitgDiffViewFileSelectable* self, GtkTextIter* start, GtkTextIter* end, gboolean include_end) {
	GtkTextIter current = {0};
	GtkTextIter _tmp0_ = {0};
	gint end_line = 0;
	gint _tmp1_ = 0;
	gint current_line = 0;
	gint _tmp2_ = 0;
	gboolean _tmp3_ = FALSE;
#line 372 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 372 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (start != NULL);
#line 372 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (end != NULL);
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = *start;
#line 374 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	current = _tmp0_;
#line 375 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_iter_set_line_offset (&current, 0);
#line 377 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = gtk_text_iter_get_line (end);
#line 377 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	end_line = _tmp1_;
#line 378 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gtk_text_iter_get_line (&current);
#line 378 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	current_line = _tmp2_;
#line 380 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = include_end;
#line 380 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp3_) {
#line 1266 "gitg-diff-view-file-selectable.c"
		gint _tmp4_ = 0;
#line 382 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp4_ = end_line;
#line 382 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		end_line = _tmp4_ + 1;
#line 1272 "gitg-diff-view-file-selectable.c"
	}
#line 385 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	while (TRUE) {
#line 1276 "gitg-diff-view-file-selectable.c"
		gint _tmp5_ = 0;
		gint _tmp6_ = 0;
		gboolean originally_selected = FALSE;
		GeeHashMap* _tmp7_ = NULL;
		gint _tmp8_ = 0;
		gpointer _tmp9_ = NULL;
		GtkTextIter _tmp10_ = {0};
		GtkTextIter _tmp11_ = {0};
		gboolean _tmp12_ = FALSE;
		gint _tmp13_ = 0;
#line 385 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp5_ = current_line;
#line 385 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp6_ = end_line;
#line 385 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (!(_tmp5_ < _tmp6_)) {
#line 385 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			break;
#line 1295 "gitg-diff-view-file-selectable.c"
		}
#line 387 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp7_ = self->priv->d_originally_selected;
#line 387 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp8_ = current_line;
#line 387 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp9_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp7_, (gpointer) ((gintptr) _tmp8_));
#line 387 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		originally_selected = (gboolean) ((gintptr) _tmp9_);
#line 389 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp10_ = current;
#line 389 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp11_ = current;
#line 389 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp12_ = originally_selected;
#line 389 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_update_selection_range (self, &_tmp10_, &_tmp11_, _tmp12_);
#line 391 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_text_iter_forward_line (&current);
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp13_ = current_line;
#line 392 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		current_line = _tmp13_ + 1;
#line 1319 "gitg-diff-view-file-selectable.c"
	}
}


static void gitg_diff_view_file_selectable_update_selection_hunk (GitgDiffViewFileSelectable* self, GtkTextIter* iter, gboolean select) {
	GtkTextIter end = {0};
	GtkTextIter _tmp0_ = {0};
	GtkSourceBuffer* buffer = NULL;
	GtkSourceView* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkSourceBuffer* _tmp4_ = NULL;
	GtkSourceBuffer* _tmp5_ = NULL;
	gboolean _tmp6_ = FALSE;
	GtkTextIter _tmp7_ = {0};
	GtkTextIter _tmp8_ = {0};
	gboolean _tmp9_ = FALSE;
#line 396 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 396 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (iter != NULL);
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = *iter;
#line 398 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	end = _tmp0_;
#line 400 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_iter_forward_line (&end);
#line 402 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = self->priv->_source_view;
#line 402 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp1_);
#line 402 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_;
#line 402 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_source_buffer_get_type ()) ? ((GtkSourceBuffer*) _tmp3_) : NULL);
#line 402 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp4_;
#line 404 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = buffer;
#line 404 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = gtk_source_buffer_forward_iter_to_source_mark (_tmp5_, &end, "header");
#line 404 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (!_tmp6_) {
#line 406 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_text_iter_forward_to_end (&end);
#line 1365 "gitg-diff-view-file-selectable.c"
	}
#line 409 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = *iter;
#line 409 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = end;
#line 409 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = select;
#line 409 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_selection_range (self, &_tmp7_, &_tmp8_, _tmp9_);
#line 396 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 1377 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_button_press_event_on_view (GitgDiffViewFileSelectable* self, GdkEventButton* event) {
	gboolean result = FALSE;
	GdkEventButton* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	GtkTextIter iter = {0};
	GtkTextIter _tmp2_ = {0};
	gboolean _tmp3_ = FALSE;
	gboolean select = FALSE;
	GdkEventButton* _tmp4_ = NULL;
	GdkModifierType _tmp5_ = 0;
	GtkTextIter _tmp6_ = {0};
	gboolean _tmp7_ = FALSE;
	gboolean _tmp10_ = FALSE;
	GtkTextBuffer* buffer = NULL;
	GtkSourceView* _tmp11_ = NULL;
	GtkTextBuffer* _tmp12_ = NULL;
	GtkTextBuffer* _tmp13_ = NULL;
	GtkTextBuffer* _tmp14_ = NULL;
	GtkTextBuffer* _tmp15_ = NULL;
	GtkTextIter _tmp16_ = {0};
	GtkTextMark* _tmp17_ = NULL;
	GtkTextMark* _tmp18_ = NULL;
	GtkTextBuffer* _tmp19_ = NULL;
	GtkTextIter _tmp20_ = {0};
	GtkTextMark* _tmp21_ = NULL;
	GtkTextMark* _tmp22_ = NULL;
	GtkTextIter _tmp23_ = {0};
	GdkEventButton* _tmp24_ = NULL;
	GdkModifierType _tmp25_ = 0;
#line 412 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 412 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 414 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = event;
#line 414 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _tmp0_->button;
#line 414 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp1_ != ((guint) 1)) {
#line 416 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = FALSE;
#line 416 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 1424 "gitg-diff-view-file-selectable.c"
	}
#line 421 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = gitg_diff_view_file_selectable_get_iter_from_pointer_position (self, &_tmp2_);
#line 421 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	iter = _tmp2_;
#line 421 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (!_tmp3_) {
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = FALSE;
#line 423 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 1436 "gitg-diff-view-file-selectable.c"
	}
#line 426 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = event;
#line 426 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = _tmp4_->state;
#line 426 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	select = (_tmp5_ & GDK_MOD1_MASK) == 0;
#line 428 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = iter;
#line 428 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = gitg_diff_view_file_selectable_get_line_is_hunk (self, &_tmp6_);
#line 428 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp7_) {
#line 1450 "gitg-diff-view-file-selectable.c"
		GtkTextIter _tmp8_ = {0};
		gboolean _tmp9_ = FALSE;
#line 430 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp8_ = iter;
#line 430 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp9_ = select;
#line 430 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_update_selection_hunk (self, &_tmp8_, _tmp9_);
#line 431 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = TRUE;
#line 431 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 1463 "gitg-diff-view-file-selectable.c"
	}
#line 434 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp10_ = select;
#line 434 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp10_) {
#line 436 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_selection_mode = GITG_DIFF_SELECTION_MODE_SELECTING;
#line 1471 "gitg-diff-view-file-selectable.c"
	} else {
#line 440 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_selection_mode = GITG_DIFF_SELECTION_MODE_DESELECTING;
#line 1475 "gitg-diff-view-file-selectable.c"
	}
#line 443 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp11_ = self->priv->_source_view;
#line 443 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp12_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp11_);
#line 443 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp13_ = _tmp12_;
#line 443 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp14_ = _g_object_ref0 (_tmp13_);
#line 443 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp14_;
#line 445 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp15_ = buffer;
#line 445 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp16_ = iter;
#line 445 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp17_ = gtk_text_buffer_create_mark (_tmp15_, NULL, &_tmp16_, FALSE);
#line 445 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp18_ = _g_object_ref0 (_tmp17_);
#line 445 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_start_selection_mark);
#line 445 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->d_start_selection_mark = _tmp18_;
#line 446 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp19_ = buffer;
#line 446 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp20_ = iter;
#line 446 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp21_ = gtk_text_buffer_create_mark (_tmp19_, NULL, &_tmp20_, FALSE);
#line 446 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp22_ = _g_object_ref0 (_tmp21_);
#line 446 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_end_selection_mark);
#line 446 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->d_end_selection_mark = _tmp22_;
#line 448 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp23_ = iter;
#line 448 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_selection (self, &_tmp23_);
#line 449 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp24_ = event;
#line 449 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp25_ = _tmp24_->state;
#line 449 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_cursor_for_state (self, _tmp25_);
#line 451 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = TRUE;
#line 451 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 451 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 1527 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_update_selection (GitgDiffViewFileSelectable* self, GtkTextIter* cursor) {
	GtkTextBuffer* buffer = NULL;
	GtkSourceView* _tmp0_ = NULL;
	GtkTextBuffer* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkTextIter start = {0};
	GtkTextIter end = {0};
	GtkTextBuffer* _tmp4_ = NULL;
	GtkTextMark* _tmp5_ = NULL;
	GtkTextIter _tmp6_ = {0};
	GtkTextBuffer* _tmp7_ = NULL;
	GtkTextMark* _tmp8_ = NULL;
	GtkTextIter _tmp9_ = {0};
	gint _tmp10_ = 0;
	gint _tmp11_ = 0;
	GtkTextIter _tmp21_ = {0};
	GtkTextIter _tmp22_ = {0};
	GitgDiffSelectionMode _tmp23_ = 0;
	GtkTextBuffer* _tmp24_ = NULL;
	GtkTextMark* _tmp25_ = NULL;
	GtkTextIter _tmp26_ = {0};
#line 454 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 454 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (cursor != NULL);
#line 456 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 456 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp0_);
#line 456 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = _tmp1_;
#line 456 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 456 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp3_;
#line 460 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = buffer;
#line 460 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = self->priv->d_start_selection_mark;
#line 460 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_buffer_get_iter_at_mark (_tmp4_, &_tmp6_, _tmp5_);
#line 460 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	start = _tmp6_;
#line 461 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = buffer;
#line 461 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = self->priv->d_end_selection_mark;
#line 461 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_buffer_get_iter_at_mark (_tmp7_, &_tmp9_, _tmp8_);
#line 461 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	end = _tmp9_;
#line 464 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp10_ = gtk_text_iter_get_line (&start);
#line 464 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp11_ = gtk_text_iter_get_line (&end);
#line 464 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp10_ < _tmp11_) {
#line 1589 "gitg-diff-view-file-selectable.c"
		GtkTextIter _tmp12_ = {0};
		gint _tmp13_ = 0;
		gint _tmp14_ = 0;
		GtkTextIter next = {0};
		GtkTextIter _tmp17_ = {0};
		GtkTextIter _tmp18_ = {0};
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp13_ = gtk_text_iter_get_line (&start);
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp14_ = gtk_text_iter_get_line (cursor);
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (_tmp13_ < _tmp14_) {
#line 1602 "gitg-diff-view-file-selectable.c"
			GtkTextIter _tmp15_ = {0};
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp15_ = *cursor;
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp12_ = _tmp15_;
#line 1608 "gitg-diff-view-file-selectable.c"
		} else {
			GtkTextIter _tmp16_ = {0};
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp16_ = start;
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			_tmp12_ = _tmp16_;
#line 1615 "gitg-diff-view-file-selectable.c"
		}
#line 466 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		next = _tmp12_;
#line 467 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_text_iter_forward_line (&next);
#line 469 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp17_ = next;
#line 469 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp18_ = end;
#line 469 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_clear_original_selection (self, &_tmp17_, &_tmp18_, TRUE);
#line 1627 "gitg-diff-view-file-selectable.c"
	} else {
		GtkTextIter _tmp19_ = {0};
		GtkTextIter _tmp20_ = {0};
#line 473 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp19_ = end;
#line 473 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp20_ = *cursor;
#line 473 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_clear_original_selection (self, &_tmp19_, &_tmp20_, FALSE);
#line 1637 "gitg-diff-view-file-selectable.c"
	}
#line 476 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp21_ = start;
#line 476 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp22_ = *cursor;
#line 476 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp23_ = self->priv->d_selection_mode;
#line 476 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_selection_range (self, &_tmp21_, &_tmp22_, _tmp23_ == GITG_DIFF_SELECTION_MODE_SELECTING);
#line 477 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp24_ = buffer;
#line 477 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp25_ = self->priv->d_end_selection_mark;
#line 477 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp26_ = *cursor;
#line 477 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_buffer_move_mark (_tmp24_, _tmp25_, &_tmp26_);
#line 454 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 1657 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_update_selection_event (GitgDiffViewFileSelectable* self, GdkModifierType state, gint x, gint y) {
	gboolean result = FALSE;
	GtkTextIter iter = {0};
	gint _tmp0_ = 0;
	gint _tmp1_ = 0;
	GtkTextIter _tmp2_ = {0};
	gboolean _tmp3_ = FALSE;
	GdkModifierType _tmp4_ = 0;
	GitgDiffSelectionMode _tmp5_ = 0;
	GtkTextIter _tmp6_ = {0};
#line 480 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 484 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = x;
#line 484 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = y;
#line 484 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = gitg_diff_view_file_selectable_get_iter_from_event_position (self, &_tmp2_, _tmp0_, _tmp1_);
#line 484 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	iter = _tmp2_;
#line 484 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (!_tmp3_) {
#line 486 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = FALSE;
#line 486 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 1687 "gitg-diff-view-file-selectable.c"
	}
#line 489 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = state;
#line 489 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_cursor_for_state (self, _tmp4_);
#line 491 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = self->priv->d_selection_mode;
#line 491 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp5_ == GITG_DIFF_SELECTION_MODE_NONE) {
#line 493 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = FALSE;
#line 493 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 1701 "gitg-diff-view-file-selectable.c"
	}
#line 496 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = iter;
#line 496 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_selection (self, &_tmp6_);
#line 497 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = TRUE;
#line 497 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 1711 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_motion_notify_event_on_view (GitgDiffViewFileSelectable* self, GdkEventMotion* event) {
	gboolean result = FALSE;
	GdkEventMotion* _tmp0_ = NULL;
	GdkModifierType _tmp1_ = 0;
	GdkEventMotion* _tmp2_ = NULL;
	gdouble _tmp3_ = 0.0;
	GdkEventMotion* _tmp4_ = NULL;
	gdouble _tmp5_ = 0.0;
	gboolean _tmp6_ = FALSE;
#line 500 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 500 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = event;
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _tmp0_->state;
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = event;
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_->x;
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = event;
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = _tmp4_->y;
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = gitg_diff_view_file_selectable_update_selection_event (self, _tmp1_, (gint) _tmp3_, (gint) _tmp5_);
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp6_;
#line 502 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 1746 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_leave_notify_event_on_view (GitgDiffViewFileSelectable* self, GdkEventCrossing* event) {
	gboolean result = FALSE;
	GdkEventCrossing* _tmp0_ = NULL;
	GdkModifierType _tmp1_ = 0;
	GdkEventCrossing* _tmp2_ = NULL;
	gdouble _tmp3_ = 0.0;
	GdkEventCrossing* _tmp4_ = NULL;
	gdouble _tmp5_ = 0.0;
	gboolean _tmp6_ = FALSE;
#line 505 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 505 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = event;
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _tmp0_->state;
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = event;
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_->x;
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = event;
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = _tmp4_->y;
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = gitg_diff_view_file_selectable_update_selection_event (self, _tmp1_, (gint) _tmp3_, (gint) _tmp5_);
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp6_;
#line 507 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 1781 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_enter_notify_event_on_view (GitgDiffViewFileSelectable* self, GdkEventCrossing* event) {
	gboolean result = FALSE;
	GdkEventCrossing* _tmp0_ = NULL;
	GdkModifierType _tmp1_ = 0;
	GdkEventCrossing* _tmp2_ = NULL;
	gdouble _tmp3_ = 0.0;
	GdkEventCrossing* _tmp4_ = NULL;
	gdouble _tmp5_ = 0.0;
	gboolean _tmp6_ = FALSE;
#line 510 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 510 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = event;
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _tmp0_->state;
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = event;
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_->x;
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = event;
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = _tmp4_->y;
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = gitg_diff_view_file_selectable_update_selection_event (self, _tmp1_, (gint) _tmp3_, (gint) _tmp5_);
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp6_;
#line 512 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 1816 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_update_has_selection (GitgDiffViewFileSelectable* self) {
	GtkTextBuffer* buffer = NULL;
	GtkSourceView* _tmp0_ = NULL;
	GtkTextBuffer* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkTextIter iter = {0};
	GtkTextBuffer* _tmp4_ = NULL;
	GtkTextIter _tmp5_ = {0};
	gboolean something_selected = FALSE;
	GtkTextIter _tmp6_ = {0};
	gboolean _tmp7_ = FALSE;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_ = FALSE;
#line 515 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 517 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 517 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp0_);
#line 517 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = _tmp1_;
#line 517 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 517 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp3_;
#line 520 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = buffer;
#line 520 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_buffer_get_start_iter (_tmp4_, &_tmp5_);
#line 520 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	iter = _tmp5_;
#line 522 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	something_selected = FALSE;
#line 524 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = iter;
#line 524 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = gitg_diff_view_file_selectable_get_line_selected (self, &_tmp6_);
#line 524 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp7_) {
#line 526 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		something_selected = TRUE;
#line 1862 "gitg-diff-view-file-selectable.c"
	} else {
		GtkTextBuffer* _tmp8_ = NULL;
		const gchar* _tmp9_ = NULL;
		gboolean _tmp10_ = FALSE;
#line 530 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp8_ = buffer;
#line 530 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp9_ = self->priv->d_selection_category;
#line 530 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp10_ = gtk_source_buffer_forward_iter_to_source_mark (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, gtk_source_buffer_get_type ()) ? ((GtkSourceBuffer*) _tmp8_) : NULL, &iter, _tmp9_);
#line 530 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		something_selected = _tmp10_;
#line 1875 "gitg-diff-view-file-selectable.c"
	}
#line 533 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp11_ = something_selected;
#line 533 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp12_ = self->priv->_has_selection;
#line 533 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp11_ != _tmp12_) {
#line 1883 "gitg-diff-view-file-selectable.c"
		gboolean _tmp13_ = FALSE;
#line 535 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp13_ = something_selected;
#line 535 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_set_has_selection (self, _tmp13_);
#line 1889 "gitg-diff-view-file-selectable.c"
	}
#line 515 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 1893 "gitg-diff-view-file-selectable.c"
}


static gboolean gitg_diff_view_file_selectable_button_release_event_on_view (GitgDiffViewFileSelectable* self, GdkEventButton* event) {
	gboolean result = FALSE;
	GdkEventButton* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	GtkTextBuffer* buffer = NULL;
	GtkSourceView* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkTextBuffer* _tmp4_ = NULL;
	GtkTextBuffer* _tmp5_ = NULL;
	GtkTextMark* _tmp6_ = NULL;
	GtkTextMark* _tmp9_ = NULL;
	GeeHashMap* _tmp12_ = NULL;
#line 539 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 539 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 541 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = event;
#line 541 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _tmp0_->button;
#line 541 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp1_ != ((guint) 1)) {
#line 543 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		result = FALSE;
#line 543 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		return result;
#line 1923 "gitg-diff-view-file-selectable.c"
	}
#line 546 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->d_selection_mode = GITG_DIFF_SELECTION_MODE_NONE;
#line 548 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = self->priv->_source_view;
#line 548 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp2_);
#line 548 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = _tmp3_;
#line 548 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = _g_object_ref0 (_tmp4_);
#line 548 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp5_;
#line 550 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = self->priv->d_start_selection_mark;
#line 550 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp6_ != NULL) {
#line 1941 "gitg-diff-view-file-selectable.c"
		GtkTextBuffer* _tmp7_ = NULL;
		GtkTextMark* _tmp8_ = NULL;
#line 552 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp7_ = buffer;
#line 552 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp8_ = self->priv->d_start_selection_mark;
#line 552 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_text_buffer_delete_mark (_tmp7_, _tmp8_);
#line 553 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (self->priv->d_start_selection_mark);
#line 553 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_start_selection_mark = NULL;
#line 1954 "gitg-diff-view-file-selectable.c"
	}
#line 556 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = self->priv->d_end_selection_mark;
#line 556 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp9_ != NULL) {
#line 1960 "gitg-diff-view-file-selectable.c"
		GtkTextBuffer* _tmp10_ = NULL;
		GtkTextMark* _tmp11_ = NULL;
#line 558 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp10_ = buffer;
#line 558 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp11_ = self->priv->d_end_selection_mark;
#line 558 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gtk_text_buffer_delete_mark (_tmp10_, _tmp11_);
#line 559 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (self->priv->d_end_selection_mark);
#line 559 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_end_selection_mark = NULL;
#line 1973 "gitg-diff-view-file-selectable.c"
	}
#line 562 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_has_selection (self);
#line 563 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp12_ = self->priv->d_originally_selected;
#line 563 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gee_abstract_map_clear ((GeeAbstractMap*) _tmp12_);
#line 565 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = TRUE;
#line 565 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 565 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 1987 "gitg-diff-view-file-selectable.c"
}


GtkSourceView* gitg_diff_view_file_selectable_get_source_view (GitgDiffViewFileSelectable* self) {
	GtkSourceView* result;
	GtkSourceView* _tmp0_ = NULL;
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp0_;
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2002 "gitg-diff-view-file-selectable.c"
}


void gitg_diff_view_file_selectable_set_source_view (GitgDiffViewFileSelectable* self, GtkSourceView* value) {
	GtkSourceView* _tmp0_ = NULL;
	GtkSourceView* _tmp1_ = NULL;
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = value;
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->_source_view);
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->_source_view = _tmp1_;
#line 41 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_object_notify ((GObject *) self, "source-view");
#line 2021 "gitg-diff-view-file-selectable.c"
}


gboolean gitg_diff_view_file_selectable_get_has_selection (GitgDiffViewFileSelectable* self) {
	gboolean result;
	gboolean _tmp0_ = FALSE;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_has_selection;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp0_;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2036 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_set_has_selection (GitgDiffViewFileSelectable* self, gboolean value) {
	gboolean _tmp0_ = FALSE;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_if_fail (self != NULL);
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = value;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->_has_selection = _tmp0_;
#line 46 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_object_notify ((GObject *) self, "has-selection");
#line 2050 "gitg-diff-view-file-selectable.c"
}


static void _vala_array_add3 (gint** array, int* length, int* size, gint value) {
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if ((*length) == (*size)) {
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		*array = g_renew (gint, *array, *size);
#line 2061 "gitg-diff-view-file-selectable.c"
	}
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	(*array)[(*length)++] = value;
#line 2065 "gitg-diff-view-file-selectable.c"
}


gint* gitg_diff_view_file_selectable_get_selected_lines (GitgDiffViewFileSelectable* self, int* result_length1) {
	gint* result;
	gint* ret = NULL;
	gint* _tmp0_ = NULL;
	gint ret_length1 = 0;
	gint _ret_size_ = 0;
	GtkTextIter iter = {0};
	GtkSourceBuffer* buffer = NULL;
	GtkSourceView* _tmp1_ = NULL;
	GtkTextBuffer* _tmp2_ = NULL;
	GtkTextBuffer* _tmp3_ = NULL;
	GtkSourceBuffer* _tmp4_ = NULL;
	GtkSourceBuffer* _tmp5_ = NULL;
	GtkTextIter _tmp6_ = {0};
	gint* _tmp12_ = NULL;
	gint _tmp12__length1 = 0;
#line 51 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 53 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = g_new0 (gint, 0);
#line 53 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	ret = _tmp0_;
#line 53 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	ret_length1 = 0;
#line 53 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_ret_size_ = ret_length1;
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = self->priv->_source_view;
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp1_);
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _tmp2_;
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_source_buffer_get_type ()) ? ((GtkSourceBuffer*) _tmp3_) : NULL);
#line 56 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	buffer = _tmp4_;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = buffer;
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gtk_text_buffer_get_start_iter ((GtkTextBuffer*) _tmp5_, &_tmp6_);
#line 58 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	iter = _tmp6_;
#line 60 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	while (TRUE) {
#line 2113 "gitg-diff-view-file-selectable.c"
		GtkSourceBuffer* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
		gboolean _tmp9_ = FALSE;
		gint* _tmp10_ = NULL;
		gint _tmp10__length1 = 0;
		gint _tmp11_ = 0;
#line 60 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp7_ = buffer;
#line 60 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp8_ = self->priv->d_selection_category;
#line 60 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp9_ = gtk_source_buffer_forward_iter_to_source_mark (_tmp7_, &iter, _tmp8_);
#line 60 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		if (!_tmp9_) {
#line 60 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
			break;
#line 2130 "gitg-diff-view-file-selectable.c"
		}
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp10_ = ret;
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp10__length1 = ret_length1;
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp11_ = gtk_text_iter_get_line (&iter);
#line 62 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_vala_array_add3 (&ret, &ret_length1, &_ret_size_, _tmp11_);
#line 2140 "gitg-diff-view-file-selectable.c"
	}
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp12_ = ret;
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp12__length1 = ret_length1;
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (result_length1) {
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		*result_length1 = _tmp12__length1;
#line 2150 "gitg-diff-view-file-selectable.c"
	}
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp12_;
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (buffer);
#line 65 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2158 "gitg-diff-view-file-selectable.c"
}


static GdkCursor* gitg_diff_view_file_selectable_get_cursor_ptr (GitgDiffViewFileSelectable* self) {
	GdkCursor* result;
	GdkCursor* _tmp0_ = NULL;
	GdkCursor* _tmp4_ = NULL;
	GdkCursor* _tmp5_ = NULL;
#line 136 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 138 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->d_cursor_ptr;
#line 138 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp0_ == NULL) {
#line 2173 "gitg-diff-view-file-selectable.c"
		GtkSourceView* _tmp1_ = NULL;
		GdkDisplay* _tmp2_ = NULL;
		GdkCursor* _tmp3_ = NULL;
#line 140 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp1_ = self->priv->_source_view;
#line 140 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp2_ = gtk_widget_get_display ((GtkWidget*) _tmp1_);
#line 140 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp3_ = gdk_cursor_new_for_display (_tmp2_, GDK_LEFT_PTR);
#line 140 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (self->priv->d_cursor_ptr);
#line 140 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_cursor_ptr = _tmp3_;
#line 2187 "gitg-diff-view-file-selectable.c"
	}
#line 143 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = self->priv->d_cursor_ptr;
#line 143 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = _g_object_ref0 (_tmp4_);
#line 143 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp5_;
#line 143 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2197 "gitg-diff-view-file-selectable.c"
}


static GdkCursor* gitg_diff_view_file_selectable_get_cursor_hand (GitgDiffViewFileSelectable* self) {
	GdkCursor* result;
	GdkCursor* _tmp0_ = NULL;
	GdkCursor* _tmp4_ = NULL;
	GdkCursor* _tmp5_ = NULL;
#line 149 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 151 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->d_cursor_hand;
#line 151 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp0_ == NULL) {
#line 2212 "gitg-diff-view-file-selectable.c"
		GtkSourceView* _tmp1_ = NULL;
		GdkDisplay* _tmp2_ = NULL;
		GdkCursor* _tmp3_ = NULL;
#line 153 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp1_ = self->priv->_source_view;
#line 153 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp2_ = gtk_widget_get_display ((GtkWidget*) _tmp1_);
#line 153 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp3_ = gdk_cursor_new_for_display (_tmp2_, GDK_HAND1);
#line 153 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (self->priv->d_cursor_hand);
#line 153 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_cursor_hand = _tmp3_;
#line 2226 "gitg-diff-view-file-selectable.c"
	}
#line 156 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = self->priv->d_cursor_hand;
#line 156 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = _g_object_ref0 (_tmp4_);
#line 156 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp5_;
#line 156 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2236 "gitg-diff-view-file-selectable.c"
}


static GdkCursor* gitg_diff_view_file_selectable_get_subtract_cursor_ptr (GitgDiffViewFileSelectable* self) {
	GdkCursor* result;
	GdkCursor* _tmp0_ = NULL;
	GdkCursor* _tmp2_ = NULL;
	GdkCursor* _tmp3_ = NULL;
#line 162 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 164 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->d_subtract_cursor_ptr;
#line 164 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp0_ == NULL) {
#line 2251 "gitg-diff-view-file-selectable.c"
		GdkCursor* _tmp1_ = NULL;
#line 166 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp1_ = gitg_diff_view_file_selectable_composite_subtract_cursor (self, GDK_LEFT_PTR);
#line 166 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (self->priv->d_subtract_cursor_ptr);
#line 166 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_subtract_cursor_ptr = _tmp1_;
#line 2259 "gitg-diff-view-file-selectable.c"
	}
#line 170 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = self->priv->d_subtract_cursor_ptr;
#line 170 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 170 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp3_;
#line 170 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2269 "gitg-diff-view-file-selectable.c"
}


static GdkCursor* gitg_diff_view_file_selectable_get_subtract_cursor_hand (GitgDiffViewFileSelectable* self) {
	GdkCursor* result;
	GdkCursor* _tmp0_ = NULL;
	GdkCursor* _tmp2_ = NULL;
	GdkCursor* _tmp3_ = NULL;
#line 176 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 178 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->d_subtract_cursor_hand;
#line 178 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	if (_tmp0_ == NULL) {
#line 2284 "gitg-diff-view-file-selectable.c"
		GdkCursor* _tmp1_ = NULL;
#line 180 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_tmp1_ = gitg_diff_view_file_selectable_composite_subtract_cursor (self, GDK_HAND1);
#line 180 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		_g_object_unref0 (self->priv->d_subtract_cursor_hand);
#line 180 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		self->priv->d_subtract_cursor_hand = _tmp1_;
#line 2292 "gitg-diff-view-file-selectable.c"
	}
#line 184 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = self->priv->d_subtract_cursor_hand;
#line 184 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 184 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	result = _tmp3_;
#line 184 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2302 "gitg-diff-view-file-selectable.c"
}


static gboolean _gitg_diff_view_file_selectable_button_press_event_on_view_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = gitg_diff_view_file_selectable_button_press_event_on_view ((GitgDiffViewFileSelectable*) self, event);
#line 76 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2311 "gitg-diff-view-file-selectable.c"
}


static gboolean _gitg_diff_view_file_selectable_motion_notify_event_on_view_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self) {
	gboolean result;
	result = gitg_diff_view_file_selectable_motion_notify_event_on_view ((GitgDiffViewFileSelectable*) self, event);
#line 77 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2320 "gitg-diff-view-file-selectable.c"
}


static gboolean _gitg_diff_view_file_selectable_leave_notify_event_on_view_gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
	gboolean result;
	result = gitg_diff_view_file_selectable_leave_notify_event_on_view ((GitgDiffViewFileSelectable*) self, event);
#line 78 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2329 "gitg-diff-view-file-selectable.c"
}


static gboolean _gitg_diff_view_file_selectable_enter_notify_event_on_view_gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
	gboolean result;
	result = gitg_diff_view_file_selectable_enter_notify_event_on_view ((GitgDiffViewFileSelectable*) self, event);
#line 79 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2338 "gitg-diff-view-file-selectable.c"
}


static gboolean _gitg_diff_view_file_selectable_button_release_event_on_view_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = gitg_diff_view_file_selectable_button_release_event_on_view ((GitgDiffViewFileSelectable*) self, event);
#line 80 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return result;
#line 2347 "gitg-diff-view-file-selectable.c"
}


static void _gitg_diff_view_file_selectable___lambda48_ (GitgDiffViewFileSelectable* self) {
	GdkCursor* _tmp0_ = NULL;
	GdkCursor* _tmp1_ = NULL;
	GdkCursor* _tmp2_ = NULL;
#line 83 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = gitg_diff_view_file_selectable_get_cursor_ptr (self);
#line 83 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _tmp0_;
#line 83 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = _tmp1_;
#line 83 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_cursor (self, _tmp2_);
#line 83 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (_tmp2_);
#line 2365 "gitg-diff-view-file-selectable.c"
}


static void __gitg_diff_view_file_selectable___lambda48__gtk_widget_realize (GtkWidget* _sender, gpointer self) {
#line 82 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_gitg_diff_view_file_selectable___lambda48_ ((GitgDiffViewFileSelectable*) self);
#line 2372 "gitg-diff-view-file-selectable.c"
}


static void _gitg_diff_view_file_selectable___lambda49_ (GitgDiffViewFileSelectable* self) {
	GdkCursor* _tmp0_ = NULL;
	GdkCursor* _tmp1_ = NULL;
	GdkCursor* _tmp2_ = NULL;
#line 87 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = gitg_diff_view_file_selectable_get_cursor_ptr (self);
#line 87 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = _tmp0_;
#line 87 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = _tmp1_;
#line 87 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_cursor (self, _tmp2_);
#line 87 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (_tmp2_);
#line 2390 "gitg-diff-view-file-selectable.c"
}


static void __gitg_diff_view_file_selectable___lambda49__g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
#line 86 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_gitg_diff_view_file_selectable___lambda49_ ((GitgDiffViewFileSelectable*) self);
#line 2397 "gitg-diff-view-file-selectable.c"
}


static void _gitg_diff_view_file_selectable_update_theme_gtk_widget_style_updated (GtkWidget* _sender, gpointer self) {
#line 92 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_theme ((GitgDiffViewFileSelectable*) self);
#line 2404 "gitg-diff-view-file-selectable.c"
}


static GObject * gitg_diff_view_file_selectable_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
	GObject * obj;
	GObjectClass * parent_class;
	GitgDiffViewFileSelectable * self;
	GtkSourceView* _tmp0_ = NULL;
	GtkSourceView* _tmp1_ = NULL;
	GtkSourceView* _tmp2_ = NULL;
	GtkSourceView* _tmp3_ = NULL;
	GtkSourceView* _tmp4_ = NULL;
	GtkSourceView* _tmp5_ = NULL;
	GtkSourceView* _tmp6_ = NULL;
	GtkSourceView* _tmp7_ = NULL;
	GtkTextBuffer* _tmp8_ = NULL;
	GtkTextBuffer* _tmp9_ = NULL;
	GtkTextTag* _tmp10_ = NULL;
	GtkTextTag* _tmp11_ = NULL;
	GtkSourceView* _tmp12_ = NULL;
	GeeHashMap* _tmp13_ = NULL;
#line 74 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	parent_class = G_OBJECT_CLASS (gitg_diff_view_file_selectable_parent_class);
#line 74 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
#line 74 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectable);
#line 76 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = self->priv->_source_view;
#line 76 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GtkWidget*) _tmp0_, "button-press-event", (GCallback) _gitg_diff_view_file_selectable_button_press_event_on_view_gtk_widget_button_press_event, self, 0);
#line 77 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp1_ = self->priv->_source_view;
#line 77 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GtkWidget*) _tmp1_, "motion-notify-event", (GCallback) _gitg_diff_view_file_selectable_motion_notify_event_on_view_gtk_widget_motion_notify_event, self, 0);
#line 78 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp2_ = self->priv->_source_view;
#line 78 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GtkWidget*) _tmp2_, "leave-notify-event", (GCallback) _gitg_diff_view_file_selectable_leave_notify_event_on_view_gtk_widget_leave_notify_event, self, 0);
#line 79 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp3_ = self->priv->_source_view;
#line 79 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GtkWidget*) _tmp3_, "enter-notify-event", (GCallback) _gitg_diff_view_file_selectable_enter_notify_event_on_view_gtk_widget_enter_notify_event, self, 0);
#line 80 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp4_ = self->priv->_source_view;
#line 80 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GtkWidget*) _tmp4_, "button-release-event", (GCallback) _gitg_diff_view_file_selectable_button_release_event_on_view_gtk_widget_button_release_event, self, 0);
#line 82 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp5_ = self->priv->_source_view;
#line 82 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GtkWidget*) _tmp5_, "realize", (GCallback) __gitg_diff_view_file_selectable___lambda48__gtk_widget_realize, self, 0);
#line 86 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp6_ = self->priv->_source_view;
#line 86 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GObject*) _tmp6_, "notify::state-flags", (GCallback) __gitg_diff_view_file_selectable___lambda49__g_object_notify, self, 0);
#line 90 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp7_ = self->priv->_source_view;
#line 90 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp8_ = gtk_text_view_get_buffer ((GtkTextView*) _tmp7_);
#line 90 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp9_ = _tmp8_;
#line 90 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp10_ = gtk_text_buffer_create_tag (_tmp9_, "selection", NULL);
#line 90 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp11_ = _g_object_ref0 (_tmp10_);
#line 90 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_selection_tag);
#line 90 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->d_selection_tag = _tmp11_;
#line 92 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp12_ = self->priv->_source_view;
#line 92 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_signal_connect_object ((GtkWidget*) _tmp12_, "style-updated", (GCallback) _gitg_diff_view_file_selectable_update_theme_gtk_widget_style_updated, self, 0);
#line 93 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_update_theme (self);
#line 95 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp13_ = gee_hash_map_new (G_TYPE_INT, NULL, NULL, G_TYPE_BOOLEAN, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
#line 95 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_originally_selected);
#line 95 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->d_originally_selected = _tmp13_;
#line 74 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	return obj;
#line 2488 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_class_init (GitgDiffViewFileSelectableClass * klass) {
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	gitg_diff_view_file_selectable_parent_class = g_type_class_peek_parent (klass);
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_type_class_add_private (klass, sizeof (GitgDiffViewFileSelectablePrivate));
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_gitg_diff_view_file_selectable_get_property;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_gitg_diff_view_file_selectable_set_property;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	G_OBJECT_CLASS (klass)->constructor = gitg_diff_view_file_selectable_constructor;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	G_OBJECT_CLASS (klass)->finalize = gitg_diff_view_file_selectable_finalize;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_DIFF_VIEW_FILE_SELECTABLE_SOURCE_VIEW, g_param_spec_object ("source-view", "source-view", "source-view", gtk_source_view_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), GITG_DIFF_VIEW_FILE_SELECTABLE_HAS_SELECTION, g_param_spec_boolean ("has-selection", "has-selection", "has-selection", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 2509 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_instance_init (GitgDiffViewFileSelectable * self) {
	gchar* _tmp0_ = NULL;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv = GITG_DIFF_VIEW_FILE_SELECTABLE_GET_PRIVATE (self);
#line 28 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_tmp0_ = g_strdup ("selection");
#line 28 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self->priv->d_selection_category = _tmp0_;
#line 2521 "gitg-diff-view-file-selectable.c"
}


static void gitg_diff_view_file_selectable_finalize (GObject* obj) {
	GitgDiffViewFileSelectable * self;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectable);
#line 28 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_free0 (self->priv->d_selection_category);
#line 29 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_selection_tag);
#line 31 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_start_selection_mark);
#line 32 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_end_selection_mark);
#line 33 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_originally_selected);
#line 34 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_subtract_cursor_ptr);
#line 35 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_subtract_cursor_hand);
#line 36 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_cursor_ptr);
#line 37 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->d_cursor_hand);
#line 39 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	_g_object_unref0 (self->priv->_source_view);
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	G_OBJECT_CLASS (gitg_diff_view_file_selectable_parent_class)->finalize (obj);
#line 2551 "gitg-diff-view-file-selectable.c"
}


GType gitg_diff_view_file_selectable_get_type (void) {
	static volatile gsize gitg_diff_view_file_selectable_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_diff_view_file_selectable_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgDiffViewFileSelectableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gitg_diff_view_file_selectable_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GitgDiffViewFileSelectable), 0, (GInstanceInitFunc) gitg_diff_view_file_selectable_instance_init, NULL };
		GType gitg_diff_view_file_selectable_type_id;
		gitg_diff_view_file_selectable_type_id = g_type_register_static (G_TYPE_OBJECT, "GitgDiffViewFileSelectable", &g_define_type_info, 0);
		g_once_init_leave (&gitg_diff_view_file_selectable_type_id__volatile, gitg_diff_view_file_selectable_type_id);
	}
	return gitg_diff_view_file_selectable_type_id__volatile;
}


static void _vala_gitg_diff_view_file_selectable_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	GitgDiffViewFileSelectable * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectable);
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	switch (property_id) {
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		case GITG_DIFF_VIEW_FILE_SELECTABLE_SOURCE_VIEW:
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		g_value_set_object (value, gitg_diff_view_file_selectable_get_source_view (self));
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		break;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		case GITG_DIFF_VIEW_FILE_SELECTABLE_HAS_SELECTION:
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		g_value_set_boolean (value, gitg_diff_view_file_selectable_get_has_selection (self));
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		break;
#line 2584 "gitg-diff-view-file-selectable.c"
		default:
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		break;
#line 2590 "gitg-diff-view-file-selectable.c"
	}
}


static void _vala_gitg_diff_view_file_selectable_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	GitgDiffViewFileSelectable * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GITG_TYPE_DIFF_VIEW_FILE_SELECTABLE, GitgDiffViewFileSelectable);
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
	switch (property_id) {
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		case GITG_DIFF_VIEW_FILE_SELECTABLE_SOURCE_VIEW:
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_set_source_view (self, g_value_get_object (value));
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		break;
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		case GITG_DIFF_VIEW_FILE_SELECTABLE_HAS_SELECTION:
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		gitg_diff_view_file_selectable_set_has_selection (self, g_value_get_boolean (value));
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		break;
#line 2612 "gitg-diff-view-file-selectable.c"
		default:
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 26 "/home/jesse/dev/gitg/libgitg/gitg-diff-view-file-selectable.vala"
		break;
#line 2618 "gitg-diff-view-file-selectable.c"
	}
}



