[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