[libwnck] Add option to close windows with mouse middle click on button in tasklist



commit b1a5dbaf5bf3e0bbf021e53c8585e54fd7f753ea
Author: Stefano Karapetsas <stefano karapetsas com>
Date:   Thu Jul 18 17:02:39 2013 +0200

    Add option to close windows with mouse middle click on button in tasklist
    
    From http://git.mate-desktop.org/libmatewnck/commit/?id=6d3058d
    
    https://bugzilla.gnome.org/show_bug.cgi?id=704472

 libwnck/tasklist.c |   31 +++++++++++++++++++++++++++++++
 libwnck/tasklist.h |    2 ++
 2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/libwnck/tasklist.c b/libwnck/tasklist.c
index d851a54..11b4e5c 100644
--- a/libwnck/tasklist.c
+++ b/libwnck/tasklist.c
@@ -202,6 +202,7 @@ struct _WnckTasklistPrivate
   gint max_button_height;
 
   gboolean switch_workspace_on_unminimize;
+  gboolean middle_click_close;
 
   WnckTasklistGroupingType grouping;
   gint grouping_limit;
@@ -641,6 +642,7 @@ wnck_tasklist_init (WnckTasklist *tasklist)
   tasklist->priv->max_button_height = 0;
 
   tasklist->priv->switch_workspace_on_unminimize = FALSE;
+  tasklist->priv->middle_click_close = FALSE;
 
   tasklist->priv->grouping = WNCK_TASKLIST_AUTO_GROUP;
   tasklist->priv->grouping_limit = DEFAULT_GROUPING_LIMIT;
@@ -901,6 +903,26 @@ wnck_tasklist_set_button_relief (WnckTasklist *tasklist, GtkReliefStyle relief)
 }
 
 /**
+ * wnck_tasklist_set_middle_click_close:
+ * @tasklist: a #WnckTasklist.
+ * @middle_click_close: whether to close windows with middle click on
+ * button.
+ *
+ * Sets @tasklist to close windows with mouse middle click on button,
+ * according to @middle_click_close.
+ *
+ * Since: 3.4.6
+ */
+void
+wnck_tasklist_set_middle_click_close (WnckTasklist  *tasklist,
+                                     gboolean       middle_click_close)
+{
+  g_return_if_fail (WNCK_IS_TASKLIST (tasklist));
+
+  tasklist->priv->middle_click_close = middle_click_close;
+}
+
+/**
  * wnck_tasklist_set_switch_workspace_on_unminimize:
  * @tasklist: a #WnckTasklist.
  * @switch_workspace_on_unminimize: whether to activate the #WnckWorkspace a
@@ -3600,6 +3622,15 @@ wnck_task_button_press_event (GtkWidget        *widget,
 
           return FALSE;
         }
+      else if (event->button == 2)
+        {
+          /* middle-click close window */
+          if (task->tasklist->priv->middle_click_close == TRUE)
+            {
+              wnck_window_close (task->window, gtk_get_current_event_time ());
+              return TRUE;
+            }
+        }
       else if (event->button == 3)
         {
           if (task->action_menu)
diff --git a/libwnck/tasklist.h b/libwnck/tasklist.h
index 2961840..a0de362 100644
--- a/libwnck/tasklist.h
+++ b/libwnck/tasklist.h
@@ -97,6 +97,8 @@ void wnck_tasklist_set_grouping (WnckTasklist             *tasklist,
                                 WnckTasklistGroupingType  grouping);
 void wnck_tasklist_set_switch_workspace_on_unminimize (WnckTasklist  *tasklist,
                                                       gboolean       switch_workspace_on_unminimize);
+void wnck_tasklist_set_middle_click_close (WnckTasklist  *tasklist,
+                                          gboolean       middle_click_close);
 void wnck_tasklist_set_grouping_limit (WnckTasklist *tasklist,
                                       gint          limit);
 void wnck_tasklist_set_include_all_workspaces (WnckTasklist *tasklist,


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