[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