[caribou] Adjusted Caribou to use new C library.
- From: Eitan Isaacson <eitani src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [caribou] Adjusted Caribou to use new C library.
- Date: Sat, 16 Apr 2011 22:07:19 +0000 (UTC)
commit 7b0e55576b198bbfce0854af2ebc4f295da1d0c7
Author: Eitan Isaacson <eitan monotonous org>
Date: Sat Apr 16 15:06:03 2011 -0700
Adjusted Caribou to use new C library.
caribou/ui/keyboard.py | 59 +++++++++++++++++-----------------------
data/keyboards/hebrew.xml | 12 ++++----
data/keyboards/lexic_es.json | 4 +-
data/keyboards/qwerty.xml | 12 ++++----
data/keyboards/qwerty_en.json | 12 ++++----
data/keyboards/qwerty_es.json | 32 +++++++++++-----------
data/keyboards/qwerty_ja.xml | 16 +++++-----
7 files changed, 69 insertions(+), 78 deletions(-)
---
diff --git a/caribou/ui/keyboard.py b/caribou/ui/keyboard.py
index 1fb43ba..c390d49 100644
--- a/caribou/ui/keyboard.py
+++ b/caribou/ui/keyboard.py
@@ -30,8 +30,8 @@ import gobject
from gi.repository import Gdk
from gi.repository import Gtk
from gi.repository import Pango
+from gi.repository import Caribou
import sys
-import virtkey
import os
import traceback
from caribou.ui.i18n import _
@@ -48,20 +48,6 @@ from xml.dom import minidom
import gettext
import i18n
-KEY_MASKS = {'shift': Gdk.ModifierType.SHIFT_MASK,
- 'lock': Gdk.ModifierType.LOCK_MASK,
- 'control': Gdk.ModifierType.CONTROL_MASK,
- 'mod1': Gdk.ModifierType.MOD1_MASK,
- 'mod2': Gdk.ModifierType.MOD2_MASK,
- 'mod3': Gdk.ModifierType.MOD3_MASK,
- 'mod4': Gdk.ModifierType.MOD4_MASK,
- 'mod5': Gdk.ModifierType.MOD5_MASK,
- 'button1': Gdk.ModifierType.BUTTON1_MASK,
- 'button2': Gdk.ModifierType.BUTTON2_MASK,
- 'button3': Gdk.ModifierType.BUTTON3_MASK,
- 'button4': Gdk.ModifierType.BUTTON4_MASK,
- 'button5': Gdk.ModifierType.BUTTON5_MASK}
-
class BaseKey(object):
'''An abstract class the represents a key on the keyboard.
Inheriting classes also need to inherit from Gtk.Button or any
@@ -122,7 +108,6 @@ class BaseKey(object):
raise NotImplemented
def _on_image_key_mapped(self, key):
- print
key_width = key.get_allocated_height()
icon_size = Gtk.IconSize.MENU
image = Gtk.Image()
@@ -134,7 +119,6 @@ class BaseKey(object):
Gtk.IconSize.DIALOG]:
pixbuf = image.render_icon_pixbuf(Gtk.STOCK_PREFERENCES, size)
pixel_size = pixbuf.get_width()
- print size, pixel_size, key_width
if pixel_size > key_width:
break
icon_size = size
@@ -151,7 +135,7 @@ class BaseKey(object):
return self._value
def _set_value(self, value):
- if self.key_type == const.NORMAL_KEY_TYPE:
+ if self.key_type in (const.NORMAL_KEY_TYPE, const.MASK_KEY_TYPE):
if type(value) == str:
value = value.decode('utf-8')
if type(value) == unicode:
@@ -161,11 +145,6 @@ class BaseKey(object):
key_value = Gdk.keyval_from_name(value)
if key_value:
self._value = key_value
- elif self.key_type == const.MASK_KEY_TYPE:
- if type(value) == str or type(value) == unicode:
- for key, mask in KEY_MASKS.items():
- if value == key:
- self._value = mask
else:
self._value = value
@@ -377,10 +356,10 @@ class CaribouKeyboard(Gtk.Notebook):
def __init__(self):
gobject.GObject.__init__(self)
self.set_show_tabs(False)
- self.vk = virtkey.virtkey()
+ self.vk = Caribou.VirtualKeyboard()
self.key_size = 30
- self.current_mask = 0
self.current_page = 0
+ self.depressed_mods = []
self.row_height = -1
@@ -405,8 +384,10 @@ class CaribouKeyboard(Gtk.Notebook):
key.connect('clicked',
self._pressed_preferences_key)
else:
- key.connect('clicked',
+ key.connect('pressed',
self._pressed_normal_key)
+ key.connect('released',
+ self._released_normal_key)
def _clear(self):
n_pages = self.get_n_pages()
@@ -414,20 +395,30 @@ class CaribouKeyboard(Gtk.Notebook):
self.remove_page(i)
def _pressed_normal_key(self, key):
- self.vk.press_keysym(key.value)
- self.vk.release_keysym(key.value)
- self.current_mask = 0
+ self.vk.keyval_press(key.value)
+
+ def _released_normal_key(self, key):
+ self.vk.keyval_release(key.value)
+ while True:
+ try:
+ mod = self.depressed_mods.pop()
+ except IndexError:
+ break
+ mod.set_active (False)
def _pressed_layout_switcher_key(self, key):
self._switch_to_layout(key.value)
def _toggled_mask_key(self, key):
- if not key.get_active():
- self.vk.unlatch_mod(key.value)
- self.current_mask &= ~key.value
+ if key.get_active():
+ self.vk.keyval_press(key.value)
+ self.depressed_mods.append(key)
else:
- self.current_mask |= key.value
- self.vk.latch_mod(self.current_mask)
+ self.vk.keyval_release(key.value)
+ try:
+ mod = self.depressed_mods.remove(key)
+ except ValueError:
+ pass
def show_all_(self):
self.set_current_page(self.current_page)
diff --git a/data/keyboards/hebrew.xml b/data/keyboards/hebrew.xml
index 98f4429..251ec81 100644
--- a/data/keyboards/hebrew.xml
+++ b/data/keyboards/hebrew.xml
@@ -69,13 +69,13 @@
</key>
<key>
<label><small><b>Ctrl</b></small></label>
- <value>control</value>
+ <value>Control_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
<key>
<label><small><b>Alt</b></small></label>
- <value>mod1</value>
+ <value>Alt_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
@@ -162,13 +162,13 @@
</key>
<key>
<label><small><b>Ctrl</b></small></label>
- <value>control</value>
+ <value>Control_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
<key>
<label><small><b>Alt</b></small></label>
- <value>mod1</value>
+ <value>Alt_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
@@ -249,13 +249,13 @@
</key>
<key>
<label><small><b>Ctrl</b></small></label>
- <value>control</value>
+ <value>Control_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
<key>
<label><small><b>Alt</b></small></label>
- <value>mod1</value>
+ <value>Alt_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
diff --git a/data/keyboards/lexic_es.json b/data/keyboards/lexic_es.json
index 569d910..1d72adc 100644
--- a/data/keyboards/lexic_es.json
+++ b/data/keyboards/lexic_es.json
@@ -161,7 +161,7 @@
{"value": "#",
"width": 2},
{"key_type": "mask",
- "value": "control",
+ "value": "Control_L",
"label": "<b>Ctrl I</b>",
"width": 2}
]
@@ -188,7 +188,7 @@
"width": 2},
{"key_type": "mask",
"label": "<b>Alt I</b>",
- "value": "mod1",
+ "value": "Alt_L",
"width": 2}
]
}
diff --git a/data/keyboards/qwerty.xml b/data/keyboards/qwerty.xml
index 0d444fb..af5bb6e 100644
--- a/data/keyboards/qwerty.xml
+++ b/data/keyboards/qwerty.xml
@@ -71,13 +71,13 @@
</key>
<key>
<label><small><b>Ctrl</b></small></label>
- <value>control</value>
+ <value>Control_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
<key>
<label><small><b>Alt</b></small></label>
- <value>mod1</value>
+ <value>Alt_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
@@ -164,13 +164,13 @@
</key>
<key>
<label><small><b>Ctrl</b></small></label>
- <value>control</value>
+ <value>Control_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
<key>
<label><small><b>Alt</b></small></label>
- <value>mod1</value>
+ <value>Alt_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
@@ -251,13 +251,13 @@
</key>
<key>
<label><small><b>Ctrl</b></small></label>
- <value>control</value>
+ <value>Control_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
<key>
<label><small><b>Alt</b></small></label>
- <value>mod1</value>
+ <value>Alt_L</value>
<key_type>mask</key_type>
<width>1.5</width>
</key>
diff --git a/data/keyboards/qwerty_en.json b/data/keyboards/qwerty_en.json
index ab5081d..8864085 100644
--- a/data/keyboards/qwerty_en.json
+++ b/data/keyboards/qwerty_en.json
@@ -62,11 +62,11 @@
"value": "special",
"width": 1.5},
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.5},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.5},
{"key_type": "dummy",
@@ -147,11 +147,11 @@
"value": "special",
"width": 1.5},
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.5},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.5},
{"key_type": "dummy",
@@ -231,11 +231,11 @@
"value": "lowercase",
"width": 1.5},
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.5},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.5},
{"key_type": "dummy",
diff --git a/data/keyboards/qwerty_es.json b/data/keyboards/qwerty_es.json
index 9072fb0..4136d08 100644
--- a/data/keyboards/qwerty_es.json
+++ b/data/keyboards/qwerty_es.json
@@ -130,7 +130,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -138,7 +138,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
@@ -296,7 +296,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -304,7 +304,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
@@ -460,7 +460,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -468,7 +468,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
@@ -624,7 +624,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -632,7 +632,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
@@ -788,7 +788,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -796,7 +796,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
@@ -952,7 +952,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -960,7 +960,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
@@ -1116,7 +1116,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -1124,7 +1124,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
@@ -1280,7 +1280,7 @@
},
{"key":[
{"label": "<small><b>Ctrl</b></small>",
- "value": "control",
+ "value": "Control_L",
"key_type": "mask",
"width": 1.8},
{"label": "<small><b>Win</b></small>",
@@ -1288,7 +1288,7 @@
"key_type": "mask",
"width": 1.6},
{"label": "<small><b>Alt</b></small>",
- "value": "mod1",
+ "value": "Alt_L",
"key_type": "mask",
"width": 1.6},
{"key_type": "dummy",
diff --git a/data/keyboards/qwerty_ja.xml b/data/keyboards/qwerty_ja.xml
index ea3733d..6515f15 100644
--- a/data/keyboards/qwerty_ja.xml
+++ b/data/keyboards/qwerty_ja.xml
@@ -328,7 +328,7 @@
</row>
<row>
<key>
- <value>control</value>
+ <value>Control_L</value>
<label><small><b>Ctrl</b></small></label>
<key_type>mask</key_type>
<width>1.8</width>
@@ -339,7 +339,7 @@
<width>1.5</width>
</key>
<key>
- <value>mod1</value>
+ <value>Alt_L</value>
<label><small><b>Alt</b></small></label>
<key_type>mask</key_type>
<width>1.5</width>
@@ -361,7 +361,7 @@
<width>1.5</width>
</key>
<key>
- <value>mod1</value>
+ <value>Alt_L</value>
<label><small><b>Alt</b></small></label>
<key_type>mask</key_type>
<width>1.2</width>
@@ -377,7 +377,7 @@
<width>1.2</width>
</key>
<key>
- <value>control</value>
+ <value>Control_L</value>
<label><small><b>Ctrl</b></small></label>
<key_type>mask</key_type>
<width>1.5</width>
@@ -718,7 +718,7 @@
</row>
<row>
<key>
- <value>control</value>
+ <value>Control_L</value>
<label><small><b>Ctrl</b></small></label>
<key_type>mask</key_type>
<width>1.8</width>
@@ -729,7 +729,7 @@
<width>1.5</width>
</key>
<key>
- <value>mod1</value>
+ <value>Alt_L</value>
<label><small><b>Alt</b></small></label>
<key_type>mask</key_type>
<width>1.5</width>
@@ -751,7 +751,7 @@
<width>1.5</width>
</key>
<key>
- <value>mod1</value>
+ <value>Alt_L</value>
<label><small><b>Alt</b></small></label>
<key_type>mask</key_type>
<width>1.2</width>
@@ -767,7 +767,7 @@
<width>1.2</width>
</key>
<key>
- <value>control</value>
+ <value>Control_L</value>
<label><small><b>Ctrl</b></small></label>
<key_type>mask</key_type>
<width>1.5</width>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]