mirror of https://git.FreeBSD.org/ports.git
x11/xvkbd: update to 3.6
ChangeLog: * New -utf16 option - when used with -file option, make xvkbd to accept UTF16 characters in the file. * Keyboard layout selected with "Change Keyboard Layout..." will be kept when xvkbd is used next time. * Caps Lock now works better for some of the keyboard layouts containing non-ASCII keys. * Improved Hebrew keyboard layout (Thanks Genghis Khan)
This commit is contained in:
parent
0243371236
commit
57e7a5d88c
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=385617
|
@ -2,7 +2,7 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= xvkbd
|
||||
PORTVERSION= 3.5
|
||||
PORTVERSION= 3.6
|
||||
CATEGORIES= x11
|
||||
MASTER_SITES= http://homepage3.nifty.com/tsato/xvkbd/
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (xvkbd-3.5.tar.gz) = 8819bdba359f1d0894bfc0b3314d5cdb9107387de6f19d2f409dba15e82b8fee
|
||||
SIZE (xvkbd-3.5.tar.gz) = 108351
|
||||
SHA256 (xvkbd-3.6.tar.gz) = 2678541c23336a0795bf5684c9f38d382a6566e6509794a39952d6da47da5bae
|
||||
SIZE (xvkbd-3.6.tar.gz) = 81613
|
||||
|
|
|
@ -3,7 +3,7 @@ Forwarded: not-needed
|
|||
Author: Peter Pentchev <roam@FreeBSD.org>
|
||||
Last-Update: 2002-02-22
|
||||
|
||||
--- Imakefile.orig
|
||||
--- Imakefile.orig 2014-11-11 13:01:21 UTC
|
||||
+++ Imakefile
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
|
|
|
@ -5,12 +5,12 @@ Description: Assorted compilation and usage fixes.
|
|||
- fix the text of an error message
|
||||
Forwarded: no
|
||||
Author: Peter Pentchev <roam@FreeBSD.org>
|
||||
Last-Update: 2010-06-11
|
||||
Last-Update: 2015-05-07
|
||||
|
||||
--- xvkbd.c.orig 2012-03-03 01:31:46.000000000 +0100
|
||||
+++ xvkbd.c 2012-04-01 10:24:40.225558910 +0200
|
||||
@@ -463,8 +463,8 @@
|
||||
static int altgr_mask = 0;
|
||||
--- xvkbd.c.orig 2015-02-14 11:32:32 UTC
|
||||
+++ xvkbd.c
|
||||
@@ -470,8 +470,8 @@ static int altgr_mask = 0;
|
||||
static int level3_shift_mask = 0;
|
||||
static KeySym altgr_keysym = NoSymbol;
|
||||
|
||||
-static int shift_state = 0;
|
||||
|
@ -20,7 +20,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
static Display *target_dpy = NULL;
|
||||
|
||||
@@ -475,7 +475,7 @@
|
||||
@@ -482,7 +482,7 @@ static Window focused_subwindow = None;
|
||||
static Pixmap xvkbd_pixmap = None;
|
||||
|
||||
static int AddKeysym(KeySym keysym, Boolean top); /* forward */
|
||||
|
@ -29,16 +29,16 @@ Last-Update: 2010-06-11
|
|||
static void MakeKeyboard(Boolean remake);
|
||||
static void MakeKeypad(Widget form, Widget from_vert, Widget from_horiz);
|
||||
static void MakeSunFunctionKey(Widget form, Widget from_vert, Widget from_horiz);
|
||||
@@ -484,6 +484,8 @@
|
||||
static void PopupFunctionKeyEditor(void);
|
||||
@@ -492,6 +492,8 @@ static void PopupFunctionKeyEditor(void)
|
||||
static void DeleteWindowProc(Widget w, XEvent *event, String *pars, Cardinal *n_pars);
|
||||
static void SaveProperty(void);
|
||||
|
||||
+static void SignalUser1(int sig);
|
||||
+
|
||||
/*
|
||||
* Search for window which has specified instance name (WM_NAME)
|
||||
* or class name (WM_CLASS).
|
||||
@@ -492,8 +494,7 @@
|
||||
@@ -500,8 +502,7 @@ static Window FindWindow(Window top, cha
|
||||
{
|
||||
Window w;
|
||||
Window *children, dummy;
|
||||
|
@ -48,7 +48,7 @@ Last-Update: 2010-06-11
|
|||
XClassHint hint;
|
||||
char *win_name;
|
||||
|
||||
@@ -777,7 +778,9 @@
|
||||
@@ -802,7 +803,9 @@ static int MyErrorHandler(Display *my_dp
|
||||
*/
|
||||
static void SendEvent(XKeyEvent *event)
|
||||
{
|
||||
|
@ -58,7 +58,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
if (!appres.no_sync) {
|
||||
XSync(event->display, FALSE);
|
||||
@@ -1061,11 +1064,11 @@
|
||||
@@ -1099,11 +1102,11 @@ static void SendKeyPressedEvent(KeySym k
|
||||
|
||||
#ifdef USE_XTEST
|
||||
if (appres.xtest && press_release == 0) {
|
||||
|
@ -72,7 +72,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
event.type = KeyRelease;
|
||||
event.state = 0;
|
||||
@@ -1221,7 +1224,7 @@
|
||||
@@ -1281,7 +1284,7 @@ static int n_word_list = 0;
|
||||
|
||||
static void SetDefaultDictionary(void)
|
||||
{
|
||||
|
@ -81,7 +81,7 @@ Last-Update: 2010-06-11
|
|||
XtVaSetValues(props_dict_entry, XtNstring, dict_filename, NULL);
|
||||
}
|
||||
|
||||
@@ -1236,7 +1239,7 @@
|
||||
@@ -1296,7 +1299,7 @@ static void ReadCompletionDictionary(voi
|
||||
struct WORDLIST *p;
|
||||
|
||||
if (strcmp(cur_dict_filename, dict_filename) == 0) return;
|
||||
|
@ -90,7 +90,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
if (!first) {
|
||||
int cnt = 0;
|
||||
@@ -1286,7 +1289,7 @@
|
||||
@@ -1346,7 +1349,7 @@ static void ReadCompletionDictionary(voi
|
||||
|
||||
static void AddToCompletionText(KeySym keysym)
|
||||
{
|
||||
|
@ -99,7 +99,7 @@ Last-Update: 2010-06-11
|
|||
struct WORDLIST *node_ptr;
|
||||
|
||||
if (completion_entry != None) {
|
||||
@@ -1376,7 +1379,7 @@
|
||||
@@ -1436,7 +1439,7 @@ static void PopupCompletionPanel(void)
|
||||
|
||||
ReadCompletionDictionary();
|
||||
|
||||
|
@ -108,7 +108,7 @@ Last-Update: 2010-06-11
|
|||
XtVaSetValues(completion_entry, XtNlabel, msg, NULL);
|
||||
|
||||
completion_text[0] = '\0';
|
||||
@@ -1391,11 +1394,11 @@
|
||||
@@ -1451,11 +1454,11 @@ static void PopupCompletionPanel(void)
|
||||
*/
|
||||
static void KeyPressed(Widget w, char *key, char *data);
|
||||
|
||||
|
@ -123,7 +123,7 @@ Last-Update: 2010-06-11
|
|||
int val;
|
||||
Window target_root, child, junk_w;
|
||||
int junk_i;
|
||||
@@ -1420,8 +1423,7 @@
|
||||
@@ -1480,8 +1483,7 @@ static void SendString(const unsigned ch
|
||||
} else {
|
||||
len = cp2 - cp - 1;
|
||||
if (sizeof(key) <= len) len = sizeof(key) - 1;
|
||||
|
@ -133,7 +133,7 @@ Last-Update: 2010-06-11
|
|||
KeyPressed(None, key, NULL);
|
||||
cp = cp2;
|
||||
}
|
||||
@@ -1468,11 +1470,12 @@
|
||||
@@ -1528,11 +1530,12 @@ static void SendString(const unsigned ch
|
||||
if ('1' <= *cp && *cp <= '9') {
|
||||
usleep((*cp - '0') * 100000);
|
||||
} else {
|
||||
|
@ -147,7 +147,7 @@ Last-Update: 2010-06-11
|
|||
cp++;
|
||||
if ('1' <= *cp && *cp <= '9') {
|
||||
if (appres.debug) fprintf(stderr, "XTestFakeButtonEvent(%d)\n", *cp - '0');
|
||||
@@ -1483,10 +1486,18 @@
|
||||
@@ -1543,10 +1546,18 @@ static void SendString(const unsigned ch
|
||||
fprintf(stderr, "%s: no digit after \"\\m\"\n",
|
||||
PROGRAM_NAME);
|
||||
}
|
||||
|
@ -167,7 +167,7 @@ Last-Update: 2010-06-11
|
|||
target_root = RootWindow(target_dpy, DefaultScreen(target_dpy));
|
||||
XQueryPointer(target_dpy, target_root, &junk_w, &child,
|
||||
&cur_x, &cur_y, &junk_i, &junk_i, &junk_u);
|
||||
@@ -1554,7 +1565,7 @@
|
||||
@@ -1628,7 +1639,7 @@ static void Highlight(char *name, int st
|
||||
char name1[50];
|
||||
Widget w;
|
||||
|
||||
|
@ -176,7 +176,7 @@ Last-Update: 2010-06-11
|
|||
w = XtNameToWidget(toplevel, name1);
|
||||
if (w != None) {
|
||||
if (strstr(name, "Focus") != NULL) {
|
||||
@@ -1583,13 +1594,13 @@
|
||||
@@ -1674,13 +1685,13 @@ static Boolean CheckShiftState(int row,
|
||||
static void RefreshShiftState(Boolean force)
|
||||
{
|
||||
static Boolean first = TRUE;
|
||||
|
@ -195,7 +195,7 @@ Last-Update: 2010-06-11
|
|||
int first_row, row, col;
|
||||
Boolean shifted;
|
||||
char *label;
|
||||
@@ -1680,7 +1691,7 @@
|
||||
@@ -1768,7 +1779,7 @@ static void RefreshShiftState(Boolean fo
|
||||
|
||||
Window root, child;
|
||||
int root_x, root_y, x, y;
|
||||
|
@ -204,7 +204,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
XKeyEvent event;
|
||||
|
||||
@@ -1696,28 +1707,28 @@
|
||||
@@ -1784,28 +1795,28 @@ static void RefreshShiftState(Boolean fo
|
||||
event.same_screen = TRUE;
|
||||
event.state = 0;
|
||||
|
||||
|
@ -238,7 +238,7 @@ Last-Update: 2010-06-11
|
|||
event.keycode = XKeysymToKeycode(target_dpy, XK_Meta_L);
|
||||
event.type = (shift_state & meta_mask) ? KeyPress : KeyRelease;
|
||||
SendEvent(&event);
|
||||
@@ -1778,7 +1789,7 @@
|
||||
@@ -1866,7 +1877,7 @@ static char *GetWindowGeometry(Widget w)
|
||||
|
||||
XtVaGetValues(w, XtNx, &x0, XtNy, &y0, NULL);
|
||||
XGetGeometry(dpy, XtWindow(w), &root, &x1, &y1, &wd, &ht, &bd, &dp);
|
||||
|
@ -247,7 +247,16 @@ Last-Update: 2010-06-11
|
|||
|
||||
return geom;
|
||||
}
|
||||
@@ -1840,7 +1851,7 @@
|
||||
@@ -1908,7 +1919,7 @@ static void SetWindowManagerHint(Boolean
|
||||
FALSE, SubstructureNotifyMask | SubstructureRedirectMask,
|
||||
(XEvent *)&ev);
|
||||
if (appres.debug)
|
||||
- fprintf(stderr, "SetWindowManagerHint: _NET_WM_STATE_ABOVE = %d\n", ev.data.l[0]);
|
||||
+ fprintf(stderr, "SetWindowManagerHint: _NET_WM_STATE_ABOVE = %ld\n", ev.data.l[0]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1930,7 +1941,7 @@ static void LayoutSelected(Widget w, cha
|
||||
if (key != NULL) {
|
||||
if (strcmp(key, "default") != 0) {
|
||||
sscanf(key, "%29[^/]/%29s", customization, lang);
|
||||
|
@ -256,7 +265,7 @@ Last-Update: 2010-06-11
|
|||
xenv = XtResolvePathname(dpy, "app-defaults", name, NULL, NULL, NULL, 0, NULL);
|
||||
if (xenv == NULL) {
|
||||
fprintf(stderr, "%s: app-default file \"%s\" not installed\n",
|
||||
@@ -1848,12 +1859,10 @@
|
||||
@@ -1938,12 +1949,10 @@ static void LayoutSelected(Widget w, cha
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -269,9 +278,9 @@ Last-Update: 2010-06-11
|
|||
- sprintf(env_xenv, "XENVIRONMENT=%s", xenv);
|
||||
+ asprintf(&env_xenv, "XENVIRONMENT=%s", xenv);
|
||||
putenv(env_xenv);
|
||||
} else if (getenv("XENVIRONMENT") != NULL) {
|
||||
putenv("XENVIRONMENT=");
|
||||
@@ -1962,6 +1971,7 @@
|
||||
|
||||
keyboard_layout = XtNewString(key);
|
||||
@@ -2063,6 +2072,7 @@ static void PropsItemToggled(Widget w, c
|
||||
XtVaGetValues(XtNameToWidget(props_panel, "*jump_pointer"),
|
||||
XtNstate, &appres.jump_pointer, NULL);
|
||||
|
||||
|
@ -279,7 +288,7 @@ Last-Update: 2010-06-11
|
|||
appres.key_click_duration = (int)XawToggleGetCurrent(click_buttons);
|
||||
appres.autoclick_delay = (int)XawToggleGetCurrent(autoclick_buttons);
|
||||
|
||||
@@ -2028,7 +2038,7 @@
|
||||
@@ -2129,7 +2139,7 @@ static void PopupPropsPanel(void)
|
||||
if (props_panel == None) {
|
||||
Widget label, button;
|
||||
Widget form, w;
|
||||
|
@ -288,7 +297,7 @@ Last-Update: 2010-06-11
|
|||
int val;
|
||||
|
||||
props_panel = XtVaCreatePopupShell("props_panel", transientShellWidgetClass,
|
||||
@@ -2054,7 +2064,7 @@
|
||||
@@ -2155,7 +2165,7 @@ static void PopupPropsPanel(void)
|
||||
click_buttons = button;
|
||||
for (val = 1; val <= 50; val *= 2) {
|
||||
char s1[10];
|
||||
|
@ -297,7 +306,7 @@ Last-Update: 2010-06-11
|
|||
button = XtVaCreateManagedWidget(s1, toggleWidgetClass,
|
||||
form, XtNfromVert, w, XtNfromHoriz, button,
|
||||
XtNradioData, (XtPointer)val,
|
||||
@@ -2076,7 +2086,7 @@
|
||||
@@ -2177,7 +2187,7 @@ static void PopupPropsPanel(void)
|
||||
autoclick_buttons = button;
|
||||
for (val = 500; val <= 1000; val += 100) {
|
||||
char s1[10];
|
||||
|
@ -306,7 +315,7 @@ Last-Update: 2010-06-11
|
|||
button = XtVaCreateManagedWidget(s1, toggleWidgetClass,
|
||||
form, XtNfromVert, w, XtNfromHoriz, button,
|
||||
XtNradioData, (XtPointer)val,
|
||||
@@ -2138,7 +2148,7 @@
|
||||
@@ -2239,7 +2249,7 @@ static void OpenRemoteDisplay(Widget w,
|
||||
focused_subwindow = None;
|
||||
if (target_dpy != NULL && target_dpy != dpy) XCloseDisplay(target_dpy);
|
||||
|
||||
|
@ -315,7 +324,7 @@ Last-Update: 2010-06-11
|
|||
for (cp = name; isascii(*cp) && isprint(*cp); cp++) ;
|
||||
*cp = '\0';
|
||||
|
||||
@@ -2342,7 +2352,7 @@
|
||||
@@ -2443,7 +2453,7 @@ static void IconifyWindow(Widget w, Bool
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -324,7 +333,7 @@ Last-Update: 2010-06-11
|
|||
{
|
||||
XWindowAttributes attr;
|
||||
XGetWindowAttributes(dpy, XtWindow(toplevel), &attr);
|
||||
@@ -2647,7 +2657,7 @@
|
||||
@@ -2752,7 +2762,7 @@ static Widget MakeKey(Widget parent, con
|
||||
XtAddCallback(w, XtNcallback, (XtCallbackProc)KeyPressed, (XtPointer)name);
|
||||
|
||||
if (label != NULL) {
|
||||
|
@ -333,7 +342,7 @@ Last-Update: 2010-06-11
|
|||
if (strcmp(str, "space") == 0) strcpy(str, "");
|
||||
len = strlen(str);
|
||||
if (3 <= len) {
|
||||
@@ -2719,9 +2729,9 @@
|
||||
@@ -2824,9 +2834,9 @@ static void MakeKeypad(Widget form, Widg
|
||||
|| (strncmp(keypad_shift[row][col], "KP_", 3) == 0
|
||||
&& isdigit(keypad_shift[row][col][3])))
|
||||
color = appres.general_background;
|
||||
|
@ -345,7 +354,7 @@ Last-Update: 2010-06-11
|
|||
key = MakeKey(keypad_box, XtNewString(name),
|
||||
keypad_label[row][col], color);
|
||||
XtVaSetValues(key, XtNfont, font, NULL);
|
||||
@@ -2823,12 +2833,12 @@
|
||||
@@ -2928,12 +2938,12 @@ static void MakeKeyboard(Boolean remake)
|
||||
Widget form, key, left;
|
||||
Pixel color;
|
||||
XFontStruct *font;
|
||||
|
@ -360,7 +369,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
#include "xvkbd.xbm"
|
||||
#include "iconify.xbm"
|
||||
@@ -2848,7 +2858,7 @@
|
||||
@@ -2953,7 +2963,7 @@ static void MakeKeyboard(Boolean remake)
|
||||
for (row = first_row; row < NUM_KEY_ROWS; row++) {
|
||||
if (keys_normal[row][0] == NULL) continue;
|
||||
|
||||
|
@ -369,7 +378,7 @@ Last-Update: 2010-06-11
|
|||
key_box[row] = XtVaCreateManagedWidget(name, formWidgetClass, form, NULL);
|
||||
key_box[row + 1] = None;
|
||||
if (row != first_row)
|
||||
@@ -2858,7 +2868,7 @@
|
||||
@@ -2963,7 +2973,7 @@ static void MakeKeyboard(Boolean remake)
|
||||
|
||||
left = None;
|
||||
for (col = 0; keys_normal[row][col] != NULL; col++) {
|
||||
|
@ -378,7 +387,7 @@ Last-Update: 2010-06-11
|
|||
if (strcmp(name, "MainMenu") == 0) {
|
||||
Widget iconify_button = None;
|
||||
|
||||
@@ -2900,11 +2910,11 @@
|
||||
@@ -3005,11 +3015,11 @@ static void MakeKeyboard(Boolean remake)
|
||||
color = appres.general_background;
|
||||
font = appres.general_font;
|
||||
if (isalpha(name[0])) font = appres.letter_font;
|
||||
|
@ -393,7 +402,7 @@ Last-Update: 2010-06-11
|
|||
/* keys can be removed by setting its width to 1 */
|
||||
XtDestroyWidget(key);
|
||||
key = None;
|
||||
@@ -2941,7 +2951,7 @@
|
||||
@@ -3045,7 +3055,7 @@ static void MakeKeyboard(Boolean remake)
|
||||
Window root;
|
||||
int x1, y1;
|
||||
unsigned int wd, ht, bd, dp;
|
||||
|
@ -402,7 +411,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
XGetGeometry(dpy, XtWindow(toplevel), &root, &x1, &y1, &wd, &ht, &bd, &dp);
|
||||
max_wd = XtScreen(toplevel)->width * appres.max_width_ratio;
|
||||
@@ -2959,16 +2969,16 @@
|
||||
@@ -3063,16 +3073,16 @@ static void MakeKeyboard(Boolean remake)
|
||||
|
||||
if (!appres.debug && key_box[first_row] != None) {
|
||||
if (appres.keypad) {
|
||||
|
@ -424,7 +433,7 @@ Last-Update: 2010-06-11
|
|||
}
|
||||
}
|
||||
if (0 < strlen(appres.geometry)) {
|
||||
@@ -3068,19 +3078,20 @@
|
||||
@@ -3180,11 +3190,11 @@ static void ReadProperty(void)
|
||||
home = getenv("HOME");
|
||||
if (appres.key_file[0] != '/' && home != NULL
|
||||
&& strlen(home) + strlen(appres.key_file) + 1 < sizeof(fkey_filename))
|
||||
|
@ -439,27 +448,16 @@ Last-Update: 2010-06-11
|
|||
|
||||
fp = fopen(fkey_filename, "r");
|
||||
if (fp == NULL) return;
|
||||
|
||||
while (fgets(str, sizeof(str) - 1, fp)) {
|
||||
if (str[0] == '#') {
|
||||
- sscanf(&str[1], "%s %d", key, &val);
|
||||
- if (strcmp(key, "quick_modifiers") == 0)
|
||||
+ if (sscanf(&str[1], "%s %d", key, &val) != 2)
|
||||
+ fprintf(stderr, "%s: bad function key '%s'\n", PROGRAM_NAME, str + 1);
|
||||
+ else if (strcmp(key, "quick_modifiers") == 0)
|
||||
appres.quick_modifiers = val;
|
||||
else if (strcmp(key, "shift_lock") == 0)
|
||||
appres.shift_lock = val;
|
||||
@@ -3100,7 +3111,7 @@
|
||||
appres.jump_pointer = val;
|
||||
else if (strcmp(key, "dict_file") == 0) {
|
||||
sscanf(&str[1], "%*s %s", &key);
|
||||
@@ -3199,7 +3209,7 @@ static void ReadProperty(void)
|
||||
LayoutSelected(None, keyboard_layout, NULL);
|
||||
}
|
||||
} else if (sscanf(&str[1], "dict_file %s", key) == 1) {
|
||||
- strncpy(dict_filename, key, sizeof(dict_filename));
|
||||
+ snprintf(dict_filename, sizeof(dict_filename), "%s", key);
|
||||
}
|
||||
} else if (isalpha(str[0])) {
|
||||
len = strlen(str);
|
||||
@@ -3155,9 +3166,9 @@
|
||||
} else if (sscanf(&str[1], "%s %d", key, &val) == 2) {
|
||||
if (strcmp(key, "quick_modifiers") == 0)
|
||||
appres.quick_modifiers = val;
|
||||
@@ -3273,9 +3283,9 @@ static void FKeyMenuSelected(Widget w, c
|
||||
if (key == NULL)
|
||||
strcpy(key2, "");
|
||||
else if (strncmp(key, "Shift-", strlen("Shift-")) == 0)
|
||||
|
@ -471,7 +469,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
if (strcmp(cur_fkey, key2) != 0) {
|
||||
if (strlen(cur_fkey) != 0) {
|
||||
@@ -3180,7 +3191,7 @@
|
||||
@@ -3298,7 +3308,7 @@ static void FKeyMenuSelected(Widget w, c
|
||||
prefix = "";
|
||||
if (cur_fkey_value_mode[0] == 'c') prefix = "!";
|
||||
else if (fkey_value[0] == '!' || fkey_value[0] == '\\') prefix = "\\";
|
||||
|
@ -480,7 +478,7 @@ Last-Update: 2010-06-11
|
|||
} else { /* empty string - remove the entry for the function key */
|
||||
if (sp != NULL) {
|
||||
if (sp2 != NULL) sp2->next = sp->next;
|
||||
@@ -3200,10 +3211,10 @@
|
||||
@@ -3318,10 +3328,10 @@ static void FKeyMenuSelected(Widget w, c
|
||||
FKeyValueMenuSelected(None, (value[0] == '!') ? "command" : "string");
|
||||
|
||||
if (value[0] == '!' || value[0] == '\\') value = value + 1;
|
||||
|
@ -493,7 +491,7 @@ Last-Update: 2010-06-11
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -3266,9 +3277,9 @@
|
||||
@@ -3385,9 +3395,9 @@ static void PopupFunctionKeyEditor(void)
|
||||
for (j = 0; j <= 1; j++) {
|
||||
for (i = 1; i <= appres.editable_function_keys; i++) {
|
||||
if (j == 0)
|
||||
|
@ -505,7 +503,7 @@ Last-Update: 2010-06-11
|
|||
key = XtNewString(label);
|
||||
menu_entry = XtVaCreateManagedWidget(key, smeBSBObjectClass, menu, NULL);
|
||||
XtAddCallback(menu_entry, XtNcallback, (XtCallbackProc)FKeyMenuSelected,
|
||||
@@ -3330,8 +3341,8 @@
|
||||
@@ -3449,8 +3459,8 @@ static const char *FindFunctionKeyValue(
|
||||
else if (shift_state & ControlMask) prefix = 'c';
|
||||
else if (shift_state & ShiftMask) prefix = 's';
|
||||
}
|
||||
|
@ -516,7 +514,7 @@ Last-Update: 2010-06-11
|
|||
len = strlen(label);
|
||||
|
||||
for (sp = fkey_list; sp != NULL; sp = sp->next) {
|
||||
@@ -3389,8 +3400,10 @@
|
||||
@@ -3508,8 +3518,10 @@ static void Autoclick(void)
|
||||
{
|
||||
StopAutoclick();
|
||||
|
||||
|
@ -527,7 +525,7 @@ Last-Update: 2010-06-11
|
|||
}
|
||||
|
||||
static void ShowBalloon(Widget w, XEvent *event, String *pars, Cardinal *n_pars)
|
||||
@@ -3471,7 +3484,7 @@
|
||||
@@ -3590,7 +3602,7 @@ static void SetIconBitmap(Widget w)
|
||||
static void VisibilityChanged(Widget w, XEvent *event,
|
||||
String *pars, Cardinal *n_pars)
|
||||
{
|
||||
|
@ -536,7 +534,7 @@ Last-Update: 2010-06-11
|
|||
static time_t t1 = 0;
|
||||
time_t t2;
|
||||
|
||||
@@ -3519,7 +3532,9 @@
|
||||
@@ -3638,7 +3650,9 @@ int main(int argc, char *argv[])
|
||||
Boolean open_keypad_panel = FALSE;
|
||||
char ch;
|
||||
Window child;
|
||||
|
@ -546,7 +544,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
argc1 = argc;
|
||||
argv1 = malloc(sizeof(char *) * (argc1 + 5));
|
||||
@@ -3719,14 +3734,14 @@
|
||||
@@ -3841,14 +3855,14 @@ char *setlocale(int category, const char
|
||||
if (locale == NULL) {
|
||||
return cur_locale;
|
||||
} else if (category == LC_ALL) {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
Description: Escape a lot of minus signs.
|
||||
Forwarded: no
|
||||
Author: Peter Pentchev <roam@FreeBSD.org>
|
||||
Last-Update: 2010-06-11
|
||||
Last-Update: 2015-05-07
|
||||
|
||||
--- xvkbd.man.orig 2012-03-03 01:55:00.000000000 +0100
|
||||
+++ xvkbd.man 2012-04-01 10:31:11.073558446 +0200
|
||||
@@ -29,7 +29,7 @@
|
||||
--- xvkbd.man.orig 2015-02-14 12:28:00 UTC
|
||||
+++ xvkbd.man
|
||||
@@ -29,7 +29,7 @@ which may make it easier to enter long w
|
||||
.PP
|
||||
\fIIMPORTANT NOTE:\fP
|
||||
When invoking \fIxvkbd\fP from display managers such as XDM, GDM, etc.,
|
||||
|
@ -14,7 +14,7 @@ Last-Update: 2010-06-11
|
|||
or you will have serious security risk.
|
||||
|
||||
.SH "Environment"
|
||||
@@ -117,7 +117,7 @@
|
||||
@@ -117,7 +117,7 @@ and you can enter the remaining characte
|
||||
by clicking one of the words in the list.
|
||||
.PP
|
||||
The dictionary (list of words) file is \fB/usr/share/dict/words\fP by default,
|
||||
|
@ -23,7 +23,7 @@ Last-Update: 2010-06-11
|
|||
or on the Property panel.
|
||||
|
||||
.SH " Main Menu"
|
||||
@@ -242,17 +242,17 @@
|
||||
@@ -242,17 +242,17 @@ You may want to set \fIJump Pointer?\fP
|
||||
\fICompletion Dictionary\fP
|
||||
Set the filename to be used for word completion.
|
||||
This setting take precedence over the `\fBxvkbd.dictFile\fP' resource
|
||||
|
@ -45,7 +45,7 @@ Last-Update: 2010-06-11
|
|||
Make \fIxvkbd\fP to use \fIXSendEvent()\fP to simulate keyboard events,
|
||||
as it was in \fIxvkbd\fP version 1.0.
|
||||
\fIxvkbd\fP version 1.1 and later will try to use XTEST extension instead
|
||||
@@ -263,14 +263,14 @@
|
||||
@@ -263,14 +263,14 @@ If XTEST extension is not supported by t
|
||||
.sp 0.5
|
||||
Resource `\fBxvkbd.xtest: false\fP' has the same function.
|
||||
.TP 4
|
||||
|
@ -63,7 +63,7 @@ Last-Update: 2010-06-11
|
|||
Make \fIxvkbd\fP not to jump the pointer when sending events.
|
||||
In the default, \fIxvkbd\fP will temporary jump the pointer to the focused window,
|
||||
if input focus is set explicitly via \fIFocus\fP button,
|
||||
@@ -278,14 +278,14 @@
|
||||
@@ -278,14 +278,14 @@ and XTEST extension is to be used to sim
|
||||
.sp 0.5
|
||||
Resource `\fBxvkbd.jumpPointer: false\fP' has the same function.
|
||||
.TP 4
|
||||
|
@ -80,7 +80,7 @@ Last-Update: 2010-06-11
|
|||
Make labels on keys in the \fIxvkbd\fP window
|
||||
to be set independently for each of four shift states,
|
||||
not shifted, \fIShift\fP, \fIAltGr\fP and \fIShift\fP-\fIAltGr\fP.
|
||||
@@ -296,27 +296,27 @@
|
||||
@@ -296,27 +296,27 @@ and resouce files in the distribution.
|
||||
.sp 0.5
|
||||
Resource `\fBxvkbd.modalKeytop: true\fP' has the same function.
|
||||
.TP 4
|
||||
|
@ -116,7 +116,7 @@ Last-Update: 2010-06-11
|
|||
Do not auto-repeat even if key is depressed long time.
|
||||
.sp 0.5
|
||||
If auto-repeat is enabled (this is the default),
|
||||
@@ -328,31 +328,31 @@
|
||||
@@ -328,31 +328,31 @@ and period of repeat can be set as
|
||||
.sp 0.5
|
||||
Resource `\fBxvkbd.autoRepeat: false\fP' has the same function.
|
||||
.TP 4
|
||||
|
@ -155,7 +155,7 @@ Last-Update: 2010-06-11
|
|||
.sp 0.5
|
||||
If this option is specified,
|
||||
\fIxvkbd\fP will not open its window
|
||||
@@ -399,24 +399,24 @@
|
||||
@@ -399,28 +399,28 @@ will simulate press and release of the k
|
||||
.IP " - " 6
|
||||
\fB\\m\fP\fIdigit\fP - simulate click of the specified mouse button
|
||||
.TP 4
|
||||
|
@ -172,6 +172,11 @@ Last-Update: 2010-06-11
|
|||
\fIxvkbd\fP will not open its window
|
||||
and terminate soon after sending the string.
|
||||
.TP 4
|
||||
-.B "-utf16"
|
||||
+.B "\-utf16"
|
||||
When used with \fB-file\fP option,
|
||||
make \fIxvkbd\fP to accept UTF16 characters in the file.
|
||||
.TP 4
|
||||
-.BI "-delay " value
|
||||
-Put \fIvalue\fP ms of delay for evey characters
|
||||
-when sending characters with \fB-text\fP or \fB-file\fP.
|
||||
|
@ -187,7 +192,7 @@ Last-Update: 2010-06-11
|
|||
Specify the ID
|
||||
(hexadecimal value leaded with `\fB0x\fP', or decimal value),
|
||||
the name (instance name or class name) of the window,
|
||||
@@ -434,10 +434,10 @@
|
||||
@@ -438,10 +438,10 @@ or clear the input focus.
|
||||
If there are two or more windows which have the name specified with this option,
|
||||
the window which was found first will be selected.
|
||||
.TP 4
|
||||
|
@ -200,7 +205,7 @@ Last-Update: 2010-06-11
|
|||
.sp 0.5
|
||||
If you want to set input focus to the widget \fBfoo.bar.zot\fP,
|
||||
you can write \fBzot\fP, \fBbar.zot\fP or \fBfoo.bar.zot\fP
|
||||
@@ -448,24 +448,24 @@
|
||||
@@ -452,24 +452,24 @@ with a single widget of the client.
|
||||
For example,
|
||||
.sp
|
||||
.in +4
|
||||
|
@ -229,7 +234,7 @@ Last-Update: 2010-06-11
|
|||
Specify the default dictionary (list of words) file to be used for
|
||||
word completion.
|
||||
The `\fICompletion Dictionary\fP' filename
|
||||
@@ -475,7 +475,7 @@
|
||||
@@ -479,7 +479,7 @@ Resource `\fBxvkbd.dictFile: \fP\fIfilen
|
||||
.sp 0.5
|
||||
See also ``Making your own completion dictionary''.
|
||||
.TP 4
|
||||
|
@ -238,7 +243,7 @@ Last-Update: 2010-06-11
|
|||
Make \fIxvkbd\fP window can be minimized (iconified)
|
||||
even if no window manager is in use.
|
||||
When this feature is enabled,
|
||||
@@ -484,7 +484,7 @@
|
||||
@@ -488,7 +488,7 @@ and \fIxvkbd\fP window will be minimized
|
||||
.sp 0.5
|
||||
Resource `\fBxvkbd.minimizable: true\fP' has the same function.
|
||||
.TP 4
|
||||
|
@ -247,7 +252,7 @@ Last-Update: 2010-06-11
|
|||
Disable invocation of external commands,
|
||||
including user assigned command and the online manual reader.
|
||||
Connection to another displays would also be disabled.
|
||||
@@ -492,25 +492,25 @@
|
||||
@@ -496,25 +496,25 @@ This option may be useful when \fIxvkbd\
|
||||
.sp 0.5
|
||||
Resource `\fBxvkbd.secure: true\fP' has the same function.
|
||||
.TP 4
|
||||
|
@ -278,7 +283,7 @@ Last-Update: 2010-06-11
|
|||
to apply this for those four modifiers.
|
||||
Maybe this can be useful when attempting to decorate
|
||||
the mouse operations with the modifiers.
|
||||
@@ -520,101 +520,101 @@
|
||||
@@ -524,97 +524,97 @@ and which can prevent the correct operat
|
||||
.sp 0.5
|
||||
Resource `\fBxvkbd.positiveModifiers: \fP\fImodifiers...\fP' has the same function.
|
||||
.TP 4
|
||||
|
@ -393,23 +398,18 @@ Last-Update: 2010-06-11
|
|||
.SH "Download"
|
||||
.TP 4
|
||||
\fILatest Official Release\fP
|
||||
-\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz\fP
|
||||
+\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.5.tar.gz\fP
|
||||
-\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.6.tar.gz\fP
|
||||
+\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.6.tar.gz\fP
|
||||
.br
|
||||
- source of version 3.5 (2013-07-15)
|
||||
- source of version 3.6 (2015-02-15)
|
||||
.TP 4
|
||||
previous release
|
||||
-\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.4a.tar.gz\fP
|
||||
+\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.4a.tar.gz\fP
|
||||
-http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz
|
||||
+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.5.tar.gz
|
||||
.br
|
||||
- source of version 3.4a (2013-04-03)
|
||||
.sp 0.5
|
||||
-\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.3.tar.gz\fP
|
||||
+\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.3.tar.gz\fP
|
||||
.br
|
||||
- source of version 3.3 (2012-03-03)
|
||||
- source of version 3.5 (2013-07-15)
|
||||
.PP
|
||||
@@ -651,8 +651,8 @@
|
||||
@@ -651,8 +651,8 @@ load them via \fIxrdb\fP(1), or
|
||||
.IP " o " 4
|
||||
set the filename to the \fB$XENVIRONMENT\fP environment variable, or
|
||||
.IP " o " 4
|
||||
|
@ -420,7 +420,7 @@ Last-Update: 2010-06-11
|
|||
.IP " o " 4
|
||||
put them in application default directory as \fBXVkbd\fP.
|
||||
.PP
|
||||
@@ -664,11 +664,11 @@
|
||||
@@ -664,11 +664,11 @@ directories specified with \fB$XUSERFILE
|
||||
system's application default directory specified with
|
||||
\fB$XFILESEACHPATH\fP environment variable,
|
||||
or else the directory specified when compiling the X
|
||||
|
@ -434,7 +434,7 @@ Last-Update: 2010-06-11
|
|||
near top of the file.
|
||||
.PP
|
||||
\fIxvkbd\fP is distributed with some application default files,
|
||||
@@ -699,7 +699,7 @@
|
||||
@@ -699,7 +699,7 @@ You may also want to set:
|
||||
to display only the labels for the current shift state,
|
||||
instead of trying to always display all of them in the small keytop.
|
||||
.PP
|
||||
|
@ -443,7 +443,7 @@ Last-Update: 2010-06-11
|
|||
|
||||
.SH " Removing Unwanted Keys"
|
||||
Keys on \fIxvkbd\fP window can be removed by setting their width to 1.
|
||||
@@ -773,12 +773,12 @@
|
||||
@@ -773,12 +773,12 @@ when \fBxvkbd.modalKeytop\fP resoruce is
|
||||
In all of those resources, each keys are separated by spaces,
|
||||
and rows of keys are terminated with `\fB \\n\\\fP'
|
||||
(note that `\fB\\n\fP' must have space before it).
|
||||
|
@ -459,7 +459,7 @@ Last-Update: 2010-06-11
|
|||
will make \fIxvkbd\fP to use the German layout.
|
||||
For another method to activate those settings, please refer
|
||||
"How to Customize \fIxvkbd\fP" above.
|
||||
@@ -840,7 +840,7 @@
|
||||
@@ -840,7 +840,7 @@ You can use \fBxev\fP command to check w
|
||||
.IP " o " 4
|
||||
If \fIAlt\fP or \fIMeta\fP is not defined as modifier,
|
||||
the key can't be used as modifier.
|
||||
|
@ -468,7 +468,7 @@ Last-Update: 2010-06-11
|
|||
.IP " o " 4
|
||||
\fINum Lock\fP (and maybe other modifiers) on the physical keyboard
|
||||
may not work correctly when \fIxvkbd\fP is in use.
|
||||
@@ -851,10 +851,10 @@
|
||||
@@ -851,10 +851,10 @@ FAQ - Possible Problems and Solutions
|
||||
http://homepage3.nifty.com/tsato/xvkbd/faq.html
|
||||
.TP 4
|
||||
Making your own completion dictionary
|
||||
|
@ -482,7 +482,7 @@ Last-Update: 2010-06-11
|
|||
.TP 4
|
||||
Note about how to send key events
|
||||
http://homepage3.nifty.com/tsato/xvkbd/events.html
|
||||
@@ -875,26 +875,26 @@
|
||||
@@ -875,26 +875,26 @@ which can't be entered directly from key
|
||||
can be entered using dedicated key combinations.
|
||||
.IP " - " 6
|
||||
Make keyboard layout not to be disturbed when
|
||||
|
@ -514,7 +514,7 @@ Last-Update: 2010-06-11
|
|||
.IP " - " 6
|
||||
\fIxvkbd\fP can now send keys
|
||||
with \fIMode_switch\fP (\fIAltGr\fP) modifier,
|
||||
@@ -902,9 +902,9 @@
|
||||
@@ -902,9 +902,9 @@ which enables those characters in the po
|
||||
.IP " - " 6
|
||||
\fIxvkbd\fP now support \fIAltGr\fP key
|
||||
so that German (and some other) keyboard layout can be used.
|
||||
|
@ -526,7 +526,7 @@ Last-Update: 2010-06-11
|
|||
in the distribution, which modifies keyboard layout
|
||||
and put some non-ASCII keys on the \fIxvkbd\fP window.
|
||||
.IP " - " 6
|
||||
@@ -920,7 +920,7 @@
|
||||
@@ -920,7 +920,7 @@ Labels on keys can now be set independen
|
||||
not shifted, \fIShift\fP, \fIAltGr\fP and \fIShift\fP-\fIAltGr\fP.
|
||||
(thanks, Jim)
|
||||
.IP " - " 6
|
||||
|
@ -535,7 +535,7 @@ Last-Update: 2010-06-11
|
|||
.TP 4
|
||||
Version 1.2 (2001-02-18)
|
||||
.IP " - " 6
|
||||
@@ -948,7 +948,7 @@
|
||||
@@ -948,7 +948,7 @@ so that it will not terminated accidentl
|
||||
.TP 4
|
||||
Version 1.3 (2001-03-19)
|
||||
.IP " - " 6
|
||||
|
@ -544,7 +544,7 @@ Last-Update: 2010-06-11
|
|||
(contributed from Marcel Portner)
|
||||
.IP " - " 6
|
||||
\fIxvkbd\fP now catches MappingNotify event and reload the new mapping.
|
||||
@@ -998,7 +998,7 @@
|
||||
@@ -998,7 +998,7 @@ and older \fIxvkbd\fP may not work corre
|
||||
.TP 4
|
||||
Version 1.6 (2001-11-10)
|
||||
.IP " - " 6
|
||||
|
@ -553,7 +553,7 @@ Last-Update: 2010-06-11
|
|||
(thanks, Gregory)
|
||||
.IP " - " 6
|
||||
New entry `\fIUse XTEST Extension?\fP' is added
|
||||
@@ -1017,7 +1017,7 @@
|
||||
@@ -1017,7 +1017,7 @@ after \fIxvkbd\fP is invoked.
|
||||
Show/hide of the keypad and funcion keys on the main window
|
||||
can now be toggled from the main menu.
|
||||
.IP " - " 6
|
||||
|
@ -562,7 +562,7 @@ Last-Update: 2010-06-11
|
|||
(contributed from Jean-Pierre Demailly)
|
||||
.TP 4
|
||||
Version 2.1 (2002-01-27)
|
||||
@@ -1025,9 +1025,9 @@
|
||||
@@ -1025,9 +1025,9 @@ Version 2.1 (2002-01-27)
|
||||
When height of the \fIxvkbd\fP window is smaller than
|
||||
\fBXVkbd.modalThreshold\fP,
|
||||
\fIxvkbd\fP will now automatically switch the keytop
|
||||
|
@ -574,7 +574,7 @@ Last-Update: 2010-06-11
|
|||
would send wrong keys - this problem is now fixed.
|
||||
.IP " - " 6
|
||||
Target \fBdistclean\fP in the \fBImakefile\fP is renamed
|
||||
@@ -1040,8 +1040,8 @@
|
||||
@@ -1040,8 +1040,8 @@ Version 2.2 (2002-03-17)
|
||||
String assigned to function keys can now be edited on a panel popped up via
|
||||
"\fIEdit Function Keys...\fP" in the main menu.
|
||||
.IP " - " 6
|
||||
|
@ -585,7 +585,7 @@ Last-Update: 2010-06-11
|
|||
its standard input (stdin) to get the string to be sent.
|
||||
.IP " - " 6
|
||||
In the previous release,
|
||||
@@ -1070,7 +1070,7 @@
|
||||
@@ -1070,7 +1070,7 @@ Swiss/German,
|
||||
United Kingdom
|
||||
and Latin-1.
|
||||
.IP " - " 6
|
||||
|
@ -594,7 +594,7 @@ Last-Update: 2010-06-11
|
|||
- this problem is now fixed.
|
||||
.TP 4
|
||||
Version 2.4 (2002-10-02)
|
||||
@@ -1131,24 +1131,24 @@
|
||||
@@ -1131,24 +1131,24 @@ Yet another Japanese keyboard layout, JI
|
||||
.IP " - " 6
|
||||
It is now possible to minimize (iconify) the main window
|
||||
even if no window manager is in use.
|
||||
|
@ -626,7 +626,7 @@ Last-Update: 2010-06-11
|
|||
and maybe useful when run \fIxvkbd\fP from a display manager.
|
||||
.TP 4
|
||||
Version 2.7a (2005-05-07)
|
||||
@@ -1164,17 +1164,17 @@
|
||||
@@ -1164,17 +1164,17 @@ where we must use \fIISO_Level3_Shift\fP
|
||||
Reference to the target bitmap is changed from
|
||||
\fB/usr/X11R6/include/X11/bitmaps/target\fP to \fB/usr/include/X11/bitmaps/target\fP.
|
||||
.IP " - " 6
|
||||
|
@ -648,7 +648,7 @@ Last-Update: 2010-06-11
|
|||
via \fB\\x\fP, \fB\\y\fP and \fB\\m\fP special sequences.
|
||||
.TP 4
|
||||
Version 3.0 (2008-05-05)
|
||||
@@ -1189,7 +1189,7 @@
|
||||
@@ -1189,7 +1189,7 @@ Version 3.1 (2010-01-17)
|
||||
.IP " - " 6
|
||||
Changed the default setting for automatic click to OFF, which was set ON in the previous release in error and caused confusion.
|
||||
.IP " - " 6
|
||||
|
@ -657,7 +657,7 @@ Last-Update: 2010-06-11
|
|||
.IP " - " 6
|
||||
Up to 25x25 keys can now be supported both for the main keyboard and the keypad.
|
||||
.IP " - " 6
|
||||
@@ -1197,7 +1197,7 @@
|
||||
@@ -1197,7 +1197,7 @@ Able to open the keypad panel when start
|
||||
.IP " - " 6
|
||||
Fixed errors in some keyboard layout files (Korean, Slovene, UK).
|
||||
.IP " - " 6
|
||||
|
@ -666,7 +666,7 @@ Last-Update: 2010-06-11
|
|||
.TP 4
|
||||
Version 3.2 (2010-03-14)
|
||||
.IP " - " 6
|
||||
@@ -1208,10 +1208,10 @@
|
||||
@@ -1208,10 +1208,10 @@ New option `\fIBehave as Toolbar Window?
|
||||
`\fIAlways on Top\fP' will work rather better with window managers
|
||||
which support extended window manager hint \fB_NET_WM_STATE_ABOVE\fP.
|
||||
.IP " - " 6
|
||||
|
@ -679,7 +679,7 @@ Last-Update: 2010-06-11
|
|||
`\fB*\fP' and `\fB?\fP'.
|
||||
.IP " - " 6
|
||||
Word completion dictionary file to be used with `\fIWord Completion...\fP'
|
||||
@@ -1220,18 +1220,18 @@
|
||||
@@ -1220,18 +1220,18 @@ Word completion dictionary file to be us
|
||||
Only the words which have two or more characters will be appeared
|
||||
in the word completion list.
|
||||
.IP " - " 6
|
||||
|
@ -693,15 +693,15 @@ Last-Update: 2010-06-11
|
|||
so that the specified key can be processed in more primitive manner,
|
||||
and so that modofier keys such as \fIControl_L\fP, \fIMeta_L\fP, etc.
|
||||
can also be simulated.
|
||||
Also, \fB\\{+\fP\fIkeysym\fP\fB}\fP and \fB\\{+\fP\fIkeysym\fP\fB}\fP
|
||||
Also, \fB\\{+\fP\fIkeysym\fP\fB}\fP and \fB\\{-\fP\fIkeysym\fP\fB}\fP
|
||||
will now simulate press and release of the key, respectively.
|
||||
.IP " - " 6
|
||||
-New option \fB-remote-display\fP to make \fIxvkbd\fP connect to
|
||||
+New option \fB\-remote-display\fP to make \fIxvkbd\fP connect to
|
||||
+New option \fB\-remote\-display\fP to make \fIxvkbd\fP connect to
|
||||
the specified display when startup.
|
||||
.IP " - " 6
|
||||
Bug fixed: \fBKP_0\fP now works.
|
||||
@@ -1247,7 +1247,7 @@
|
||||
@@ -1247,7 +1247,7 @@ as it seems delay of 0 caused problems i
|
||||
ISO_Left_Tab is assigned to the shifted position of the Tab key on the \fIxvkbd\fP window,
|
||||
so that Shift-Tab can be simulated.
|
||||
.IP " - " 6
|
||||
|
@ -710,3 +710,14 @@ Last-Update: 2010-06-11
|
|||
.TP 4
|
||||
Version 3.5 (2013-07-15)
|
||||
.IP " - " 6
|
||||
@@ -1258,8 +1258,8 @@ Fixed a problem that "Always on Top" not
|
||||
.TP 4
|
||||
Version 3.6 (2015-02-15)
|
||||
.IP " - " 6
|
||||
-New \fB-utf16\fP option -
|
||||
-when used with \fB-file\fP option,
|
||||
+New \fB\-utf16\fP option -
|
||||
+when used with \fB\-file\fP option,
|
||||
make \fIxvkbd\fP to accept UTF16 characters in the file.
|
||||
.IP " - " 6
|
||||
Keyboard layout selected with "Change Keyboard Layout..." will be kept
|
||||
|
|
Loading…
Reference in New Issue