[Fedora-i18n-bugs] [eekboard/f15] Update to 1.0.3-3.
Daiki Ueno
ueno at fedoraproject.org
Mon Sep 12 05:12:46 UTC 2011
commit 09bf48f5dbc6796166058c08b555531c421dbb22
Author: Daiki Ueno <ueno at unixuser.org>
Date: Mon Sep 12 14:12:29 2011 +0900
Update to 1.0.3-3.
eekboard-send-key-event-for-text.patch | 71 ++++++++++++++++++++++++++++++++
eekboard.spec | 7 +++-
2 files changed, 77 insertions(+), 1 deletions(-)
---
diff --git a/eekboard-send-key-event-for-text.patch b/eekboard-send-key-event-for-text.patch
new file mode 100644
index 0000000..abe9976
--- /dev/null
+++ b/eekboard-send-key-event-for-text.patch
@@ -0,0 +1,71 @@
+From 15f7b0ecfffa0fab5b414d25e31ba5ab39bccbc5 Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <ueno at unixuser.org>
+Date: Mon, 12 Sep 2011 12:51:17 +0900
+Subject: [PATCH 3/4] Send fake key event for each character in EekText
+ symbol.
+
+---
+ src/client.c | 41 +++++++++++++++++++++++++++++++++++------
+ 1 files changed, 35 insertions(+), 6 deletions(-)
+
+diff --git a/src/client.c b/src/client.c
+index ba40905..82f1ec8 100644
+--- a/src/client.c
++++ b/src/client.c
+@@ -901,18 +901,47 @@ send_fake_modifier_key_event (Client *client,
+ }
+
+ static void
+-send_fake_key_event (Client *client,
+- EekSymbol *symbol,
+- guint keyboard_modifiers,
+- gboolean is_pressed)
++send_fake_key_event (Client *client,
++ EekSymbol *symbol,
++ guint keyboard_modifiers,
++ gboolean is_pressed)
+ {
+ GdkDisplay *display = gdk_display_get_default ();
+ EekModifierType modifiers;
+ guint xkeysym;
+ guint keycode, replaced_keysym = 0;
+
+- /* Ignore special keys and modifiers */
+- if (!EEK_IS_KEYSYM(symbol) || eek_symbol_is_modifier (symbol))
++ /* Ignore modifier keys */
++ if (eek_symbol_is_modifier (symbol))
++ return;
++
++ /* If symbol is a text, convert chars in it to keysym */
++ if (EEK_IS_TEXT(symbol)) {
++ gchar *utf8 = eek_text_get_text (EEK_TEXT(symbol));
++ glong items_written;
++ gunichar *ucs4 = g_utf8_to_ucs4_fast (utf8, -1, &items_written);
++ gint i;
++
++ for (i = 0; i < items_written; i++) {
++ EekKeysym *keysym;
++ gchar *name;
++
++ name = g_strdup_printf ("U%04X", ucs4[i]);
++ xkeysym = XStringToKeysym (name);
++ g_free (name);
++
++ keysym = eek_keysym_new (xkeysym);
++ send_fake_key_event (client,
++ EEK_SYMBOL(keysym),
++ keyboard_modifiers,
++ is_pressed);
++ }
++ g_free (ucs4);
++ return;
++ }
++
++ /* Ignore special keys */
++ if (!EEK_IS_KEYSYM(symbol))
+ return;
+
+ xkeysym = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol));
+--
+1.7.6.2
+
diff --git a/eekboard.spec b/eekboard.spec
index dbcad2a..f2fa730 100644
--- a/eekboard.spec
+++ b/eekboard.spec
@@ -1,6 +1,6 @@
Name: eekboard
Version: 1.0.3
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: An Easy-to-use Virtual Keyboard Toolkit
Group: Applications/System
@@ -9,6 +9,7 @@ URL: http://fedorahosted.org/eekboard/
Source0: http://github.com/downloads/ueno/eekboard/eekboard-%{version}.tar.gz
Patch0: eekboard-window-size-constraint.patch
Patch1: eekboard-fix-key-release-race-condition.patch
+Patch2: eekboard-send-key-event-for-text.patch
BuildRequires: libfakekey-devel
# older libfakekey-devel has missing BR: libXtst-devel (#680878)
BuildRequires: libXtst-devel
@@ -68,6 +69,7 @@ This package contains the Python language binding of eekboard client library.
%setup -q
%patch0 -p1 -b .window-size-constraint
%patch1 -p1 -b .fix-key-release-race-condition
+%patch2 -p1 -b .send-key-event-for-text
%build
@@ -150,6 +152,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
+* Mon Sep 12 2011 Daiki Ueno <dueno at redhat.com> - 1.0.3-3
+- add eekboard-send-key-event-for-text.patch
+
* Mon Sep 12 2011 Daiki Ueno <dueno at redhat.com> - 1.0.3-2
- add eekboard-window-size-constraint.patch
- add eekboard-fix-key-release-race-condition.patch (#737396)
More information about the i18n-bugs
mailing list