Example #1
0
int
clist_get_cursor_row(GtkCList *clist)
{
	int row;

	g_return_val_if_fail(clist, -1);
	
	row = clist_get_focus_row(clist);
	return row >= 0 && clist_row_is_selected(clist, row) ? row : -1;
}
Example #2
0
static void
mouse_click_cb(GtkWidget *widget, GdkEventButton *event, FileView *view)
{
  if (event->button == 1)
  { /* Left Button: selection */
    if (curr_view != view)
    {
      switch_views();
      gtk_widget_grab_focus(view->clist);
    }
  }
  else if (event->button == 2)
  { /* Middle Button: Drag and Drop */
    GtkTargetList *list;
    GdkDragContext *context;

    list = gtk_target_list_new(target_table, n_targets);
    context = gtk_drag_begin(curr_view->clist, list, GDK_ACTION_COPY |
      GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_ASK,
      event->button, (GdkEvent *)event);
    gtk_drag_set_icon_default(context);
  }
  else if (event->button == 3)
  { /* Right Button: Menu */
    if (cfg.windows_right_click && (view->tagged == NULL))
    { /* if windows right click is enabled, we want to select the file */
      gint xmouse,ymouse,row,column;
      GdkModifierType mask;

      gdk_window_get_pointer(GTK_CLIST(view->clist)->clist_window,
                             &xmouse, &ymouse, &mask);
      gtk_clist_get_selection_info(GTK_CLIST(view->clist), xmouse, ymouse,
                                   &row, &column);
      /* don't screw up the current selection */
      if (!clist_row_is_selected(view->clist, row))
        gtk_clist_unselect_all(GTK_CLIST(view->clist));
      focus_row(view, row, FALSE, FALSE, TRUE);
    }

    if (event->state & GDK_CONTROL_MASK)
      show_user_command_menu(event->button, event->time);
    else
      show_menu(event->button, event->time);
  }
}