Filebrowser: Kill the click policy property with fire (#293)

This is left over code from the gedit days, which we don't use, and
don't use. This also has the added benifit of removing at least 1
deprecation warning.
This commit is contained in:
Stephen Collins 2019-05-05 03:20:18 -06:00 committed by Clement Lefebvre
parent 2e3f337e84
commit fb0002bdcd
2 changed files with 2 additions and 195 deletions

View File

@ -44,8 +44,6 @@ struct _XedFileBrowserViewPrivate
GtkTreeModel *model; GtkTreeModel *model;
GtkTreeRowReference *editable; GtkTreeRowReference *editable;
/* CLick policy */
XedFileBrowserViewClickPolicy click_policy;
GtkTreePath *double_click_path[2]; /* Both clicks in a double click need to be on the same row */ GtkTreePath *double_click_path[2]; /* Both clicks in a double click need to be on the same row */
GtkTreePath *hover_path; GtkTreePath *hover_path;
GdkCursor *hand_cursor; GdkCursor *hand_cursor;
@ -64,7 +62,6 @@ enum
{ {
PROP_0, PROP_0,
PROP_CLICK_POLICY,
PROP_RESTORE_EXPAND_STATE PROP_RESTORE_EXPAND_STATE
}; };
@ -227,139 +224,6 @@ row_collapsed (GtkTreeView *tree_view,
_xed_file_browser_store_iter_collapsed (XED_FILE_BROWSER_STORE (view->priv->model), iter); _xed_file_browser_store_iter_collapsed (XED_FILE_BROWSER_STORE (view->priv->model), iter);
} }
static gboolean
leave_notify_event (GtkWidget *widget,
GdkEventCrossing *event)
{
XedFileBrowserView *view = XED_FILE_BROWSER_VIEW (widget);
if (view->priv->click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE &&
view->priv->hover_path != NULL)
{
gtk_tree_path_free (view->priv->hover_path);
view->priv->hover_path = NULL;
}
// Chainup
return GTK_WIDGET_CLASS (xed_file_browser_view_parent_class)->leave_notify_event (widget, event);
}
static gboolean
enter_notify_event (GtkWidget *widget,
GdkEventCrossing *event)
{
XedFileBrowserView *view = XED_FILE_BROWSER_VIEW (widget);
if (view->priv->click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE)
{
if (view->priv->hover_path != NULL)
{
gtk_tree_path_free (view->priv->hover_path);
}
gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget),
event->x, event->y,
&view->priv->hover_path,
NULL, NULL, NULL);
if (view->priv->hover_path != NULL)
{
gdk_window_set_cursor (gtk_widget_get_window (widget), view->priv->hand_cursor);
}
}
// Chainup
return GTK_WIDGET_CLASS (xed_file_browser_view_parent_class)->enter_notify_event (widget, event);
}
static gboolean
motion_notify_event (GtkWidget *widget,
GdkEventMotion *event)
{
GtkTreePath *old_hover_path;
XedFileBrowserView *view = XED_FILE_BROWSER_VIEW (widget);
if (view->priv->click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE)
{
old_hover_path = view->priv->hover_path;
gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget),
event->x, event->y,
&view->priv->hover_path,
NULL, NULL, NULL);
if ((old_hover_path != NULL) != (view->priv->hover_path != NULL))
{
if (view->priv->hover_path != NULL)
{
gdk_window_set_cursor (gtk_widget_get_window (widget), view->priv->hand_cursor);
}
else
{
gdk_window_set_cursor (gtk_widget_get_window (widget), NULL);
}
}
if (old_hover_path != NULL)
{
gtk_tree_path_free (old_hover_path);
}
}
// Chainup
return GTK_WIDGET_CLASS (xed_file_browser_view_parent_class)->motion_notify_event (widget, event);
}
static void
set_click_policy_property (XedFileBrowserView *obj,
XedFileBrowserViewClickPolicy click_policy)
{
GtkTreeIter iter;
GdkDisplay *display;
GdkWindow *win;
obj->priv->click_policy = click_policy;
if (click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE)
{
if (obj->priv->hand_cursor == NULL)
{
obj->priv->hand_cursor = gdk_cursor_new(GDK_HAND2);
}
}
else if (click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_DOUBLE)
{
if (obj->priv->hover_path != NULL)
{
if (gtk_tree_model_get_iter (GTK_TREE_MODEL (obj->priv->model), &iter, obj->priv->hover_path))
{
gtk_tree_model_row_changed (GTK_TREE_MODEL (obj->priv->model), obj->priv->hover_path, &iter);
}
gtk_tree_path_free (obj->priv->hover_path);
obj->priv->hover_path = NULL;
}
if (gtk_widget_get_realized (GTK_WIDGET (obj)))
{
win = gtk_widget_get_window (GTK_WIDGET (obj));
gdk_window_set_cursor (win, NULL);
display = gtk_widget_get_display (GTK_WIDGET (obj));
if (display != NULL)
{
gdk_display_flush (display);
}
}
if (obj->priv->hand_cursor)
{
g_object_unref (obj->priv->hand_cursor);
obj->priv->hand_cursor = NULL;
}
}
}
static void static void
directory_activated (XedFileBrowserView *view, directory_activated (XedFileBrowserView *view,
GtkTreeIter *iter) GtkTreeIter *iter)
@ -503,14 +367,7 @@ did_not_drag (XedFileBrowserView *view,
if (gtk_tree_view_get_path_at_pos (tree_view, event->x, event->y, &path, NULL, NULL, NULL)) if (gtk_tree_view_get_path_at_pos (tree_view, event->x, event->y, &path, NULL, NULL, NULL))
{ {
if ((view->priv->click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE) if ((event->button == 1 || event->button == 2)
&& !button_event_modifies_selection(event)
&& (event->button == 1 || event->button == 2))
{
/* Activate all selected items, and leave them selected */
activate_selected_items (view);
}
else if ((event->button == 1 || event->button == 2)
&& ((event->state & GDK_CONTROL_MASK) != 0 || && ((event->state & GDK_CONTROL_MASK) != 0 ||
(event->state & GDK_SHIFT_MASK) == 0) (event->state & GDK_SHIFT_MASK) == 0)
&& view->priv->selected_on_button_down) && view->priv->selected_on_button_down)
@ -589,12 +446,6 @@ button_press_event (GtkWidget *widget,
last_click_time = event->time; last_click_time = event->time;
/* Ignore double click if we are in single click mode */
if (view->priv->click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE && click_count >= 2)
{
return TRUE;
}
view->priv->ignore_release = FALSE; view->priv->ignore_release = FALSE;
call_parent = TRUE; call_parent = TRUE;
@ -654,7 +505,7 @@ button_press_event (GtkWidget *widget,
if (selected) if (selected)
{ {
call_parent = on_expander || gtk_tree_selection_count_selected_rows (selection) == 1; call_parent = on_expander || gtk_tree_selection_count_selected_rows (selection) == 1;
view->priv->ignore_release = call_parent && view->priv->click_policy != XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE; view->priv->ignore_release = call_parent;
} }
else if ((event->state & GDK_CONTROL_MASK) != 0) else if ((event->state & GDK_CONTROL_MASK) != 0)
{ {
@ -881,9 +732,6 @@ get_property (GObject *object,
switch (prop_id) switch (prop_id)
{ {
case PROP_CLICK_POLICY:
g_value_set_enum (value, obj->priv->click_policy);
break;
case PROP_RESTORE_EXPAND_STATE: case PROP_RESTORE_EXPAND_STATE:
g_value_set_boolean (value, obj->priv->restore_expand_state); g_value_set_boolean (value, obj->priv->restore_expand_state);
break; break;
@ -903,9 +751,6 @@ set_property (GObject *object,
switch (prop_id) switch (prop_id)
{ {
case PROP_CLICK_POLICY:
set_click_policy_property (obj, g_value_get_enum (value));
break;
case PROP_RESTORE_EXPAND_STATE: case PROP_RESTORE_EXPAND_STATE:
set_restore_expand_state (obj, g_value_get_boolean (value)); set_restore_expand_state (obj, g_value_get_boolean (value));
break; break;
@ -927,9 +772,6 @@ xed_file_browser_view_class_init (XedFileBrowserViewClass *klass)
object_class->set_property = set_property; object_class->set_property = set_property;
/* Event handlers */ /* Event handlers */
widget_class->motion_notify_event = motion_notify_event;
widget_class->enter_notify_event = enter_notify_event;
widget_class->leave_notify_event = leave_notify_event;
widget_class->button_press_event = button_press_event; widget_class->button_press_event = button_press_event;
widget_class->button_release_event = button_release_event; widget_class->button_release_event = button_release_event;
widget_class->drag_begin = drag_begin; widget_class->drag_begin = drag_begin;
@ -943,14 +785,6 @@ xed_file_browser_view_class_init (XedFileBrowserViewClass *klass)
/* Default handlers */ /* Default handlers */
klass->directory_activated = directory_activated; klass->directory_activated = directory_activated;
g_object_class_install_property (object_class, PROP_CLICK_POLICY,
g_param_spec_enum ("click-policy",
"Click Policy",
"The click policy",
XED_FILE_BROWSER_TYPE_VIEW_CLICK_POLICY,
XED_FILE_BROWSER_VIEW_CLICK_POLICY_DOUBLE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class, PROP_RESTORE_EXPAND_STATE, g_object_class_install_property (object_class, PROP_RESTORE_EXPAND_STATE,
g_param_spec_boolean ("restore-expand-state", g_param_spec_boolean ("restore-expand-state",
"Restore Expand State", "Restore Expand State",
@ -1013,14 +847,6 @@ cell_data_cb (GtkTreeViewColumn *tree_column,
path = gtk_tree_model_get_path (tree_model, iter); path = gtk_tree_model_get_path (tree_model, iter);
if (obj->priv->click_policy == XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE)
{
if (obj->priv->hover_path != NULL && gtk_tree_path_compare (path, obj->priv->hover_path) == 0)
{
underline = PANGO_UNDERLINE_SINGLE;
}
}
if (XED_IS_FILE_BROWSER_STORE (tree_model)) if (XED_IS_FILE_BROWSER_STORE (tree_model))
{ {
if (obj->priv->editable != NULL && gtk_tree_row_reference_valid (obj->priv->editable)) if (obj->priv->editable != NULL && gtk_tree_row_reference_valid (obj->priv->editable))
@ -1200,17 +1026,6 @@ xed_file_browser_view_start_rename (XedFileBrowserView *tree_view,
FALSE, 0.0, 0.0); FALSE, 0.0, 0.0);
} }
void
xed_file_browser_view_set_click_policy (XedFileBrowserView *tree_view,
XedFileBrowserViewClickPolicy policy)
{
g_return_if_fail (XED_IS_FILE_BROWSER_VIEW (tree_view));
set_click_policy_property (tree_view, policy);
g_object_notify (G_OBJECT (tree_view), "click-policy");
}
void void
xed_file_browser_view_set_restore_expand_state (XedFileBrowserView *tree_view, xed_file_browser_view_set_restore_expand_state (XedFileBrowserView *tree_view,
gboolean restore_expand_state) gboolean restore_expand_state)

View File

@ -37,12 +37,6 @@ typedef struct _XedFileBrowserView XedFileBrowserView;
typedef struct _XedFileBrowserViewClass XedFileBrowserViewClass; typedef struct _XedFileBrowserViewClass XedFileBrowserViewClass;
typedef struct _XedFileBrowserViewPrivate XedFileBrowserViewPrivate; typedef struct _XedFileBrowserViewPrivate XedFileBrowserViewPrivate;
typedef enum
{
XED_FILE_BROWSER_VIEW_CLICK_POLICY_DOUBLE,
XED_FILE_BROWSER_VIEW_CLICK_POLICY_SINGLE
} XedFileBrowserViewClickPolicy;
struct _XedFileBrowserView struct _XedFileBrowserView
{ {
GtkTreeView parent; GtkTreeView parent;
@ -74,8 +68,6 @@ void xed_file_browser_view_set_model (XedFileBrowserView *tree_view,
GtkTreeModel *model); GtkTreeModel *model);
void xed_file_browser_view_start_rename (XedFileBrowserView *tree_view, void xed_file_browser_view_start_rename (XedFileBrowserView *tree_view,
GtkTreeIter *iter); GtkTreeIter *iter);
void xed_file_browser_view_set_click_policy (XedFileBrowserView *tree_view,
XedFileBrowserViewClickPolicy policy);
void xed_file_browser_view_set_restore_expand_state (XedFileBrowserView *tree_view, void xed_file_browser_view_set_restore_expand_state (XedFileBrowserView *tree_view,
gboolean restore_expand_state); gboolean restore_expand_state);