[rubygem-gtk2] Apply upstream patch to make GdkEventButton inherit GdkEventAny
Mamoru TASAKA
mtasaka at fedoraproject.org
Tue Feb 11 13:45:45 UTC 2014
commit 2ed0151e8b8e89be93dd67ad874eabb36d76a912
Author: Mamoru TASAKA <mtasaka at fedoraproject.org>
Date: Tue Feb 11 22:46:18 2014 +0900
Apply upstream patch to make GdkEventButton inherit GdkEventAny
rubygem-gtk2-2.1.0-GdkEventAny-inheritance.patch | 65 ++++++++++++++++++++++
rubygem-gtk2.spec | 10 +++-
2 files changed, 74 insertions(+), 1 deletions(-)
---
diff --git a/rubygem-gtk2-2.1.0-GdkEventAny-inheritance.patch b/rubygem-gtk2-2.1.0-GdkEventAny-inheritance.patch
new file mode 100644
index 0000000..19263c5
--- /dev/null
+++ b/rubygem-gtk2-2.1.0-GdkEventAny-inheritance.patch
@@ -0,0 +1,65 @@
+From f2441d4716aff0460c67d6ccfca48532aa14a368 Mon Sep 17 00:00:00 2001
+From: Kouhei Sutou <kou at clear-code.com>
+Date: Tue, 11 Feb 2014 16:14:13 +0900
+Subject: [PATCH] gtk2: add missing methods derived from GdkEventAny to all
+ event classes
+
+TODO: We should fix it in gdk3 too.
+
+GitHub: fix #222
+
+Reported by mtasaka. Thanks!!!
+---
+ gtk2/ext/gtk2/rbgdkevent.c | 9 ++++++---
+ gtk2/test/test_gdk_event.rb | 10 ++++++++++
+ 2 files changed, 16 insertions(+), 3 deletions(-)
+
+diff --git a/gtk2/ext/gtk2/rbgdkevent.c b/gtk2/ext/gtk2/rbgdkevent.c
+index 6c2ff5b..598cd7e 100644
+--- a/gtk2/ext/gtk2/rbgdkevent.c
++++ b/gtk2/ext/gtk2/rbgdkevent.c
+@@ -987,6 +987,12 @@ gboolean gdk_event_get_state (GdkEvent *event,
+ rb_define_singleton_method(rb_cGdkEvent, "add_client_message_filter", gdkevent_s_add_client_message_filter, 1);
+ rb_define_method(rb_cGdkEvent, "screen", gdkevent_screen, 0);
+ rb_define_method(rb_cGdkEvent, "set_screen", gdkevent_set_screen, 1);
++
++ /* GdkEventAny fields */
++ DEFINE_ACCESSOR(rb_cGdkEvent, any, window);
++ rb_define_method(rb_cGdkEvent, "send_event?", gdkeventany_send_event, 0);
++ rb_define_method(rb_cGdkEvent, "set_send_event", gdkeventany_set_send_event, 1);
++
+ G_DEF_SETTERS(rb_cGdkEvent);
+
+ /*
+@@ -1013,9 +1019,6 @@ gboolean gdk_event_get_state (GdkEvent *event,
+ rb_cGdkEventAny =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_ANY, "EventAny",
+ mGdk, rb_cGdkEvent);
+- DEFINE_ACCESSOR(rb_cGdkEventAny, any, window);
+- rb_define_method(rb_cGdkEventAny, "send_event?", gdkeventany_send_event, 0);
+- rb_define_method(rb_cGdkEventAny, "set_send_event", gdkeventany_set_send_event, 1);
+ G_DEF_SETTERS(rb_cGdkEventAny);
+
+ /* GdkEventExpose */
+diff --git a/gtk2/test/test_gdk_event.rb b/gtk2/test/test_gdk_event.rb
+index e94eeb9..adb32c7 100644
+--- a/gtk2/test/test_gdk_event.rb
++++ b/gtk2/test/test_gdk_event.rb
+@@ -8,4 +8,14 @@ def test_motion_request
+ motion.request
+ end
+ end
++
++ class TestButton < self
++ def setup
++ @button = Gdk::EventButton.new(:button_press)
++ end
++
++ def test_window
++ assert_nil(@button.window)
++ end
++ end
+ end
+--
+1.8.5.1
+
diff --git a/rubygem-gtk2.spec b/rubygem-gtk2.spec
index b22cc2c..721e74e 100644
--- a/rubygem-gtk2.spec
+++ b/rubygem-gtk2.spec
@@ -9,12 +9,15 @@
Summary: Ruby binding of GTK+-2.x
Name: rubygem-%{gem_name}
Version: 2.1.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Group: Development/Languages
# from README
License: LGPLv2
URL: http://ruby-gnome2.sourceforge.jp/
Source0: http://rubygems.org/downloads/%{gem_name}-%{version}.gem
+# https://github.com/ruby-gnome2/ruby-gnome2/commit/f2441d4716aff0460c67d6ccfca48532aa14a368.patch
+# slightly modified
+Patch0: rubygem-gtk2-2.1.0-GdkEventAny-inheritance.patch
Requires: ruby(release)
BuildRequires: ruby(release)
@@ -101,6 +104,8 @@ pushd tmpunpackdir
gem unpack %{SOURCE0}
cd %{gem_name}-%{version}
+%patch0 -p2 -b .gdkevent_inherit
+
gem specification -l --ruby %{SOURCE0} > %{gem_name}.gemspec
# Allow ruby-gnome2 no less than ones
@@ -208,6 +213,9 @@ xvfb-run \
%{gem_instdir}/test/
%changelog
+* Tue Feb 11 2014 Mamoru TASAKA <mtasaka at fedoraproject.org> - 2.1.0-2
+- Apply upstream patch to make GdkEventButton inherit GdkEventAny
+
* Thu Jan 16 2014 Mamoru TASAKA <mtasaka at fedoraproject.org> - 2.1.0-1
- 2.1.0
More information about the scm-commits
mailing list