[input-pad] Updated input-pad-HEAD.patch for eekboard

Takao Fujiwara fujiwara at fedoraproject.org
Fri Feb 25 04:08:05 UTC 2011


commit b0dd604fc659576d768238f2b563a7ff3c91092f
Author: Takao Fujiwara <tfujiwar at redhat.com>
Date:   Fri Feb 25 13:07:51 2011 +0900

    Updated input-pad-HEAD.patch for eekboard

 input-pad-HEAD.patch |  192 ++++++++++++++++++++++++++++++++++++++++++++++++++
 input-pad.spec       |   25 +++----
 2 files changed, 203 insertions(+), 14 deletions(-)
---
diff --git a/input-pad-HEAD.patch b/input-pad-HEAD.patch
index db3574d..ff00ee5 100644
--- a/input-pad-HEAD.patch
+++ b/input-pad-HEAD.patch
@@ -59,3 +59,195 @@ index 372c611..a7ec01e 100644
 -- 
 1.7.3.2
 
+From 5c019b23329750085fe6a0a1fb8eef576195b764 Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <ueno at unixuser.org>
+Date: Tue, 25 Jan 2011 18:59:47 +0900
+Subject: [PATCH 1/2] Follow eek 0.90 API changes.
+
+---
+ configure.ac        |    2 +-
+ input-pad/eek-gtk.c |   30 ++++++++++--------------------
+ 2 files changed, 11 insertions(+), 21 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7445290..d49ad9e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -142,7 +142,7 @@ AC_MSG_RESULT($enable_eek)
+ if test x"$enable_eek" = xyes; then
+     dnl - check eek is available
+     PKG_CHECK_MODULES(EEK, [
+-        eek-gtk-0.1 eek-xkl-0.1
++        eek-gtk-0.90 eek-xkl-0.90
+ 	],, AC_MSG_ERROR([libeek not found]))
+     AM_CONDITIONAL(HAVE_EEK, true)
+ else
+diff --git a/input-pad/eek-gtk.c b/input-pad/eek-gtk.c
+index 53c52c8..84f22cd 100644
+--- a/input-pad/eek-gtk.c
++++ b/input-pad/eek-gtk.c
+@@ -40,7 +40,6 @@
+ 
+ struct _InputPadGtkKbduiEekPrivate {
+     EekKeyboard                *eek_keyboard;
+-    EekLayout                  *eek_layout;
+ };
+ 
+ static void             create_keyboard_layout_ui_real_eek
+@@ -68,16 +67,12 @@ on_window_keyboard_changed_eek (InputPadGtkWindow *window,
+                                 gint               group,
+                                 gpointer           data)
+ {
+-    gint prev_group, prev_level;
+     InputPadGtkKbduiEek *kbdui;
+ 
+     g_return_if_fail (INPUT_PAD_IS_GTK_KBDUI_EEK (data));
+ 
+     kbdui = INPUT_PAD_GTK_KBDUI_EEK (data);
+-    eek_keyboard_get_keysym_index (kbdui->priv->eek_keyboard,
+-                                   &prev_group, &prev_level);
+-    eek_keyboard_set_keysym_index (kbdui->priv->eek_keyboard,
+-                                   group, prev_level);
++    eek_keyboard_set_group (kbdui->priv->eek_keyboard, group);
+ }
+ 
+ static void
+@@ -130,8 +125,7 @@ on_eek_keyboard_key_pressed (EekKeyboard *keyboard,
+     input_pad_gtk_window_set_keyboard_state_with_keysym (window, keysym0);
+     if (keysym0 == XK_Shift_L || keysym0 == XK_Shift_R) {
+         state = input_pad_gtk_window_get_keyboard_state (window);
+-        eek_keyboard_set_keysym_index (keyboard, group,
+-                                       state & ShiftMask ? 1 : 0);
++        eek_keyboard_set_level (keyboard, state & ShiftMask ? 1 : 0);
+     }
+ }
+ 
+@@ -143,27 +137,24 @@ create_keyboard_layout_ui_real_eek (InputPadGtkKbdui  *kbdui,
+     InputPadGtkKbduiEek *kbdui_eek;
+     EekKeyboard *keyboard;
+     EekLayout *layout;
+-    EekBounds bounds;
+     GtkWidget *widget;
++    gdouble width, height;
+ 
+     g_return_if_fail (INPUT_PAD_IS_GTK_KBDUI_EEK (kbdui));
+ 
+     kbdui_eek = INPUT_PAD_GTK_KBDUI_EEK (kbdui);
+-    keyboard = kbdui_eek->priv->eek_keyboard = eek_gtk_keyboard_new ();
++    layout = eek_xkl_layout_new ();
++
++    keyboard = kbdui_eek->priv->eek_keyboard = eek_keyboard_new (layout, 640, 480);
++    g_object_unref (layout);
+     g_object_ref_sink (keyboard);
+-    layout = kbdui_eek->priv->eek_layout = eek_xkl_layout_new ();
+-    g_object_ref_sink (layout);
+-    eek_keyboard_set_layout (keyboard, layout);
+-    bounds.width = 640;
+-    bounds.height = 480;
+-    eek_element_set_bounds (EEK_ELEMENT(keyboard), &bounds);
+-    widget = eek_gtk_keyboard_get_widget (EEK_GTK_KEYBOARD(keyboard));
+-    eek_element_get_bounds (EEK_ELEMENT(keyboard), &bounds);
++    widget = eek_gtk_keyboard_new (keyboard);
++    eek_keyboard_get_size (keyboard, &width, &height);
+ 
+     gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0);
+     gtk_box_reorder_child (GTK_BOX (vbox), widget, 0);
+     gtk_widget_show (widget);
+-    gtk_widget_set_size_request (widget, bounds.width, bounds.height);
++    gtk_widget_set_size_request (widget, width, height);
+ 
+     g_signal_connect (G_OBJECT (window), "keyboard-changed",
+                       G_CALLBACK (on_window_keyboard_changed_eek),
+@@ -191,7 +182,6 @@ destroy_prev_keyboard_layout_eek (InputPadGtkKbdui  *kbdui,
+     gtk_widget_destroy (widget);
+ 
+     g_object_unref (kbdui_eek->priv->eek_keyboard);
+-    g_object_unref (kbdui_eek->priv->eek_layout);
+ }
+ 
+ static void
+-- 
+1.7.4
+
+From 3bb2d467f1714e4d42f2e8dec4ab08770b02c4f5 Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <ueno at unixuser.org>
+Date: Tue, 25 Jan 2011 18:59:47 +0900
+Subject: [PATCH 2/2] Follow eek 0.90 API changes.
+
+---
+ input-pad/eek-gtk.c |   35 +++++++++++++++++++----------------
+ 1 files changed, 19 insertions(+), 16 deletions(-)
+
+diff --git a/input-pad/eek-gtk.c b/input-pad/eek-gtk.c
+index 84f22cd..abe966f 100644
+--- a/input-pad/eek-gtk.c
++++ b/input-pad/eek-gtk.c
+@@ -83,11 +83,11 @@ on_eek_keyboard_key_pressed (EekKeyboard *keyboard,
+     InputPadGtkWindow *window;
+     char *str, *empty = "";
+     guint keycode;
+-    guint keysym;
+-    guint *keysyms;
+-    guint keysym0;
+-    gint num_groups, num_levels;
+-    gint group, level;
++    EekSymbol *symbol;
++    EekSymbol *symbol0;
++    guint keysym = EEK_INVALID_KEYSYM;
++    guint keysym0 = EEK_INVALID_KEYSYM;
++    gint group;
+     guint state = 0;
+     gboolean retval = FALSE;
+ 
+@@ -96,14 +96,22 @@ on_eek_keyboard_key_pressed (EekKeyboard *keyboard,
+ 
+     window = INPUT_PAD_GTK_WINDOW (user_data);
+     keycode = eek_key_get_keycode (key);
+-    keysym = eek_key_get_keysym (key);
+-    str = eek_keysym_to_string (keysym);
++    symbol = eek_key_get_symbol_with_fallback (key, 0, 0);
++    if (EEK_IS_KEYSYM(symbol))
++        keysym = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol));
++    str = eek_symbol_get_label (symbol);
+     if (str == NULL)
+         str = empty;
+-    eek_key_get_keysyms (key, &keysyms, &num_groups, &num_levels);
+-    eek_key_get_keysym_index (key, &group, &level);
++    group = eek_keyboard_get_group (keyboard);
++    symbol0 = eek_key_get_symbol_at_index (key, group, 0, 0, 0);
++    if (EEK_IS_KEYSYM(symbol0))
++        keysym0 = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol0));
++
++    if (keysym0 == EEK_INVALID_KEYSYM) {
++        keysym0 = keysym;
++    }
+     state = input_pad_gtk_window_get_keyboard_state (window);
+-    if (keysyms && (keysym != keysyms[group * num_levels])) {
++    if (keysym != EEK_INVALID_KEYSYM && keysym != keysym0) {
+         state |= ShiftMask;
+     }
+     state = input_pad_xkb_build_core_state (state, group);
+@@ -114,11 +122,6 @@ on_eek_keyboard_key_pressed (EekKeyboard *keyboard,
+     if (str != empty)
+         g_free (str);
+ 
+-    if (keysyms) {
+-        keysym0 = keysyms[0];
+-    } else {
+-        keysym0 = keysym;
+-    }
+     if (keysym0 == XK_Num_Lock) {
+         keysym0 = XK_Shift_L;
+     }
+@@ -147,7 +150,7 @@ create_keyboard_layout_ui_real_eek (InputPadGtkKbdui  *kbdui,
+ 
+     keyboard = kbdui_eek->priv->eek_keyboard = eek_keyboard_new (layout, 640, 480);
+     g_object_unref (layout);
+-    g_object_ref_sink (keyboard);
++    eek_keyboard_set_modifier_behavior (keyboard, EEK_MODIFIER_BEHAVIOR_LATCH);
+     widget = eek_gtk_keyboard_new (keyboard);
+     eek_keyboard_get_size (keyboard, &width, &height);
+ 
+-- 
+1.7.4
+
diff --git a/input-pad.spec b/input-pad.spec
index 6fdf26a..f5ccf3b 100644
--- a/input-pad.spec
+++ b/input-pad.spec
@@ -12,6 +12,7 @@
 %define sub_version             1.0
 %define libxklavier_version     4.0
 %define libxml2_version         2.0
+%define eekboard_version        0.90.1
 
 %define libinput_paddir %{_libdir}/%{name}-%sub_version
 %define moduledir       %{_libdir}/%{name}-%sub_version/modules
@@ -21,7 +22,7 @@
 
 Name:       input-pad
 Version:    1.0.0
-Release:    7%{?dist}
+Release:    8%{?dist}
 Summary:    On-screen Input Pad to Send Characters with Mouse
 License:    LGPLv2+
 Group:      System Environment/Libraries
@@ -51,7 +52,7 @@ BuildRequires:  python2-devel
 BuildRequires:  swig
 %endif
 %if %have_eek_devel
-BuildRequires:  eekboard-devel
+BuildRequires:  eekboard-devel          >= %eekboard_version
 %endif
 
 %description
@@ -90,6 +91,7 @@ The input-pad-xtest package contains XTEST extension module
 Summary:    Input Pad with eekboard extension
 Group:      System Environment/Libraries
 Requires:   %{name} = %{version}-%{release}
+Requires:   eekboard-libs           >= %eekboard_version
 
 %description eek
 The input-pad-eek package contains eekboard extension module
@@ -100,6 +102,11 @@ The input-pad-eek package contains eekboard extension module
 %patch0 -p1
 
 %build
+# for configure.ac patch
+%if %have_eek_devel
+libtoolize -f
+autoreconf -v
+%endif
 %configure \
 %if ! %have_python_devel
     --disable-python            \
@@ -189,22 +196,12 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 
 %changelog
-* Sun Feb 13 2011 Christopher Aillon <caillon at redhat.com> - 1.0.0-7
-- Rebuild for new libxklavier
-
-* Fri Feb 11 2011 Matthias Clasen <mclasen at redhat.com> 1.0.0-6
-- Rebuild against newer gtk
+* Fri Feb 25 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.0.0-8
+- Updated input-pad-HEAD.patch for eekboard
 
 * Wed Feb 09 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.0-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 
-* Wed Feb  2 2011 Matthias Clasen <mclasen at redhat.com> - 1.0.0-4
-- Rebuild
-
-* Mon Jan 17 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.0.0-3
-- Rebuild against newer gtk3
-- Added input-pad-HEAD.patch from upstream.
-
 * Tue Nov 30 2010 Takao Fujiwara <tfujiwar at redhat.com> - 1.0.0-1
 - Bumped to 1.0.0
 


More information about the scm-commits mailing list