[bijiben] MainView : allow to go to selection mode with right click



commit 9227eeae08a4d8b69d588cdbdca4c1764fe21b68
Author: Pierre-Yves Luyten <py luyten fr>
Date:   Thu Nov 29 00:01:08 2012 +0100

    MainView : allow to go to selection mode with right click
    
    https://bugzilla.gnome.org/show_bug.cgi?id=689195

 src/bjb-main-toolbar.c |   24 +++++++++++++++---------
 src/bjb-main-toolbar.h |    2 ++
 src/bjb-main-view.c    |   28 ++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+), 9 deletions(-)
---
diff --git a/src/bjb-main-toolbar.c b/src/bjb-main-toolbar.c
index 9a399eb..c57d974 100644
--- a/src/bjb-main-toolbar.c
+++ b/src/bjb-main-toolbar.c
@@ -89,31 +89,37 @@ on_new_note_clicked (GtkWidget *but, BjbMainView *view)
 
 static void populate_main_toolbar(BjbMainToolbar *self);
 
-static void
-on_selection_mode_clicked (GtkWidget *button, BjbMainToolbar *self)
+void
+on_selection_mode_changed (BjbMainToolbar *self)
 {
   GtkStyleContext *context;
   GdMainView *view = self->priv->view;
   GtkWidget *widget = GTK_WIDGET(self->priv->toolbar);
   context = gtk_widget_get_style_context (widget);
 
-  if (gd_main_view_get_selection_mode (view))
-  {
-    gd_main_view_set_selection_mode (view, FALSE);
+  if (!gd_main_view_get_selection_mode (view))
     gtk_style_context_remove_class (context, "selection-mode");
-  }
 
   else
-  {
-    gd_main_view_set_selection_mode (view, TRUE);
     gtk_style_context_add_class (context, "selection-mode");
-  }
 
   gtk_widget_reset_style (widget);
   populate_main_toolbar(self);
   return ;
 }
 
+static void
+on_selection_mode_clicked (GtkWidget *button, BjbMainToolbar *self)
+{
+  if (gd_main_view_get_selection_mode (self->priv->view))
+    gd_main_view_set_selection_mode (self->priv->view, FALSE);
+
+  else
+    gd_main_view_set_selection_mode (self->priv->view, TRUE);
+
+  on_selection_mode_changed (self);
+}
+
 static gboolean
 on_view_mode_clicked (GtkWidget *button, BjbMainToolbar *self)
 {
diff --git a/src/bjb-main-toolbar.h b/src/bjb-main-toolbar.h
index 687d192..636117c 100644
--- a/src/bjb-main-toolbar.h
+++ b/src/bjb-main-toolbar.h
@@ -58,6 +58,8 @@ BjbMainToolbar * bjb_main_toolbar_new (GdMainView    *view,
 
 ClutterActor *bjb_main_toolbar_get_actor (BjbMainToolbar *self);
 
+void on_selection_mode_changed (BjbMainToolbar *self);
+
 void bjb_main_toolbar_set_view (BjbMainToolbar *self, GdMainView *view);
 
 G_END_DECLS
diff --git a/src/bjb-main-view.c b/src/bjb-main-view.c
index 4c4296f..e1b79d1 100644
--- a/src/bjb-main-view.c
+++ b/src/bjb-main-view.c
@@ -311,6 +311,32 @@ action_delete_selected_notes(GtkWidget *w,BjbMainView *view)
   g_list_free (notes);
 }
 
+/* Go to selection mode with right-click */
+static gboolean
+on_button_press_event_cb (GtkWidget *widget,
+                          GdkEvent  *event,
+                          gpointer   user_data)
+{
+  BjbMainView *self = BJB_MAIN_VIEW (user_data);
+  BjbMainViewPriv *priv = self->priv;
+
+  switch (event->button.button)
+  {
+    /* Right click */
+    case 3:
+      if (!gd_main_view_get_selection_mode (priv->view))
+      {
+        gd_main_view_set_selection_mode (priv->view, TRUE);
+        on_selection_mode_changed (priv->main_toolbar);
+      }
+
+      return TRUE;
+
+    default:
+      return FALSE;
+  }
+}
+
 static gboolean
 on_item_activated(GdMainView        * gd, 
                   const gchar       * id,
@@ -461,6 +487,8 @@ bjb_main_view_constructed(GObject *o)
   gd_main_view_set_model(priv->view,
                          bjb_controller_get_model(priv->controller));
 
+  g_signal_connect (priv->view, "button-press-event",
+                    G_CALLBACK (on_button_press_event_cb), self);
   g_signal_connect(priv->view,"item-activated",
                    G_CALLBACK(on_item_activated),self);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]