[rubygem-gdk3] Apply upstream patch to make GdkEventButton inherit GdkEventAny
Mamoru TASAKA
mtasaka at fedoraproject.org
Wed Feb 12 04:11:34 UTC 2014
commit fe0097174f02c311bc3ee48899514fca9e36b19a
Author: Mamoru TASAKA <mtasaka at fedoraproject.org>
Date: Wed Feb 12 13:12:05 2014 +0900
Apply upstream patch to make GdkEventButton inherit GdkEventAny
rubygem-gdk3-2.1.0-GdkEventAny-inheritance.patch | 410 ++++++++++++++++++++++
rubygem-gdk3.spec | 10 +-
2 files changed, 419 insertions(+), 1 deletions(-)
---
diff --git a/rubygem-gdk3-2.1.0-GdkEventAny-inheritance.patch b/rubygem-gdk3-2.1.0-GdkEventAny-inheritance.patch
new file mode 100644
index 0000000..72d77a4
--- /dev/null
+++ b/rubygem-gdk3-2.1.0-GdkEventAny-inheritance.patch
@@ -0,0 +1,410 @@
+From 0ed9577c7edc9b227d86d3110bb8294940507f19 Mon Sep 17 00:00:00 2001
+From: Kouhei Sutou <kou at clear-code.com>
+Date: Tue, 11 Feb 2014 16:28:26 +0900
+Subject: [PATCH] gdk3: add missing methods derived from GdkEventAny to all
+ event classes
+
+GitHub: #222
+
+Reported by mtasaka. Thanks!!!
+---
+ gdk3/ext/gdk3/rbgdkevent.c | 15 ++---
+ gdk3/test/test-gdk-event.rb | 134 +++++++++++++++++++++++++++++++++++++-------
+ 2 files changed, 121 insertions(+), 28 deletions(-)
+
+diff --git a/gdk3/ext/gdk3/rbgdkevent.c b/gdk3/ext/gdk3/rbgdkevent.c
+index c5e908e..46f33f5 100644
+--- a/gdk3/ext/gdk3/rbgdkevent.c
++++ b/gdk3/ext/gdk3/rbgdkevent.c
+@@ -1,6 +1,6 @@
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
+ /*
+- * Copyright (C) 2002-2013 Ruby-GNOME2 Project Team
++ * Copyright (C) 2002-2014 Ruby-GNOME2 Project Team
+ * Copyright (C) 1998-2000 Yukihiro Matsumoto,
+ * Daisuke Kanda,
+ * Hiroshi Igarashi
+@@ -721,8 +721,6 @@ gboolean gdk_event_get_state (GdkEvent *event,
+ ATTR_FLOAT(button, y_root);
+
+ /* GdkEventTouch */
+-ATTR_GOBJ(touch, window);
+-ATTR_BOOL(touch, send_event);
+ ATTR_UINT(touch, time);
+ ATTR_FLOAT(touch, x);
+ ATTR_FLOAT(touch, y);
+@@ -902,6 +900,11 @@ gboolean gdk_event_get_state (GdkEvent *event,
+ rbg_define_method(rb_cGdkEvent, "screen", gdkevent_screen, 0);
+ rbg_define_method(rb_cGdkEvent, "set_screen", gdkevent_set_screen, 1);
+
++ /* GdkEventAny's fields */
++ DEFINE_ACCESSOR(rb_cGdkEvent, any, window);
++ rbg_define_method(rb_cGdkEvent, "send_event?", gdkeventany_send_event, 0);
++ rbg_define_method(rb_cGdkEvent, "set_send_event", gdkeventany_set_send_event, 1);
++
+ /*
+ * GdkEvent's Constants
+ */
+@@ -926,9 +929,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);
+- rbg_define_method(rb_cGdkEventAny, "send_event?", gdkeventany_send_event, 0);
+- rbg_define_method(rb_cGdkEventAny, "set_send_event", gdkeventany_set_send_event, 1);
+
+ /* GdkEventExpose */
+ rb_cGdkEventExpose =
+@@ -988,9 +988,6 @@ gboolean gdk_event_get_state (GdkEvent *event,
+ rb_cGdkEventTouch =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_TOUCH, "EventTouch",
+ mGdk, rb_cGdkEvent);
+- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, window);
+- rbg_define_method(rb_cGdkEventTouch, "send_event?", gdkeventtouch_send_event, 0);
+- rbg_define_method(rb_cGdkEventTouch, "set_send_event", gdkeventtouch_set_send_event, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, time);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, x);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, y);
+diff --git a/gdk3/test/test-gdk-event.rb b/gdk3/test/test-gdk-event.rb
+index 5117a53..a011f25 100644
+--- a/gdk3/test/test-gdk-event.rb
++++ b/gdk3/test/test-gdk-event.rb
+@@ -1,6 +1,6 @@
+ # -*- coding: utf-8 -*-
+ #
+-# Copyright (C) 2013 Ruby-GNOME2 Project Team
++# Copyright (C) 2013-2014 Ruby-GNOME2 Project Team
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+@@ -17,11 +17,27 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+ class TestGdkEvent < Test::Unit::TestCase
++ module TestAnyMethods
++ def test_window
++ assert_nil(event.window)
++ end
++
++ def test_send_event
++ assert_false(event.send_event?)
++ end
++ end
++
+ class TestAny < self
++ include TestAnyMethods
++
+ def setup
+ @event = Gdk::EventAny.new(:delete)
+ end
+
++ def event
++ @event
++ end
++
+ def test_delete
+ assert_equal("GDK_DELETE",
+ Gdk::EventAny.new(:delete).event_type.name)
+@@ -31,23 +47,19 @@ def test_destroy
+ assert_equal("GDK_DESTROY",
+ Gdk::EventAny.new(:destroy).event_type.name)
+ end
+-
+- def test_window
+- assert_nothing_raised do
+- @event.window
+- end
+- end
+-
+- def test_send_event
+- assert_false(@event.send_event?)
+- end
+ end
+
+ class TestKey < self
++ include TestAnyMethods
++
+ def setup
+ @key = Gdk::EventKey.new(:key_press)
+ end
+
++ def event
++ @key
++ end
++
+ def test_key_press
+ assert_equal("GDK_KEY_PRESS",
+ Gdk::EventKey.new(:key_press).event_type.name)
+@@ -72,10 +84,16 @@ def test_keyval
+ end
+
+ class TestButton < self
++ include TestAnyMethods
++
+ def setup
+ @button = Gdk::EventButton.new(:button_press)
+ end
+
++ def event
++ @button
++ end
++
+ def test_button_press
+ assert_equal("GDK_BUTTON_PRESS",
+ Gdk::EventButton.new(:button_press).event_type.name)
+@@ -126,18 +144,14 @@ def test_y_root
+ end
+
+ class TestTouch < self
++ include TestAnyMethods
++
+ def setup
+ @touch = Gdk::EventTouch.new(:touch_begin)
+ end
+
+- def test_window
+- assert_nothing_raised do
+- @touch.window
+- end
+- end
+-
+- def test_send_event
+- assert_false(@touch.send_event?)
++ def event
++ @touch
+ end
+
+ def test_time
+@@ -204,10 +218,16 @@ def test_y_root
+ end
+
+ class TestScroll < self
++ include TestAnyMethods
++
+ def setup
+ @scroll = Gdk::EventScroll.new
+ end
+
++ def event
++ @scroll
++ end
++
+ def test_time
+ assert_kind_of(Integer, @scroll.time)
+ end
+@@ -238,10 +258,16 @@ def test_y_root
+ end
+
+ class TestMotion < self
++ include TestAnyMethods
++
+ def setup
+ @motion = Gdk::EventMotion.new
+ end
+
++ def event
++ @motion
++ end
++
+ def test_time
+ assert_kind_of(Integer, @motion.time)
+ end
+@@ -274,20 +300,32 @@ def test_request
+ end
+
+ class TestVisibility < self
++ include TestAnyMethods
++
+ def setup
+ @visibility = Gdk::EventVisibility.new(:visibility_notify)
+ end
+
++ def event
++ @visibility
++ end
++
+ def test_state
+ assert_kind_of(Gdk::EventVisibility::State, @visibility.state)
+ end
+ end
+
+ class TestCrossing < self
++ include TestAnyMethods
++
+ def setup
+ @crossing = Gdk::EventCrossing.new(:enter_notify)
+ end
+
++ def event
++ @crossing
++ end
++
+ def test_enter_notify
+ assert_equal("GDK_ENTER_NOTIFY",
+ Gdk::EventCrossing.new(:enter_notify).event_type.name)
+@@ -334,20 +372,32 @@ def test_state
+ end
+
+ class TestFocus < self
++ include TestAnyMethods
++
+ def setup
+ @focus = Gdk::EventFocus.new
+ end
+
++ def event
++ @focus
++ end
++
+ def test_in
+ assert_false(@focus.in?)
+ end
+ end
+
+ class TestConfigure < self
++ include TestAnyMethods
++
+ def setup
+ @configure = Gdk::EventConfigure.new
+ end
+
++ def event
++ @configure
++ end
++
+ def test_x
+ assert_kind_of(Integer, @configure.x)
+ end
+@@ -366,10 +416,16 @@ def test_height
+ end
+
+ class TestProperty < self
++ include TestAnyMethods
++
+ def setup
+ @property = Gdk::EventProperty.new
+ end
+
++ def event
++ @property
++ end
++
+ def test_atom
+ assert_nothing_raised do
+ @property.atom
+@@ -386,10 +442,16 @@ def test_state
+ end
+
+ class TestSelection < self
++ include TestAnyMethods
++
+ def setup
+ @selection = Gdk::EventSelection.new(:selection_clear)
+ end
+
++ def event
++ @selection
++ end
++
+ def test_selection_clear
+ assert_equal("GDK_SELECTION_CLEAR",
+ Gdk::EventSelection.new(:selection_clear).event_type.name)
+@@ -429,10 +491,16 @@ def test_time
+ end
+
+ class TestDND < self
++ include TestAnyMethods
++
+ def setup
+ @dnd = Gdk::EventDND.new(:drag_enter)
+ end
+
++ def event
++ @dnd
++ end
++
+ def test_drag_enter
+ assert_equal("GDK_DRAG_ENTER",
+ Gdk::EventDND.new(:drag_enter).event_type.name)
+@@ -483,10 +551,16 @@ def test_y_root
+ end
+
+ class TestProximity < self
++ include TestAnyMethods
++
+ def setup
+ @proximity = Gdk::EventProximity.new(:proximity_in)
+ end
+
++ def event
++ @proximity
++ end
++
+ def test_proximity_in
+ assert_equal("GDK_PROXIMITY_IN",
+ Gdk::EventProximity.new(:proximity_in).event_type.name)
+@@ -509,10 +583,16 @@ def test_device
+ end
+
+ class TestWindowState < self
++ include TestAnyMethods
++
+ def setup
+ @window_state = Gdk::EventWindowState.new
+ end
+
++ def event
++ @window_state
++ end
++
+ def test_changed_mask
+ assert_nothing_raised do
+ @window_state.changed_mask
+@@ -527,10 +607,16 @@ def test_new_window_state
+ end
+
+ class TestSetting < self
++ include TestAnyMethods
++
+ def setup
+ @setting = Gdk::EventSetting.new
+ end
+
++ def event
++ @setting
++ end
++
+ def test_action
+ assert_nothing_raised do
+ @setting.action
+@@ -549,6 +635,10 @@ def setup
+ @owner_change = Gdk::EventOwnerChange.new
+ end
+
++ def event
++ @owner_change
++ end
++
+ def test_owner
+ assert_nothing_raised do
+ @owner_change.owner
+@@ -577,10 +667,16 @@ def test_selection_time
+ end
+
+ class TestGrabBroken < self
++ include TestAnyMethods
++
+ def setup
+ @grab_broken = Gdk::EventGrabBroken.new
+ end
+
++ def event
++ @grab_broken
++ end
++
+ def test_keyboard
+ assert_boolean(@grab_broken.keyboard?)
+ end
+--
+1.8.5.1
+
diff --git a/rubygem-gdk3.spec b/rubygem-gdk3.spec
index e82996a..ef18443 100644
--- a/rubygem-gdk3.spec
+++ b/rubygem-gdk3.spec
@@ -6,7 +6,7 @@
Summary: Ruby binding of GDK-3.x
Name: rubygem-%{gem_name}
Version: 2.1.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Group: Development/Languages
# Various files in gem
@@ -16,6 +16,9 @@ Source0: http://rubygems.org/gems/%{gem_name}-%{version}.gem
# https://raw.github.com/ruby-gnome2/ruby-gnome2/master/gdk3/COPYING.LIB
# Renamed to avoid overwrite on SOURCE dir
Source1: COPYING.LIB.gdk3
+# https://github.com/ruby-gnome2/ruby-gnome2/issues/222
+# https://github.com/ruby-gnome2/ruby-gnome2/commit/0ed9577c7edc9b227d86d3110bb8294940507f19.patch
+Patch0: rubygem-gdk3-2.1.0-GdkEventAny-inheritance.patch
# MRI only
Requires: ruby
@@ -70,6 +73,8 @@ pushd tmpunpackdir
gem unpack %{SOURCE0}
cd %{gem_name}-%{version}
+%patch0 -p2 -b .gdkevent_inherit
+
# Permission
find . -name \*.rb -print0 | xargs --null chmod 0644
@@ -164,6 +169,9 @@ popd
%exclude %{gem_instdir}/test/
%changelog
+* Wed Feb 12 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