[Xfce4-commits] [xfce/xfce4-panel] 01/01: tasklist: Fix crash middle-click-closing grouped windows (Bug #16410)
noreply at xfce.org
noreply at xfce.org
Mon Feb 24 23:29:35 CET 2020
This is an automated email from the git hooks/post-receive script.
o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfce4-panel.
commit 906ea6bb2a7507db5ca347554a771e284fad8602
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Mon Feb 24 23:27:42 2020 +0100
tasklist: Fix crash middle-click-closing grouped windows (Bug #16410)
Unfortunately the menu doesn't resize when removing an item, so we close
it (even though keeping it open would allow users to middle-click close
multiple windows in a row, which seems to be a valid use case).
---
plugins/tasklist/tasklist-widget.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c
index 653c299..f8b1be6 100644
--- a/plugins/tasklist/tasklist-widget.c
+++ b/plugins/tasklist/tasklist-widget.c
@@ -339,6 +339,9 @@ static XfceTasklistChild *xfce_tasklist_button_new (WnckWi
XfceTasklist *tasklist);
/* tasklist group buttons */
+static void xfce_tasklist_group_button_menu_close (GtkWidget *menuitem,
+ XfceTasklistChild *child,
+ guint32 time);
static gboolean xfce_tasklist_group_button_button_draw (GtkWidget *widget,
cairo_t *cr,
XfceTasklistChild *group_child);
@@ -3041,7 +3044,11 @@ xfce_tasklist_button_button_release_event (GtkWidget *button,
break;
case XFCE_TASKLIST_MIDDLE_CLICK_CLOSE_WINDOW:
- wnck_window_close (child->window, event->time);
+ if (child->type == CHILD_TYPE_GROUP_MENU
+ && GTK_IS_MENU_ITEM (button))
+ xfce_tasklist_group_button_menu_close (button, child, event->time);
+ else
+ wnck_window_close (child->window, event->time);
return TRUE;
case XFCE_TASKLIST_MIDDLE_CLICK_MINIMIZE_WINDOW:
@@ -3588,6 +3595,23 @@ xfce_tasklist_group_button_menu_close_all (XfceTasklistChild *group_child)
+static void
+xfce_tasklist_group_button_menu_close (GtkWidget *menuitem,
+ XfceTasklistChild *child,
+ guint32 time)
+{
+ GtkWidget *menu = gtk_widget_get_parent (menuitem);
+
+ panel_return_if_fail (WNCK_IS_WINDOW (child->window));
+ panel_return_if_fail (GTK_IS_MENU (menu));
+
+ gtk_container_remove (GTK_CONTAINER (menu), menuitem);
+ gtk_menu_popdown (GTK_MENU (menu));
+ wnck_window_close (child->window, time);
+}
+
+
+
static GtkWidget *
xfce_tasklist_group_button_menu (XfceTasklistChild *group_child,
gboolean action_menu_entries)
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list