[input-pad/f14] Added input-pad-xx-old-eek.patch

Takao Fujiwara fujiwara at fedoraproject.org
Thu May 19 05:33:33 UTC 2011


commit d8c105e9a0cda1841aa20c18a73c4b37ba71e638
Author: Takao Fujiwara <tfujiwar at redhat.com>
Date:   Thu May 19 14:33:09 2011 +0900

    Added input-pad-xx-old-eek.patch

 input-pad-xx-old-eek.patch |  150 ++++++++++++++++++++++++++++++++++++++++++++
 input-pad.spec             |   15 ++++-
 2 files changed, 163 insertions(+), 2 deletions(-)
---
diff --git a/input-pad-xx-old-eek.patch b/input-pad-xx-old-eek.patch
new file mode 100644
index 0000000..01bb892
--- /dev/null
+++ b/input-pad-xx-old-eek.patch
@@ -0,0 +1,150 @@
+--- input-pad-1.0.1/configure.ac
++++ input-pad-1.0.1/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.90 eek-xkl-0.90
++        eek-gtk-0.1 eek-xkl-0.1
+ 	],, AC_MSG_ERROR([libeek not found]))
+     AM_CONDITIONAL(HAVE_EEK, true)
+ else
+--- input-pad-1.0.1/input-pad/eek-gtk.c
++++ input-pad-1.0.1/input-pad/eek-gtk.c
+@@ -40,6 +40,7 @@
+ 
+ struct _InputPadGtkKbduiEekPrivate {
+     EekKeyboard                *eek_keyboard;
++    EekLayout                  *eek_layout;
+ };
+ 
+ static void             create_keyboard_layout_ui_real_eek
+@@ -67,12 +68,16 @@ on_window_keyboard_changed_eek (InputPad
+                                 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_set_group (kbdui->priv->eek_keyboard, group);
++    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);
+ }
+ 
+ static void
+@@ -83,11 +88,11 @@ on_eek_keyboard_key_pressed (EekKeyboard
+     InputPadGtkWindow *window;
+     char *str, *empty = "";
+     guint keycode;
+-    EekSymbol *symbol;
+-    EekSymbol *symbol0;
+-    guint keysym = EEK_INVALID_KEYSYM;
+-    guint keysym0 = EEK_INVALID_KEYSYM;
+-    gint group;
++    guint keysym;
++    guint *keysyms;
++    guint keysym0;
++    gint num_groups, num_levels;
++    gint group, level;
+     guint state = 0;
+     gboolean retval = FALSE;
+ 
+@@ -96,22 +101,14 @@ on_eek_keyboard_key_pressed (EekKeyboard
+ 
+     window = INPUT_PAD_GTK_WINDOW (user_data);
+     keycode = eek_key_get_keycode (key);
+-    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);
++    keysym = eek_key_get_keysym (key);
++    str = eek_keysym_to_string (keysym);
+     if (str == NULL)
+         str = empty;
+-    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;
+-    }
++    eek_key_get_keysyms (key, &keysyms, &num_groups, &num_levels);
++    eek_key_get_keysym_index (key, &group, &level);
+     state = input_pad_gtk_window_get_keyboard_state (window);
+-    if (keysym != EEK_INVALID_KEYSYM && keysym != keysym0) {
++    if (keysyms && (keysym != keysyms[group * num_levels])) {
+         state |= ShiftMask;
+     }
+     state = input_pad_xkb_build_core_state (state, group);
+@@ -122,13 +119,19 @@ on_eek_keyboard_key_pressed (EekKeyboard
+     if (str != empty)
+         g_free (str);
+ 
++    if (keysyms) {
++        keysym0 = keysyms[0];
++    } else {
++        keysym0 = keysym;
++    }
+     if (keysym0 == XK_Num_Lock) {
+         keysym0 = XK_Shift_L;
+     }
+     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_level (keyboard, state & ShiftMask ? 1 : 0);
++        eek_keyboard_set_keysym_index (keyboard, group,
++                                       state & ShiftMask ? 1 : 0);
+     }
+ }
+ 
+@@ -140,24 +143,27 @@ create_keyboard_layout_ui_real_eek (Inpu
+     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);
+-    layout = eek_xkl_layout_new ();
+-
+-    keyboard = kbdui_eek->priv->eek_keyboard = eek_keyboard_new (layout, 640, 480);
+-    g_object_unref (layout);
+-    eek_keyboard_set_modifier_behavior (keyboard, EEK_MODIFIER_BEHAVIOR_LATCH);
+-    widget = eek_gtk_keyboard_new (keyboard);
+-    eek_keyboard_get_size (keyboard, &width, &height);
++    keyboard = kbdui_eek->priv->eek_keyboard = eek_gtk_keyboard_new ();
++    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);
+ 
+     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, width, height);
++    gtk_widget_set_size_request (widget, bounds.width, bounds.height);
+ 
+     g_signal_connect (G_OBJECT (window), "keyboard-changed",
+                       G_CALLBACK (on_window_keyboard_changed_eek),
+@@ -185,6 +191,7 @@ destroy_prev_keyboard_layout_eek (InputP
+     gtk_widget_destroy (widget);
+ 
+     g_object_unref (kbdui_eek->priv->eek_keyboard);
++    g_object_unref (kbdui_eek->priv->eek_layout);
+ }
+ 
+ static void
diff --git a/input-pad.spec b/input-pad.spec
index f4c9550..4fcbb79 100644
--- a/input-pad.spec
+++ b/input-pad.spec
@@ -1,6 +1,7 @@
 %define have_python_devel 1
 %define have_xtest_devel  1
 %define have_eek_devel    1
+%define have_old_eek      1
 
 %if %have_python_devel
   %if ! (0%{?fedora} > 12 || 0%{?rhel} > 5)
@@ -20,12 +21,15 @@
 
 Name:       input-pad
 Version:    1.0.1
-Release:    1%{?dist}
+Release:    2%{?dist}
 Summary:    On-screen Input Pad to Send Characters with Mouse
 License:    LGPLv2+
 Group:      System Environment/Libraries
 URL:        http://code.google.com/p/input-pad/
 Source0:    http://input-pad.googlecode.com/files/%{name}-%{version}.tar.gz
+%if %have_old_eek
+Patch1:     input-pad-xx-old-eek.patch
+%endif
 
 BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -91,8 +95,14 @@ The input-pad-eek package contains eekboard extension module
 
 %prep
 %setup -q
+%if %have_old_eek
+%patch1 -p1
+%endif
 
 %build
+%if %have_old_eek
+autoreconf -f -v -i
+%endif
 %configure \
 %if ! %have_python_devel
     --disable-python            \
@@ -179,8 +189,9 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 
 %changelog
-* Thu May 19 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.0.1-1
+* Thu May 19 2011 Takao Fujiwara <tfujiwar at redhat.com> - 1.0.1-2
 - Bumped to 1.0.1
+- Added input-pad-xx-old-eek.patch for eekboard.
 
 * 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