rpms/pan/devel pan-0.97-tree-expanders.patch, NONE, 1.1 pan.spec, 1.15, 1.16
Michael A. Peters (mpeters)
fedora-extras-commits at redhat.com
Tue May 16 10:57:22 UTC 2006
- Previous message (by thread): fedora-security/audit fc4,1.247,1.248 fc5,1.161,1.162
- Next message (by thread): rpms/bzflag/devel .cvsignore, 1.5, 1.6 bzflag.spec, 1.25, 1.26 sources, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mpeters
Update of /cvs/extras/rpms/pan/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11658
Modified Files:
pan.spec
Added Files:
pan-0.97-tree-expanders.patch
Log Message:
patch from upstream
pan-0.97-tree-expanders.patch:
--- NEW FILE pan-0.97-tree-expanders.patch ---
diff -u pan/gui-bak/group-pane.cc pan/gui/group-pane.cc
--- pan/gui-bak/group-pane.cc 2006-05-15 14:22:21.000000000 -0500
+++ pan/gui/group-pane.cc 2006-05-15 14:22:41.000000000 -0500
@@ -251,13 +251,56 @@
g_idle_add (on_row_activated_idle, pane_g);
}
+namespace
+{
+ bool row_collapsed_or_expanded (false);
+
+ void row_collapsed_or_expanded_cb (GtkTreeView *view, GtkTreeIter *iter, GtkTreePath *path, gpointer unused)
+ {
+ row_collapsed_or_expanded = true;
+ }
+
+ struct Blah
+ {
+ GtkTreeView * view;
+ GtkTreePath * path;
+ GtkTreeViewColumn * col;
+ };
+
+ gboolean maybe_activate_on_idle_idle (gpointer blah_gpointer)
+ {
+ Blah * blah = (Blah*) blah_gpointer;
+ if (!row_collapsed_or_expanded)
+ gtk_tree_view_row_activated (blah->view, blah->path, blah->col);
+ gtk_tree_path_free (blah->path);
+ g_free (blah);
+ return false;
+ }
+
+ /**
+ * There doesn't seem to be any way to see if a mouse click in a tree view
+ * happened on the expander or elsewhere in a row, so when deciding whether or
+ * not to activate a row on single click, let's wait and see if a row expands or
+ * collapses.
+ */
+ void maybe_activate_on_idle (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *col)
+ {
+ row_collapsed_or_expanded = false;
+ Blah * blah = (Blah*) g_new (Blah, 1);
+ blah->view = view;
+ blah->path = path;
+ blah->col = col;
+ g_idle_add (maybe_activate_on_idle_idle, blah);
+ }
+}
+
gboolean
GroupPane :: on_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
{
GroupPane * pane (static_cast<GroupPane*>(userdata));
// single click with the right mouse button?
- if (event->type == GDK_BUTTON_PRESS && event->button == 3)
+ if (event->type == GDK_BUTTON_PRESS && event->button == 3)
{
GtkTreeSelection * selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
GtkTreePath * path;
@@ -271,20 +314,21 @@
do_popup_menu (treeview, event, userdata);
return true;
}
- else if (pane->_prefs.get_flag("single-click-activates-group", true)
- && event->type == GDK_BUTTON_PRESS
- && event->button == 1)
+ else if (pane->_prefs.get_flag("single-click-activates-group",true)
+ && (event->type == GDK_BUTTON_RELEASE)
+ && (event->button == 1)
+ && (event->send_event == false)
+ && (event->window == gtk_tree_view_get_bin_window (GTK_TREE_VIEW(treeview)))
+ && !(event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK)))
{
GtkTreePath * path;
GtkTreeViewColumn * col;
+ gint cell_x(0), cell_y(0);
if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview),
- (gint) event->x,
+ (gint) event->x,
(gint) event->y,
- &path, &col, NULL, NULL))
- {
- gtk_tree_view_row_activated (GTK_TREE_VIEW(treeview), path, col);
- gtk_tree_path_free(path);
- }
+ &path, &col, &cell_x, &cell_y))
+ maybe_activate_on_idle (GTK_TREE_VIEW(treeview), path, col);
}
return false;
@@ -704,7 +748,10 @@
gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW(_tree_view), true);
#endif
+ g_signal_connect (_tree_view, "row_collapsed", G_CALLBACK(row_collapsed_or_expanded_cb), 0);
+ g_signal_connect (_tree_view, "row_expanded", G_CALLBACK(row_collapsed_or_expanded_cb), 0);
g_signal_connect (_tree_view, "button-press-event", G_CALLBACK(on_button_pressed), this);
+ g_signal_connect (_tree_view, "button-release-event", G_CALLBACK(on_button_pressed), this);
g_signal_connect (_tree_view, "popup-menu", G_CALLBACK(on_popup_menu), this);
g_signal_connect (_tree_view, "row-activated", G_CALLBACK(on_row_activated), this);
g_object_unref (G_OBJECT(_tree_store));
diff -u pan/gui-bak/header-pane.cc pan/gui/header-pane.cc
--- pan/gui-bak/header-pane.cc 2006-05-15 14:22:22.000000000 -0500
+++ pan/gui/header-pane.cc 2006-05-15 14:27:50.000000000 -0500
@@ -1013,7 +1013,48 @@
return true;
}
}
+namespace
+{
+ bool row_collapsed_or_expanded (false);
+
+ void row_collapsed_or_expanded_cb (GtkTreeView *view, GtkTreeIter *iter, GtkTreePath *path, gpointer unused)
+ {
+ row_collapsed_or_expanded = true;
+ }
+
+ struct Blah
+ {
+ GtkTreeView * view;
+ GtkTreePath * path;
+ GtkTreeViewColumn * col;
+ };
+ gboolean maybe_activate_on_idle_idle (gpointer blah_gpointer)
+ {
+ Blah * blah = (Blah*) blah_gpointer;
+ if (!row_collapsed_or_expanded)
+ gtk_tree_view_row_activated (blah->view, blah->path, blah->col);
+ gtk_tree_path_free (blah->path);
+ g_free (blah);
+ return false;
+ }
+
+ /**
+ * There doesn't seem to be any way to see if a mouse click in a tree view
+ * happened on the expander or elsewhere in a row, so when deciding whether or
+ * not to activate a row on single click, let's wait and see if a row expands or
+ * collapses.
+ */
+ void maybe_activate_on_idle (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *col)
+ {
+ row_collapsed_or_expanded = false;
+ Blah * blah = (Blah*) g_new (Blah, 1);
+ blah->view = view;
+ blah->path = path;
+ blah->col = col;
+ g_idle_add (maybe_activate_on_idle_idle, blah);
+ }
+}
gboolean
HeaderPane :: on_button_pressed (GtkWidget * treeview, GdkEventButton *event, gpointer userdata)
@@ -1044,6 +1085,7 @@
&& (event->type == GDK_BUTTON_RELEASE)
&& (event->button == 1)
&& (event->window == gtk_tree_view_get_bin_window (GTK_TREE_VIEW(treeview)))
+ && (event->send_event == false)
&& !(event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK)))
{
GtkTreePath * path;
@@ -1053,14 +1095,7 @@
(gint) event->x,
(gint) event->y,
&path, &col, &cell_x, &cell_y))
- {
- // get the cell area to make sure they didn't click on an expander.
- // GdkRectangle rect;
- // gtk_tree_view_get_cell_area (GTK_TREE_VIEW(treeview), path, col, &rect);
- // if (rect.x<=cell_x && cell_x<(rect.x+rect.width) && rect.y<=cell_y && cell_y<(rect.y+rect.height))
- gtk_tree_view_row_activated (GTK_TREE_VIEW(treeview), path, col);
- gtk_tree_path_free(path);
- }
+ maybe_activate_on_idle (GTK_TREE_VIEW(treeview), path, col);
}
return false;
@@ -1602,6 +1637,8 @@
g_signal_connect (_tree_view, "button-release-event", G_CALLBACK(on_button_pressed), this);
g_signal_connect (_tree_view, "button-press-event", G_CALLBACK(on_button_pressed), this);
+ g_signal_connect (_tree_view, "row-collapsed", G_CALLBACK(row_collapsed_or_expanded_cb), NULL);
+ g_signal_connect (_tree_view, "row-expanded", G_CALLBACK(row_collapsed_or_expanded_cb), NULL);
g_signal_connect (_tree_view, "popup-menu", G_CALLBACK(on_popup_menu), this);
g_signal_connect (_tree_view, "row-activated", G_CALLBACK(on_row_activated), this);
GtkWidget * scroll = gtk_scrolled_window_new (0, 0);
Index: pan.spec
===================================================================
RCS file: /cvs/extras/rpms/pan/devel/pan.spec,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- pan.spec 14 May 2006 04:12:20 -0000 1.15
+++ pan.spec 16 May 2006 10:57:22 -0000 1.16
@@ -1,12 +1,13 @@
Summary: A GNOME/GTK+ news reader for X
Name: pan
Version: 0.97
-Release: 1%{?dist}
+Release: 2%{?dist}
Epoch: 1
License: GPL
Group: Applications/Internet
Source0: http://pan.rebelbase.com/download/%{version}/SOURCE/%{name}-%{version}.tar.bz2
Patch0: pan-0.97-crash-on-shutdown.patch
+Patch1: pan-0.97-tree-expanders.patch
URL: http://pan.rebelbase.com/
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: desktop-file-utils
@@ -28,6 +29,7 @@
%prep
%setup -q
%patch0 -p0
+%patch1 -p0
echo "StartupNotify=true" >> pan.desktop
@@ -72,6 +74,9 @@
%{_datadir}/applications/fedora-pan.desktop
%changelog
+* Tue May 16 2006 Michael A. Peters <mpeters at mac.com> - 1:0.97-2
+- Added pan-0.97-tree-expanders.patch from upstream
+
* Sat May 13 2006 Michael A. Peters <mpeters at mac.com> - 1:0.97-1
- Update to 0.97 (previous patches no longer needed)
- Patch pan-0.97-crash-on-shutdown.patch from upstream added
- Previous message (by thread): fedora-security/audit fc4,1.247,1.248 fc5,1.161,1.162
- Next message (by thread): rpms/bzflag/devel .cvsignore, 1.5, 1.6 bzflag.spec, 1.25, 1.26 sources, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list