diff --git a/src/gui/UBKeyboardPalette.cpp b/src/gui/UBKeyboardPalette.cpp
index 399482eb..b31fb541 100644
--- a/src/gui/UBKeyboardPalette.cpp
+++ b/src/gui/UBKeyboardPalette.cpp
@@ -82,8 +82,6 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
connect(inst, SIGNAL(localeChanged(int)), instance, SLOT(syncLocale(int)));
connect(instance, SIGNAL(localeChanged(int)), inst, SLOT(syncLocale(int)));
-
-// connect(instance, SIGNAL(closed()), inst, )
}
return instance;
@@ -91,7 +89,7 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent)
void UBKeyboardPalette::hideKeyboard()
{
- UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction.Trigger);
+ UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger);
}
void UBKeyboardPalette::syncPosition(const QPoint & pos)
diff --git a/src/gui/UBKeyboardPalette_linux.cpp b/src/gui/UBKeyboardPalette_linux.cpp
index e5b5c8c9..6e7cb1b2 100644
--- a/src/gui/UBKeyboardPalette_linux.cpp
+++ b/src/gui/UBKeyboardPalette_linux.cpp
@@ -12,192 +12,192 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-#include "UBKeyboardPalette.h"
-
-#include
-#include
-
-
-// The key code to be sent.
-// A full list of available codes can be found in /usr/include/X11/keysymdef.h
-//#define KEYCODE XK_Down
-
-// Function to create a keyboard event
-XKeyEvent createKeyEvent(Display *display, Window &win,
- Window &winRoot, bool press,
- int keycode, int modifiers)
-{
- XKeyEvent event;
-
- event.display = display;
- event.window = win;
- event.root = winRoot;
- event.subwindow = None;
- event.time = CurrentTime;
- event.x = 1;
- event.y = 1;
- event.x_root = 1;
- event.y_root = 1;
- event.same_screen = True;
- event.keycode = keycode;
- event.state = modifiers;
-
- if(press)
- event.type = KeyPress;
- else
- event.type = KeyRelease;
-
- return event;
-}
-
-void x11SendKey(Display *display, int keyCode, int modifiers)
-{
-
-// Get the root window for the current display.
- Window winRoot = XDefaultRootWindow(display);
- if (winRoot==0)
- return;
-
-// Find the window which has the current keyboard focus.
- Window winFocus;
- int revert;
- XGetInputFocus(display, &winFocus, &revert);
-
-// Send a fake key press event to the window.
- XKeyEvent event = createKeyEvent(display, winFocus, winRoot, true, keyCode, modifiers);
- XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
-
-// Send a fake key release event to the window.
- event = createKeyEvent(display, winFocus, winRoot, false, keyCode, modifiers);
- XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
-}
-
-void UBKeyboardButton::sendUnicodeSymbol(unsigned int nSymbol1, unsigned int nSymbol2, bool shift)
-{
- unsigned int nSymbol = shift ? nSymbol2 : nSymbol1;
- // Obtain the X11 display.
- Display *display = XOpenDisplay(0);
- if(display == NULL)
- return;
-
- KeyCode keyCode = XKeysymToKeycode(display, nSymbol);
-
- if (keyCode != NoSymbol)
- {
- x11SendKey(display, keyCode, shift);
- }
-
- XCloseDisplay(display);
-}
-
-void UBKeyboardButton::sendControlSymbol(int nSymbol)
-{
- // Obtain the X11 display.
- Display *display = XOpenDisplay(0);
- if(display == NULL)
- return;
-
- KeyCode keyCode = XKeysymToKeycode(display, nSymbol);
-
- if (keyCode != NoSymbol)
- {
- x11SendKey(display, keyCode, 0);
- }
-
- XCloseDisplay(display);
-}
-
-void UBKeyboardPalette::createCtrlButtons()
-{
- ctrlButtons = new UBKeyboardButton*[8];
-
- ctrlButtons[0] = new UBCntrlButton(this, "<-", XK_BackSpace);
- ctrlButtons[1] = new UBCntrlButton(this, "<->", XK_Tab);
- ctrlButtons[2] = new UBCntrlButton(this, "Enter", XK_Return);
- ctrlButtons[3] = new UBCapsLockButton(this);
- ctrlButtons[4] = new UBCapsLockButton(this);
- ctrlButtons[5] = new UBLocaleButton(this);
- ctrlButtons[6] = new UBCntrlButton(this, "", XK_space);
- ctrlButtons[7] = new UBLocaleButton(this);
-}
-
-
-void UBKeyboardPalette::onActivated(bool activated)
-{
- if (activated)
- {
- Display *display = XOpenDisplay(0);
- if(display == NULL)
- return;
-
- XDisplayKeycodes(display, &this->min_keycodes, &this->max_keycodes);
- KeySym* keySyms = XGetKeyboardMapping(display, min_keycodes,
- max_keycodes - min_keycodes, &this->byte_per_code);
-
- storage = keySyms;
-
- XCloseDisplay(display);
-
- onLocaleChanged(locales[nCurrentLocale]);
- }
- else
- {
- Display *display = XOpenDisplay(0);
- if(display == NULL)
- return;
-
- KeySym* keySyms = (KeySym*)storage;
- if (keySyms!=NULL)
- {
-
- XChangeKeyboardMapping(display, min_keycodes, byte_per_code,
- keySyms, max_keycodes - min_keycodes);
- XFree(keySyms);
- }
-
-
- XCloseDisplay(display);
- }
-
-}
-
-
-void setSymbolsFromButton(Display *display,
- const UBKeyboardLocale& locale,
- int byte_per_code,
- int nFromSymbol,
- int nFromButton,
- int count)
-{
- KeySym* keySyms = new KeySym[count * byte_per_code];
- for(int i = 0; i < count; i++)
- {
- keySyms[byte_per_code * i + 0] =
- keySyms[byte_per_code * i + 2] = locale[nFromButton + i]->code1;
- keySyms[byte_per_code * i + 1] =
- keySyms[byte_per_code * i + 3] = locale[nFromButton + i]->code2;
- for(int j=4; j
+#include
+
+
+// The key code to be sent.
+// A full list of available codes can be found in /usr/include/X11/keysymdef.h
+//#define KEYCODE XK_Down
+
+// Function to create a keyboard event
+XKeyEvent createKeyEvent(Display *display, Window &win,
+ Window &winRoot, bool press,
+ int keycode, int modifiers)
+{
+ XKeyEvent event;
+
+ event.display = display;
+ event.window = win;
+ event.root = winRoot;
+ event.subwindow = None;
+ event.time = CurrentTime;
+ event.x = 1;
+ event.y = 1;
+ event.x_root = 1;
+ event.y_root = 1;
+ event.same_screen = True;
+ event.keycode = keycode;
+ event.state = modifiers;
+
+ if(press)
+ event.type = KeyPress;
+ else
+ event.type = KeyRelease;
+
+ return event;
+}
+
+void x11SendKey(Display *display, int keyCode, int modifiers)
+{
+
+// Get the root window for the current display.
+ Window winRoot = XDefaultRootWindow(display);
+ if (winRoot==0)
+ return;
+
+// Find the window which has the current keyboard focus.
+ Window winFocus;
+ int revert;
+ XGetInputFocus(display, &winFocus, &revert);
+
+// Send a fake key press event to the window.
+ XKeyEvent event = createKeyEvent(display, winFocus, winRoot, true, keyCode, modifiers);
+ XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
+
+// Send a fake key release event to the window.
+ event = createKeyEvent(display, winFocus, winRoot, false, keyCode, modifiers);
+ XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
+}
+
+void UBKeyboardButton::sendUnicodeSymbol(unsigned int nSymbol1, unsigned int nSymbol2, bool shift)
+{
+ unsigned int nSymbol = shift ? nSymbol2 : nSymbol1;
+ // Obtain the X11 display.
+ Display *display = XOpenDisplay(0);
+ if(display == NULL)
+ return;
+
+ KeyCode keyCode = XKeysymToKeycode(display, nSymbol);
+
+ if (keyCode != NoSymbol)
+ {
+ x11SendKey(display, keyCode, shift);
+ }
+
+ XCloseDisplay(display);
+}
+
+void UBKeyboardButton::sendControlSymbol(int nSymbol)
+{
+ // Obtain the X11 display.
+ Display *display = XOpenDisplay(0);
+ if(display == NULL)
+ return;
+
+ KeyCode keyCode = XKeysymToKeycode(display, nSymbol);
+
+ if (keyCode != NoSymbol)
+ {
+ x11SendKey(display, keyCode, 0);
+ }
+
+ XCloseDisplay(display);
+}
+
+void UBKeyboardPalette::createCtrlButtons()
+{
+ ctrlButtons = new UBKeyboardButton*[8];
+
+ ctrlButtons[0] = new UBCntrlButton(this, "<-", XK_BackSpace);
+ ctrlButtons[1] = new UBCntrlButton(this, "<->", XK_Tab);
+ ctrlButtons[2] = new UBCntrlButton(this, "Enter", XK_Return);
+ ctrlButtons[3] = new UBCapsLockButton(this, "capslock");
+ ctrlButtons[4] = new UBCapsLockButton(this, "capslock");
+ ctrlButtons[5] = new UBLocaleButton(this);
+ ctrlButtons[6] = new UBCntrlButton(this, "", XK_space);
+ ctrlButtons[7] = new UBLocaleButton(this);
+}
+
+
+void UBKeyboardPalette::onActivated(bool activated)
+{
+ if (activated)
+ {
+ Display *display = XOpenDisplay(0);
+ if(display == NULL)
+ return;
+
+ XDisplayKeycodes(display, &this->min_keycodes, &this->max_keycodes);
+ KeySym* keySyms = XGetKeyboardMapping(display, min_keycodes,
+ max_keycodes - min_keycodes, &this->byte_per_code);
+
+ storage = keySyms;
+
+ XCloseDisplay(display);
+
+ onLocaleChanged(locales[nCurrentLocale]);
+ }
+ else
+ {
+ Display *display = XOpenDisplay(0);
+ if(display == NULL)
+ return;
+
+ KeySym* keySyms = (KeySym*)storage;
+ if (keySyms!=NULL)
+ {
+
+ XChangeKeyboardMapping(display, min_keycodes, byte_per_code,
+ keySyms, max_keycodes - min_keycodes);
+ XFree(keySyms);
+ }
+
+
+ XCloseDisplay(display);
+ }
+
+}
+
+
+void setSymbolsFromButton(Display *display,
+ const UBKeyboardLocale& locale,
+ int byte_per_code,
+ int nFromSymbol,
+ int nFromButton,
+ int count)
+{
+ KeySym* keySyms = new KeySym[count * byte_per_code];
+ for(int i = 0; i < count; i++)
+ {
+ keySyms[byte_per_code * i + 0] =
+ keySyms[byte_per_code * i + 2] = locale[nFromButton + i]->code1;
+ keySyms[byte_per_code * i + 1] =
+ keySyms[byte_per_code * i + 3] = locale[nFromButton + i]->code2;
+ for(int j=4; j.
*/
-#include "UBKeyboardPalette.h"
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-void UBKeyboardButton::sendUnicodeSymbol(unsigned int nSymbol1, unsigned int nSymbol2, bool shift)
-{
- unsigned int nSymbol = (shift)? nSymbol2 : nSymbol1;
-
- if (shift)
- CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, 56, true));
- CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, nSymbol, true));
- CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, nSymbol, false));
- if (shift)
- CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, 56, false));
-
-}
-
-void UBKeyboardButton::sendControlSymbol(int nSymbol)
-{
- CGEventRef event1 = CGEventCreateKeyboardEvent(NULL, nSymbol, true);
- CGEventRef event2 = CGEventCreateKeyboardEvent(NULL, nSymbol, false);
-
- CGEventPost(kCGHIDEventTap, event1);
- CGEventPost(kCGHIDEventTap, event2);
-}
-
-void UBKeyboardPalette::createCtrlButtons()
-{
- ctrlButtons = new UBKeyboardButton*[7];
-
- ctrlButtons[0] = new UBCntrlButton(this, "<-", 51);
- ctrlButtons[1] = new UBCntrlButton(this, "<->", 48);
- ctrlButtons[2] = new UBCntrlButton(this, "Enter", 76);
- ctrlButtons[3] = new UBCapsLockButton(this);
- ctrlButtons[4] = new UBCapsLockButton(this);
- ctrlButtons[5] = new UBLocaleButton(this);
- ctrlButtons[6] = new UBCntrlButton(this, "", 49);
- ctrlButtons[7] = new UBLocaleButton(this);
-}
-
-void SetMacLocaleByIdentifier(const QString& id)
-{
- const char * strName = id.toAscii().data();
- CFStringRef iName = CFStringCreateWithCString(NULL, strName, kCFStringEncodingMacRoman );
-
- CFStringRef keys[] = { kTISPropertyInputSourceCategory, kTISPropertyInputSourceID };
- CFStringRef values[] = { kTISCategoryKeyboardInputSource, iName };
- CFDictionaryRef dict = CFDictionaryCreate(NULL, (const void **)keys, (const void **)values, 2, NULL, NULL);
- CFArrayRef kbds = TISCreateInputSourceList(dict, true);
- if (CFArrayGetCount(kbds)!=0)
- {
- TISInputSourceRef klRef = (TISInputSourceRef)CFArrayGetValueAtIndex(kbds, 0);
- if (klRef!=NULL)
- TISSelectInputSource(klRef);
- }
-}
-
-void UBKeyboardPalette::onActivated(bool activated)
-{
- if (activated)
- {
- TISInputSourceRef selectedLocale = TISCopyCurrentKeyboardInputSource();
-
- CFStringRef sr = (CFStringRef) TISGetInputSourceProperty(selectedLocale,
- kTISPropertyInputSourceID);
-
- if (sr!=NULL)
- {
- char tmp[1024];
- CFStringGetCString(sr, tmp, 1024, 0);
- activeLocale = tmp;
- }
- else
- activeLocale = "";
-
-
- onLocaleChanged(locales[nCurrentLocale]);
- }
- else
- {
- if (activeLocale != "")
- SetMacLocaleByIdentifier(activeLocale);
- }
-}
-
-void UBKeyboardPalette::onLocaleChanged(UBKeyboardLocale* locale)
-{
- SetMacLocaleByIdentifier(locale->id);
-}
-
+#include "UBKeyboardPalette.h"
+
+#include
+#include
+#include
+#include
+
+#include
+#include
+
+void UBKeyboardButton::sendUnicodeSymbol(unsigned int nSymbol1, unsigned int nSymbol2, bool shift)
+{
+ unsigned int nSymbol = (shift)? nSymbol2 : nSymbol1;
+
+ if (shift)
+ CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, 56, true));
+ CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, nSymbol, true));
+ CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, nSymbol, false));
+ if (shift)
+ CGEventPost(kCGSessionEventTap, CGEventCreateKeyboardEvent(NULL, 56, false));
+
+}
+
+void UBKeyboardButton::sendControlSymbol(int nSymbol)
+{
+ CGEventRef event1 = CGEventCreateKeyboardEvent(NULL, nSymbol, true);
+ CGEventRef event2 = CGEventCreateKeyboardEvent(NULL, nSymbol, false);
+
+ CGEventPost(kCGHIDEventTap, event1);
+ CGEventPost(kCGHIDEventTap, event2);
+}
+
+void UBKeyboardPalette::createCtrlButtons()
+{
+ ctrlButtons = new UBKeyboardButton*[7];
+
+ ctrlButtons[0] = new UBCntrlButton(this, "<-", 51);
+ ctrlButtons[1] = new UBCntrlButton(this, "<->", 48);
+ ctrlButtons[2] = new UBCntrlButton(this, "Enter", 76);
+ ctrlButtons[3] = new UBCapsLockButton(this, "capslock");
+ ctrlButtons[4] = new UBCapsLockButton(this, "capslock");
+ ctrlButtons[5] = new UBLocaleButton(this);
+ ctrlButtons[6] = new UBCntrlButton(this, "", 49);
+ ctrlButtons[7] = new UBLocaleButton(this);
+}
+
+void SetMacLocaleByIdentifier(const QString& id)
+{
+ const char * strName = id.toAscii().data();
+ CFStringRef iName = CFStringCreateWithCString(NULL, strName, kCFStringEncodingMacRoman );
+
+ CFStringRef keys[] = { kTISPropertyInputSourceCategory, kTISPropertyInputSourceID };
+ CFStringRef values[] = { kTISCategoryKeyboardInputSource, iName };
+ CFDictionaryRef dict = CFDictionaryCreate(NULL, (const void **)keys, (const void **)values, 2, NULL, NULL);
+ CFArrayRef kbds = TISCreateInputSourceList(dict, true);
+ if (CFArrayGetCount(kbds)!=0)
+ {
+ TISInputSourceRef klRef = (TISInputSourceRef)CFArrayGetValueAtIndex(kbds, 0);
+ if (klRef!=NULL)
+ TISSelectInputSource(klRef);
+ }
+}
+
+void UBKeyboardPalette::onActivated(bool activated)
+{
+ if (activated)
+ {
+ TISInputSourceRef selectedLocale = TISCopyCurrentKeyboardInputSource();
+
+ CFStringRef sr = (CFStringRef) TISGetInputSourceProperty(selectedLocale,
+ kTISPropertyInputSourceID);
+
+ if (sr!=NULL)
+ {
+ char tmp[1024];
+ CFStringGetCString(sr, tmp, 1024, 0);
+ activeLocale = tmp;
+ }
+ else
+ activeLocale = "";
+
+
+ onLocaleChanged(locales[nCurrentLocale]);
+ }
+ else
+ {
+ if (activeLocale != "")
+ SetMacLocaleByIdentifier(activeLocale);
+ }
+}
+
+void UBKeyboardPalette::onLocaleChanged(UBKeyboardLocale* locale)
+{
+ SetMacLocaleByIdentifier(locale->id);
+}
+