[grisbi-cvs] [SCM] grisbi branch, master, updated. upstream_version_0_9_1-2-g53a711f

Pierre Biava nobody at users.sourceforge.net
Mon Apr 25 19:04:56 CEST 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "grisbi".

The branch, master has been updated
       via  53a711fc2882cad75febe7e53868d57902432557 (commit)
      from  2cb842132b49e19871867644c12204e4da362baa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 53a711fc2882cad75febe7e53868d57902432557
Author: pbiava <pierre.biava at nerim.net>
Date:   Mon Apr 25 18:58:18 2011 +0200

    fixes a problem of selection in the menu of the left panel.

-----------------------------------------------------------------------

Changes:
diff --git a/src/navigation.c b/src/navigation.c
index 54f7e10..fef7139 100644
--- a/src/navigation.c
+++ b/src/navigation.c
@@ -77,7 +77,8 @@ static gboolean gsb_gui_navigation_check_key_press ( GtkWidget *tree_view,
                         GdkEventKey *ev,
                         GtkTreeModel *model );
 static void gsb_gui_navigation_clear_pages_list ( void );
-static void gsb_gui_navigation_context_menu ( GtkWidget *tree_view );
+static void gsb_gui_navigation_context_menu ( GtkWidget *tree_view,
+                        GtkTreePath *path );
 static void gsb_gui_navigation_create_report_list ( GtkTreeModel *model );
 static GtkTreePath *gsb_gui_navigation_get_page_path ( GtkTreeModel *model,
                         gint type_page );
@@ -1941,29 +1942,32 @@ gboolean gsb_gui_navigation_button_press ( GtkWidget *tree_view,
 {
 	/* show the popup */
 	if ( ev -> button == RIGHT_BUTTON )
-        gsb_gui_navigation_context_menu ( tree_view );
-    if ( ev -> type == GDK_2BUTTON_PRESS )
     {
-        GtkTreeSelection *selection;
-        GtkTreeModel *model;
-        GtkTreeIter iter;
         GtkTreePath *path = NULL;
 
-        selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( tree_view ) );
-        if ( selection && gtk_tree_selection_get_selected ( selection, &model, &iter ) )
+        if ( gtk_tree_view_get_path_at_pos ( GTK_TREE_VIEW ( tree_view ), ev -> x, ev -> y, &path, NULL, NULL, NULL ) )
         {
-            path = gtk_tree_model_get_path  ( model, &iter);
+            gsb_gui_navigation_context_menu ( tree_view, path );
+            gtk_tree_path_free ( path );
 
+            return FALSE;
+        }
+    }
+    if ( ev -> type == GDK_2BUTTON_PRESS )
+    {
+        GtkTreePath *path = NULL;
+
+        if ( gtk_tree_view_get_path_at_pos ( GTK_TREE_VIEW ( tree_view ), ev -> x, ev -> y, &path, NULL, NULL, NULL ) )
+        {
             if ( gtk_tree_view_row_expanded ( GTK_TREE_VIEW ( tree_view ), path ) )
                 gtk_tree_view_collapse_row ( GTK_TREE_VIEW ( tree_view ), path );
             else
                 gtk_tree_view_expand_row ( GTK_TREE_VIEW ( tree_view ), path, FALSE );
 
             gtk_tree_path_free ( path );
+
             return FALSE;
         }
-
-        return TRUE;
     }
 
     return FALSE;
@@ -1976,24 +1980,22 @@ gboolean gsb_gui_navigation_button_press ( GtkWidget *tree_view,
  * \param gtk_tree_view
  *
  */
-void gsb_gui_navigation_context_menu ( GtkWidget *tree_view )
+void gsb_gui_navigation_context_menu ( GtkWidget *tree_view,
+                        GtkTreePath *path )
 {
     GtkWidget *image;
     GtkWidget *menu = NULL;
     GtkWidget *menu_item;
     GtkTreeModel *model;
-    GtkTreeSelection *selection;
     GtkTreeIter iter;
     gchar *tmp_str;
     gint type_page;
     gint account_number;
     gint report_number;
 
-    selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW ( tree_view ) );
-
-    if ( !gtk_tree_selection_get_selected ( GTK_TREE_SELECTION ( selection ), &model, &iter ) )
-        return;
+    model = gtk_tree_view_get_model ( GTK_TREE_VIEW ( tree_view ) );
 
+    gtk_tree_model_get_iter ( model, &iter, path );
     gtk_tree_model_get ( model, &iter, 
                         NAVIGATION_PAGE, &type_page,
                         NAVIGATION_ACCOUNT, &account_number,
@@ -2062,8 +2064,7 @@ void gsb_gui_navigation_context_menu ( GtkWidget *tree_view )
     if ( menu )
     {
         gtk_widget_show_all ( menu );
-        gtk_menu_popup ( GTK_MENU( menu ), NULL, NULL, NULL, NULL, 3,
-                        gtk_get_current_event_time ( ) );
+        gtk_menu_popup ( GTK_MENU( menu ), NULL, NULL, NULL, NULL, 3, gtk_get_current_event_time ( ) );
     }
 }
 


hooks/post-receive
-- 
grisbi


More information about the cvs mailing list