mirror of
https://github.com/transmission/transmission
synced 2025-03-03 18:25:35 +00:00
(gtk) #1306: clicking in a blank area in a list clears the selection.
This commit is contained in:
parent
89b6c61326
commit
4bf3577fba
8 changed files with 44 additions and 0 deletions
|
@ -700,6 +700,8 @@ peer_page_new( TrTorrent * gtor )
|
|||
|
||||
m = webseed_model_new( tr_torrent_handle( gtor ) );
|
||||
webtree = gtk_tree_view_new_with_model( m );
|
||||
g_signal_connect( webtree, "button-release-event",
|
||||
G_CALLBACK( on_tree_view_button_released ), NULL );
|
||||
gtk_tree_view_set_rules_hint( GTK_TREE_VIEW( webtree ), TRUE );
|
||||
p->webseeds = GTK_LIST_STORE( m );
|
||||
g_object_unref( G_OBJECT( m ) );
|
||||
|
@ -745,6 +747,8 @@ peer_page_new( TrTorrent * gtor )
|
|||
#endif
|
||||
gtk_widget_set_size_request( v, 550, 0 );
|
||||
g_object_unref ( G_OBJECT( m ) );
|
||||
g_signal_connect( v, "button-release-event",
|
||||
G_CALLBACK( on_tree_view_button_released ), NULL );
|
||||
|
||||
for( i = 0; i < G_N_ELEMENTS( view_columns ); ++i )
|
||||
{
|
||||
|
|
|
@ -754,6 +754,9 @@ file_list_new( TrTorrent * gtor )
|
|||
gtk_container_set_border_width( GTK_CONTAINER( view ), GUI_PAD_BIG );
|
||||
g_signal_connect( view, "button-press-event",
|
||||
G_CALLBACK( onViewButtonPressed ), data );
|
||||
g_signal_connect( view, "button-release-event",
|
||||
G_CALLBACK( on_tree_view_button_released ), NULL );
|
||||
|
||||
|
||||
/* set up view */
|
||||
sel = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
|
||||
|
|
|
@ -526,6 +526,8 @@ msgwin_new( TrCore * core )
|
|||
|
||||
|
||||
view = gtk_tree_view_new_with_model( data->sort );
|
||||
g_signal_connect( view, "button-release-event",
|
||||
G_CALLBACK( on_tree_view_button_released ), NULL );
|
||||
data->view = GTK_TREE_VIEW( view );
|
||||
gtk_tree_view_set_rules_hint( data->view, TRUE );
|
||||
appendColumn( data->view, COL_SEQUENCE );
|
||||
|
|
|
@ -853,6 +853,8 @@ webPage( GObject * core )
|
|||
s = _( "Access control list:" );
|
||||
page->store = GTK_LIST_STORE( m );
|
||||
w = gtk_tree_view_new_with_model( m );
|
||||
g_signal_connect( w, "button-release-event",
|
||||
G_CALLBACK( on_tree_view_button_released ), NULL );
|
||||
|
||||
page->widgets = g_slist_append( page->widgets, w );
|
||||
v = page->view = GTK_TREE_VIEW( w );
|
||||
|
|
|
@ -171,6 +171,8 @@ makeview( PrivateData * p,
|
|||
g_signal_connect( view, "button-press-event",
|
||||
G_CALLBACK( on_tree_view_button_pressed ),
|
||||
(void *) on_popup_menu );
|
||||
g_signal_connect( view, "button-release-event",
|
||||
G_CALLBACK( on_tree_view_button_released ), NULL );
|
||||
g_signal_connect( view, "row-activated",
|
||||
G_CALLBACK( view_row_activated ), NULL );
|
||||
|
||||
|
|
|
@ -301,6 +301,8 @@ tracker_list_new( TrTorrent * gtor )
|
|||
m = tracker_model_new( tr_torrent_handle( gtor ) );
|
||||
page->store = GTK_LIST_STORE( m );
|
||||
w = gtk_tree_view_new_with_model( m );
|
||||
g_signal_connect( w, "button-release-event",
|
||||
G_CALLBACK( on_tree_view_button_released ), NULL );
|
||||
page->view = GTK_TREE_VIEW( w );
|
||||
gtk_tree_view_set_enable_search( page->view, FALSE );
|
||||
r = gtk_cell_renderer_text_new( );
|
||||
|
|
22
gtk/util.c
22
gtk/util.c
|
@ -480,6 +480,28 @@ on_tree_view_button_pressed( GtkWidget * view,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/* if the user clicked in an empty area of the list,
|
||||
* clear all the selections. */
|
||||
gboolean
|
||||
on_tree_view_button_released( GtkWidget * view,
|
||||
GdkEventButton * event,
|
||||
gpointer unused UNUSED )
|
||||
{
|
||||
GtkTreeView * tv = GTK_TREE_VIEW( view );
|
||||
|
||||
if( !gtk_tree_view_get_path_at_pos ( tv,
|
||||
(gint) event->x,
|
||||
(gint) event->y,
|
||||
NULL, NULL, NULL, NULL ) )
|
||||
{
|
||||
GtkTreeSelection * selection = gtk_tree_view_get_selection( tv );
|
||||
gtk_tree_selection_unselect_all ( selection );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gpointer
|
||||
tr_object_ref_sink( gpointer object )
|
||||
{
|
||||
|
|
|
@ -119,6 +119,13 @@ gboolean on_tree_view_button_pressed( GtkWidget * view,
|
|||
GdkEventButton * event,
|
||||
gpointer unused );
|
||||
|
||||
/* if the click didn't specify a row, clear the selection */
|
||||
gboolean on_tree_view_button_released( GtkWidget * view,
|
||||
GdkEventButton * event,
|
||||
gpointer unused );
|
||||
|
||||
|
||||
|
||||
gpointer tr_object_ref_sink( gpointer object );
|
||||
|
||||
void tr_file_trash_or_unlink( const char * filename );
|
||||
|
|
Loading…
Reference in a new issue