aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-11-12 15:23:09 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2010-11-12 15:23:09 +0000
commitb0863c77b84aaef1e667d5fe5965b887c3a9008a (patch)
tree8ba769630847d010d7e372288c3609bb6513b65c
parent0a9b67feb6b613d39e532718b7bc0dc10d1176ea (diff)
downloadaports-b0863c77b84aaef1e667d5fe5965b887c3a9008a.tar.bz2
aports-b0863c77b84aaef1e667d5fe5965b887c3a9008a.tar.xz
main/xfce4-panel: apply patches from upstream
-rw-r--r--main/xfce4-panel/6792.patch37
-rw-r--r--main/xfce4-panel/APKBUILD25
-rw-r--r--main/xfce4-panel/allow-using-enter.patch193
-rw-r--r--main/xfce4-panel/dont-destroy-the-about-dialog.patch22
-rw-r--r--main/xfce4-panel/drop-the-automatics-grouping.patch119
5 files changed, 393 insertions, 3 deletions
diff --git a/main/xfce4-panel/6792.patch b/main/xfce4-panel/6792.patch
new file mode 100644
index 0000000000..3589da418d
--- /dev/null
+++ b/main/xfce4-panel/6792.patch
@@ -0,0 +1,37 @@
+From bb6b1ef03c05dfd7f8209e923c2e8ec5365ccaac Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Mon, 08 Nov 2010 20:53:56 +0000
+Subject: Fix crash in always group mode (bug #6792).
+
+---
+diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c
+index cdf696d..72283ba 100644
+--- a/plugins/tasklist/tasklist-widget.c
++++ b/plugins/tasklist/tasklist-widget.c
+@@ -1586,6 +1586,7 @@ xfce_tasklist_update_icon_geometries (gpointer data)
+
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (tasklist));
+ gtk_window_get_position (GTK_WINDOW (toplevel), &root_x, &root_y);
++ panel_return_val_if_fail (XFCE_IS_TASKLIST (tasklist), FALSE);
+
+ for (li = tasklist->windows; li != NULL; li = li->next)
+ {
+@@ -1603,7 +1604,7 @@ xfce_tasklist_update_icon_geometries (gpointer data)
+
+ case CHILD_TYPE_GROUP:
+ alloc = &child->button->allocation;
+- for (lp = child->windows; li != NULL; li = li->next)
++ for (lp = child->windows; lp != NULL; lp = lp->next)
+ {
+ child2 = lp->data;
+ panel_return_val_if_fail (WNCK_IS_WINDOW (child2->window), FALSE);
+@@ -2382,7 +2383,6 @@ xfce_tasklist_button_activate (XfceTasklistChild *child,
+ WnckWorkspace *workspace;
+
+ panel_return_if_fail (XFCE_IS_TASKLIST (child->tasklist));
+- panel_return_if_fail (child->type == CHILD_TYPE_WINDOW);
+ panel_return_if_fail (WNCK_IS_WINDOW (child->window));
+
+ if (wnck_window_is_active (child->window))
+--
+cgit v0.8.3.4
diff --git a/main/xfce4-panel/APKBUILD b/main/xfce4-panel/APKBUILD
index 263349f195..8a690f95f7 100644
--- a/main/xfce4-panel/APKBUILD
+++ b/main/xfce4-panel/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xfce4-panel
pkgver=4.7.4
-pkgrel=0
+pkgrel=1
pkgdesc="Panel for the Xfce desktop environment"
url="http://www.xfce.org/"
license="GPL-2"
@@ -9,9 +9,24 @@ subpackages="$pkgname-dev $pkgname-doc"
depends="hicolor-icon-theme"
makedepends="libxfce4ui-dev exo-dev garcon-dev libwnck-dev"
install=
-source="http://archive.xfce.org/src/xfce/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2"
+source="http://archive.xfce.org/src/xfce/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2
+ 6792.patch
+ dont-destroy-the-about-dialog.patch
+ allow-using-enter.patch
+ drop-the-automatics-grouping.patch
+ "
+
depends_dev="libxfce4util-dev gtk+-dev"
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
build() {
cd "$srcdir"/$pkgname-$pkgver
./configure --prefix=/usr \
@@ -27,4 +42,8 @@ package() {
make DESTDIR="$pkgdir" install || return 1
}
-md5sums="20a9afd50066a2c8a607f90eaec29cfa xfce4-panel-4.7.4.tar.bz2"
+md5sums="20a9afd50066a2c8a607f90eaec29cfa xfce4-panel-4.7.4.tar.bz2
+7b0cd40e47ab64fa80c763d9a22ea848 6792.patch
+039c3f3351920c0ae56e5676099c4bd5 dont-destroy-the-about-dialog.patch
+c83d70479ecd2740d924d7e37e880689 allow-using-enter.patch
+d248aa7918a4449145bf28f4670400d1 drop-the-automatics-grouping.patch"
diff --git a/main/xfce4-panel/allow-using-enter.patch b/main/xfce4-panel/allow-using-enter.patch
new file mode 100644
index 0000000000..ee645add30
--- /dev/null
+++ b/main/xfce4-panel/allow-using-enter.patch
@@ -0,0 +1,193 @@
+From 10da325fac243a0b8d6766508b3fc892d605531a Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sun, 07 Nov 2010 19:49:09 +0000
+Subject: Allow using enter in the launcher treeviews.
+
+---
+diff --git a/plugins/launcher/launcher-dialog.c b/plugins/launcher/launcher-dialog.c
+index f19e73f..fbb981c 100644
+--- a/plugins/launcher/launcher-dialog.c
++++ b/plugins/launcher/launcher-dialog.c
+@@ -30,6 +30,7 @@
+ #include <garcon/garcon.h>
+ #include <xfconf/xfconf.h>
+ #include <gio/gio.h>
++#include <gdk/gdkkeysyms.h>
+
+ #include <common/panel-private.h>
+ #include <common/panel-utils.h>
+@@ -67,14 +68,16 @@ enum
+
+
+
+-static void launcher_dialog_items_set_item (GtkTreeModel *model,
+- GtkTreeIter *iter,
+- GarconMenuItem *item);
+-static void launcher_dialog_tree_save (LauncherPluginDialog *dialog);
+-static void launcher_dialog_tree_selection_changed (GtkTreeSelection *selection,
+- LauncherPluginDialog *dialog);
+-static void launcher_dialog_items_unload (LauncherPluginDialog *dialog);
+-static void launcher_dialog_items_load (LauncherPluginDialog *dialog);
++static void launcher_dialog_items_set_item (GtkTreeModel *model,
++ GtkTreeIter *iter,
++ GarconMenuItem *item);
++static void launcher_dialog_tree_save (LauncherPluginDialog *dialog);
++static void launcher_dialog_tree_selection_changed (GtkTreeSelection *selection,
++ LauncherPluginDialog *dialog);
++static gboolean launcher_dialog_press_event (LauncherPluginDialog *dialog,
++ const gchar *object_name);
++static void launcher_dialog_items_unload (LauncherPluginDialog *dialog);
++static void launcher_dialog_items_load (LauncherPluginDialog *dialog);
+
+
+
+@@ -297,24 +300,32 @@ launcher_dialog_add_button_press_event (GtkTreeView *treeview,
+ GdkEventButton *event,
+ LauncherPluginDialog *dialog)
+ {
+- GObject *object;
+-
+ panel_return_val_if_fail (GTK_IS_BUILDER (dialog->builder), FALSE);
+ panel_return_val_if_fail (GTK_IS_TREE_VIEW (treeview), FALSE);
+
+- if (event->button == 1 && event->type == GDK_2BUTTON_PRESS
++ if (event->button == 1
++ && event->type == GDK_2BUTTON_PRESS
+ && event->window == gtk_tree_view_get_bin_window (treeview)
+ && gtk_tree_view_get_path_at_pos (treeview, event->x, event->y,
+ NULL, NULL, NULL, NULL))
+- {
+- object = gtk_builder_get_object (dialog->builder, "button-add");
+- panel_return_val_if_fail (GTK_IS_BUTTON (object), FALSE);
+- if (GTK_WIDGET_SENSITIVE (object))
+- {
+- gtk_button_clicked (GTK_BUTTON (object));
+- return TRUE;
+- }
+- }
++ return launcher_dialog_press_event (dialog, "button-add");
++
++ return FALSE;
++}
++
++
++
++static gboolean
++launcher_dialog_add_key_press_event (GtkTreeView *treeview,
++ GdkEventKey *event,
++ LauncherPluginDialog *dialog)
++{
++ panel_return_val_if_fail (GTK_IS_BUILDER (dialog->builder), FALSE);
++ panel_return_val_if_fail (GTK_IS_TREE_VIEW (treeview), FALSE);
++
++ if (event->keyval == GDK_KEY_Return
++ || event->keyval == GDK_KEY_KP_Enter)
++ return launcher_dialog_press_event (dialog, "button-add");
+
+ return FALSE;
+ }
+@@ -517,7 +528,6 @@ launcher_dialog_tree_drag_data_received (GtkWidget *treeview,
+
+
+
+-
+ static void
+ launcher_dialog_tree_selection_changed (GtkTreeSelection *selection,
+ LauncherPluginDialog *dialog)
+@@ -581,12 +591,31 @@ launcher_dialog_tree_selection_changed (GtkTreeSelection *selection,
+
+
+ static gboolean
++launcher_dialog_press_event (LauncherPluginDialog *dialog,
++ const gchar *object_name)
++{
++ GObject *object;
++
++ panel_return_val_if_fail (GTK_IS_BUILDER (dialog->builder), FALSE);
++
++ object = gtk_builder_get_object (dialog->builder, object_name);
++ panel_return_val_if_fail (GTK_IS_BUTTON (object), FALSE);
++ if (GTK_WIDGET_SENSITIVE (object))
++ {
++ gtk_button_clicked (GTK_BUTTON (object));
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
++
++
++static gboolean
+ launcher_dialog_tree_button_press_event (GtkTreeView *treeview,
+ GdkEventButton *event,
+ LauncherPluginDialog *dialog)
+ {
+- GObject *object;
+-
+ panel_return_val_if_fail (GTK_IS_BUILDER (dialog->builder), FALSE);
+ panel_return_val_if_fail (GTK_IS_TREE_VIEW (treeview), FALSE);
+
+@@ -594,15 +623,24 @@ launcher_dialog_tree_button_press_event (GtkTreeView *treeview,
+ && event->window == gtk_tree_view_get_bin_window (treeview)
+ && gtk_tree_view_get_path_at_pos (treeview, event->x, event->y,
+ NULL, NULL, NULL, NULL))
+- {
+- object = gtk_builder_get_object (dialog->builder, "item-edit");
+- panel_return_val_if_fail (GTK_IS_BUTTON (object), FALSE);
+- if (GTK_WIDGET_SENSITIVE (object))
+- {
+- gtk_button_clicked (GTK_BUTTON (object));
+- return TRUE;
+- }
+- }
++ return launcher_dialog_press_event (dialog, "item-edit");
++
++ return FALSE;
++}
++
++
++
++static gboolean
++launcher_dialog_tree_key_press_event (GtkTreeView *treeview,
++ GdkEventKey *event,
++ LauncherPluginDialog *dialog)
++{
++ panel_return_val_if_fail (GTK_IS_BUILDER (dialog->builder), FALSE);
++ panel_return_val_if_fail (GTK_IS_TREE_VIEW (treeview), FALSE);
++
++ if (event->keyval == GDK_KEY_Return
++ || event->keyval == GDK_KEY_KP_Enter)
++ return launcher_dialog_press_event (dialog, "item-edit");
+
+ return FALSE;
+ }
+@@ -991,6 +1029,8 @@ launcher_dialog_show (LauncherPlugin *plugin)
+ launcher_dialog_tree_selection_changed (selection, dialog);
+ g_signal_connect (G_OBJECT (object), "button-press-event",
+ G_CALLBACK (launcher_dialog_tree_button_press_event), dialog);
++ g_signal_connect (G_OBJECT (object), "key-press-event",
++ G_CALLBACK (launcher_dialog_tree_key_press_event), dialog);
+
+ /* connect bindings to the advanced properties */
+ for (i = 0; i < G_N_ELEMENTS (binding_names); i++)
+@@ -1006,7 +1046,7 @@ launcher_dialog_show (LauncherPlugin *plugin)
+ g_signal_connect (G_OBJECT (object), "response",
+ G_CALLBACK (launcher_dialog_add_response), dialog);
+ g_signal_connect (G_OBJECT (object), "delete-event",
+- G_CALLBACK (gtk_true), NULL);
++ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+
+ /* setup sorting in the add dialog */
+ object = gtk_builder_get_object (builder, "add-store");
+@@ -1025,6 +1065,8 @@ launcher_dialog_show (LauncherPlugin *plugin)
+ G_CALLBACK (launcher_dialog_add_selection_changed), dialog);
+ g_signal_connect (G_OBJECT (object), "button-press-event",
+ G_CALLBACK (launcher_dialog_add_button_press_event), dialog);
++ g_signal_connect (G_OBJECT (object), "key-press-event",
++ G_CALLBACK (launcher_dialog_add_key_press_event), dialog);
+
+ /* setup search filter in the add dialog */
+ object = gtk_builder_get_object (builder, "add-store-filter");
+--
+cgit v0.8.3.4
diff --git a/main/xfce4-panel/dont-destroy-the-about-dialog.patch b/main/xfce4-panel/dont-destroy-the-about-dialog.patch
new file mode 100644
index 0000000000..175ed7ede8
--- /dev/null
+++ b/main/xfce4-panel/dont-destroy-the-about-dialog.patch
@@ -0,0 +1,22 @@
+From de2ebcb59c77eeb30918d40271cb8ab0393d6fc0 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sun, 07 Nov 2010 12:07:19 +0000
+Subject: Don't destroy the about dialog.
+
+---
+diff --git a/panel/panel-dialogs.c b/panel/panel-dialogs.c
+index 14596e9..f2f3b15 100644
+--- a/panel/panel-dialogs.c
++++ b/panel/panel-dialogs.c
+@@ -44,9 +44,6 @@ panel_dialogs_show_about_email_hook (GtkAboutDialog *dialog,
+ {
+ if (g_strcmp0 ("tictactoe@xfce.org", uri) == 0)
+ {
+- /* gtk needs to finish some stuff before the dialog can be closed */
+- exo_gtk_object_destroy_later (GTK_OBJECT (dialog));
+-
+ /* open tic-tac-toe */
+ panel_tic_tac_toe_show ();
+ }
+--
+cgit v0.8.3.4
diff --git a/main/xfce4-panel/drop-the-automatics-grouping.patch b/main/xfce4-panel/drop-the-automatics-grouping.patch
new file mode 100644
index 0000000000..61d449794e
--- /dev/null
+++ b/main/xfce4-panel/drop-the-automatics-grouping.patch
@@ -0,0 +1,119 @@
+From 50c4281e5b8c36107732d0d48dd55e5ee7b9b549 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Mon, 08 Nov 2010 21:10:16 +0000
+Subject: Drop the automatics grouping option from tasklist.
+
+Not implemented yet, so avoid the confusion.
+---
+diff --git a/plugins/tasklist/tasklist-dialog.glade b/plugins/tasklist/tasklist-dialog.glade
+index a2e19a0..a779d52 100644
+--- a/plugins/tasklist/tasklist-dialog.glade
++++ b/plugins/tasklist/tasklist-dialog.glade
+@@ -349,10 +349,10 @@
+ <col id="0" translatable="yes">Never</col>
+ </row>
+ <row>
+- <col id="0" translatable="yes">When space is limited</col>
++ <col id="0" translatable="yes">Always</col>
+ </row>
+ <row>
+- <col id="0" translatable="yes">Always</col>
++ <col id="0" translatable="yes">When space is limited</col>
+ </row>
+ </data>
+ </object>
+diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c
+index 72283ba..23cd967 100644
+--- a/plugins/tasklist/tasklist-widget.c
++++ b/plugins/tasklist/tasklist-widget.c
+@@ -307,7 +307,7 @@ xfce_tasklist_class_init (XfceTasklistClass *klass)
+ g_param_spec_uint ("grouping",
+ NULL, NULL,
+ XFCE_TASKLIST_GROUPING_MIN,
+- XFCE_TASKLIST_GROUPING_MAX,
++ XFCE_TASKLIST_GROUPING_MAX + 1 /* TODO drop this later */,
+ XFCE_TASKLIST_GROUPING_DEFAULT,
+ EXO_PARAM_READWRITE));
+
+@@ -765,10 +765,12 @@ xfce_tasklist_size_layout (XfceTasklist *tasklist,
+ n_buttons = tasklist->n_windows;
+ n_buttons_target = ((alloc->width / max_button_length) + 1) * rows;
+
++#if 0
+ if (tasklist->grouping == XFCE_TASKLIST_GROUPING_AUTO)
+ {
+ /* try creating group buttons */
+ }
++#endif
+
+ /* we now push the windows with the lowest score in the
+ * overflow menu */
+@@ -2918,9 +2920,11 @@ xfce_tasklist_group_button_child_destroyed (XfceTasklistChild *group_child,
+ }
+
+ if ((group_child->tasklist->grouping == XFCE_TASKLIST_GROUPING_ALWAYS
+- && n_children > 0)
++ && n_children > 0))
++#if 0
+ || (group_child->tasklist->grouping == XFCE_TASKLIST_GROUPING_AUTO
+ && n_children > 1))
++#endif
+ {
+ xfce_tasklist_group_button_child_visible_changed (group_child);
+ xfce_tasklist_group_button_name_changed (NULL, group_child);
+@@ -3148,6 +3152,10 @@ xfce_tasklist_set_grouping (XfceTasklist *tasklist,
+ {
+ panel_return_if_fail (XFCE_IS_TASKLIST (tasklist));
+
++ /* TODO avoid overflow, because we allows + 1 in the object */
++ if (grouping > XFCE_TASKLIST_GROUPING_MAX)
++ grouping = XFCE_TASKLIST_GROUPING_MAX;
++
+ if (tasklist->grouping != grouping)
+ {
+ tasklist->grouping = grouping;
+diff --git a/plugins/tasklist/tasklist-widget.h b/plugins/tasklist/tasklist-widget.h
+index c903260..c0574e4 100644
+--- a/plugins/tasklist/tasklist-widget.h
++++ b/plugins/tasklist/tasklist-widget.h
+@@ -40,12 +40,12 @@ typedef enum _XfceTasklistSortOrder XfceTasklistSortOrder;
+ enum _XfceTasklistGrouping
+ {
+ XFCE_TASKLIST_GROUPING_NEVER,
+- XFCE_TASKLIST_GROUPING_AUTO, /* when space is limited */
+ XFCE_TASKLIST_GROUPING_ALWAYS,
++ /*XFCE_TASKLIST_GROUPING_AUTO, *//* when space is limited */
+
+ XFCE_TASKLIST_GROUPING_MIN = XFCE_TASKLIST_GROUPING_NEVER,
+ XFCE_TASKLIST_GROUPING_MAX = XFCE_TASKLIST_GROUPING_ALWAYS,
+- XFCE_TASKLIST_GROUPING_DEFAULT = XFCE_TASKLIST_GROUPING_AUTO
++ XFCE_TASKLIST_GROUPING_DEFAULT = XFCE_TASKLIST_GROUPING_NEVER
+ };
+
+ enum _XfceTasklistSortOrder
+diff --git a/plugins/tasklist/tasklist.c b/plugins/tasklist/tasklist.c
+index d69c1b9..407a150 100644
+--- a/plugins/tasklist/tasklist.c
++++ b/plugins/tasklist/tasklist.c
+@@ -185,6 +185,7 @@ tasklist_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
+ GtkBuilder *builder;
+ GObject *dialog;
+ GObject *object;
++ GtkTreeIter iter;
+
+ /* setup the dialog */
+ PANEL_UTILS_LINK_4UI
+@@ -222,6 +223,11 @@ tasklist_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
+ gtk_widget_hide (GTK_WIDGET (object));
+ #endif
+
++ /* TODO: remove this if always group is supported */
++ object = gtk_builder_get_object (builder, "grouping-model");
++ if (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (object), &iter, NULL, 2))
++ gtk_list_store_remove (GTK_LIST_STORE (object), &iter);
++
+ gtk_widget_show (GTK_WIDGET (dialog));
+ }
+
+--
+cgit v0.8.3.4