Update to 0.3.8 release
This commit is contained in:
parent
5ce2a8d600
commit
dd1ba3e866
@ -1,3 +1,3 @@
|
|||||||
gtk-vnc-0.3.7.tar.gz
|
|
||||||
.build*.log
|
.build*.log
|
||||||
*.rpm
|
*.rpm
|
||||||
|
gtk-vnc-0.3.8.tar.gz
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
diff -r cf0e849385e0 src/vncdisplay.c
|
|
||||||
--- a/src/vncdisplay.c Thu Sep 11 17:07:42 2008 +0100
|
|
||||||
+++ b/src/vncdisplay.c Thu Sep 25 12:57:31 2008 +0100
|
|
||||||
@@ -703,13 +703,12 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ((!priv->grab_keyboard || !priv->absolute) &&
|
|
||||||
- key->type == GDK_KEY_PRESS &&
|
|
||||||
+ if (key->type == GDK_KEY_PRESS &&
|
|
||||||
((keyval == GDK_Control_L && (key->state & GDK_MOD1_MASK)) ||
|
|
||||||
(keyval == GDK_Alt_L && (key->state & GDK_CONTROL_MASK)))) {
|
|
||||||
if (priv->in_pointer_grab)
|
|
||||||
do_pointer_ungrab(VNC_DISPLAY(widget), FALSE);
|
|
||||||
- else
|
|
||||||
+ else if (!priv->grab_keyboard || !priv->absolute)
|
|
||||||
do_pointer_grab(VNC_DISPLAY(widget), FALSE);
|
|
||||||
}
|
|
||||||
|
|
@ -1,426 +0,0 @@
|
|||||||
diff --git a/src/gvnc.c b/src/gvnc.c
|
|
||||||
--- a/src/gvnc.c
|
|
||||||
+++ b/src/gvnc.c
|
|
||||||
@@ -38,8 +38,6 @@
|
|
||||||
#include <zlib.h>
|
|
||||||
|
|
||||||
#include <gdk/gdkkeysyms.h>
|
|
||||||
-
|
|
||||||
-#include "vnc_keycodes.h"
|
|
||||||
|
|
||||||
struct wait_queue
|
|
||||||
{
|
|
||||||
@@ -164,6 +162,7 @@ struct gvnc
|
|
||||||
int zrle_pi_bits;
|
|
||||||
|
|
||||||
gboolean has_ext_key_event;
|
|
||||||
+ const uint8_t const *keycode_map;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define nibhi(a) (((a) >> 4) & 0x0F)
|
|
||||||
@@ -922,11 +921,9 @@ gboolean gvnc_key_event(struct gvnc *gvn
|
|
||||||
{
|
|
||||||
uint8_t pad[2] = {0};
|
|
||||||
|
|
||||||
+ GVNC_DEBUG("Key event %d %d %d %d", key, scancode, down_flag, gvnc->has_ext_key_event);
|
|
||||||
if (gvnc->has_ext_key_event) {
|
|
||||||
- if (key == GDK_Pause)
|
|
||||||
- scancode = VKC_PAUSE;
|
|
||||||
- else
|
|
||||||
- scancode = x_keycode_to_pc_keycode(scancode);
|
|
||||||
+ scancode = x_keycode_to_pc_keycode(gvnc->keycode_map, scancode);
|
|
||||||
|
|
||||||
gvnc_buffered_write_u8(gvnc, 255);
|
|
||||||
gvnc_buffered_write_u8(gvnc, 0);
|
|
||||||
@@ -1935,6 +1932,11 @@ static void gvnc_xcursor(struct gvnc *gv
|
|
||||||
g_free(pixbuf);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void gvnc_ext_key_event(struct gvnc *gvnc)
|
|
||||||
+{
|
|
||||||
+ gvnc->has_ext_key_event = TRUE;
|
|
||||||
+ gvnc->keycode_map = x_keycode_to_pc_keycode_map();
|
|
||||||
+}
|
|
||||||
|
|
||||||
static void gvnc_framebuffer_update(struct gvnc *gvnc, int32_t etype,
|
|
||||||
uint16_t x, uint16_t y,
|
|
||||||
@@ -1985,7 +1987,7 @@ static void gvnc_framebuffer_update(stru
|
|
||||||
gvnc_xcursor(gvnc, x, y, width, height);
|
|
||||||
break;
|
|
||||||
case GVNC_ENCODING_EXT_KEY_EVENT:
|
|
||||||
- gvnc->has_ext_key_event = TRUE;
|
|
||||||
+ gvnc_ext_key_event(gvnc);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
GVNC_DEBUG("Received an unknown encoding type: %d\n", etype);
|
|
||||||
diff --git a/src/x_keymap.c b/src/x_keymap.c
|
|
||||||
--- a/src/x_keymap.c
|
|
||||||
+++ b/src/x_keymap.c
|
|
||||||
@@ -1,5 +1,19 @@
|
|
||||||
/*
|
|
||||||
- * QEMU SDL display driver
|
|
||||||
+ * Copyright (C) 2008 Anthony Liguori <anthony@codemonkey.ws>
|
|
||||||
+ *
|
|
||||||
+ * This program is free software; you can redistribute it and/or modify
|
|
||||||
+ * it under the terms of the GNU Lesser General Public License version 2 as
|
|
||||||
+ * published by the Free Software Foundation.
|
|
||||||
+ *
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <gdk/gdkkeysyms.h>
|
|
||||||
+#include "x_keymap.h"
|
|
||||||
+#include "utils.h"
|
|
||||||
+#include "vnc_keycodes.h"
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * This table is taken from QEMU x_keymap.c, under the terms:
|
|
||||||
*
|
|
||||||
* Copyright (c) 2003 Fabrice Bellard
|
|
||||||
*
|
|
||||||
@@ -22,99 +36,138 @@
|
|
||||||
* THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
-/*
|
|
||||||
- * Adapted for gtk-vnc from QEMU x_keymap.c revision 1.3 (on 20080113)
|
|
||||||
- *
|
|
||||||
- * Copyright (C) 2008 Anthony Liguori <anthony@codemonkey.ws>
|
|
||||||
- *
|
|
||||||
- * This program is free software; you can redistribute it and/or modify
|
|
||||||
- * it under the terms of the GNU Lesser General Public License version 2 as
|
|
||||||
- * published by the Free Software Foundation.
|
|
||||||
+/* Mapping is offset by 97 to save space */
|
|
||||||
+static const uint8_t x_keycode_to_pc_keycode_table[61] = {
|
|
||||||
+ 0xc7, /* 97 Home */
|
|
||||||
+ 0xc8, /* 98 Up */
|
|
||||||
+ 0xc9, /* 99 PgUp */
|
|
||||||
+ 0xcb, /* 100 Left */
|
|
||||||
+ 0x4c, /* 101 KP-5 */
|
|
||||||
+ 0xcd, /* 102 Right */
|
|
||||||
+ 0xcf, /* 103 End */
|
|
||||||
+ 0xd0, /* 104 Down */
|
|
||||||
+ 0xd1, /* 105 PgDn */
|
|
||||||
+ 0xd2, /* 106 Ins */
|
|
||||||
+ 0xd3, /* 107 Del */
|
|
||||||
+ 0x9c, /* 108 Enter */
|
|
||||||
+ 0x9d, /* 109 Ctrl-R */
|
|
||||||
+ 0x0, /* 110 Pause */
|
|
||||||
+ 0xb7, /* 111 Print */
|
|
||||||
+ 0xb5, /* 112 Divide */
|
|
||||||
+ 0xb8, /* 113 Alt-R */
|
|
||||||
+ 0xc6, /* 114 Break */
|
|
||||||
+ 0x0, /* 115 */
|
|
||||||
+ 0x0, /* 116 */
|
|
||||||
+ 0x0, /* 117 */
|
|
||||||
+ 0x0, /* 118 */
|
|
||||||
+ 0x0, /* 119 */
|
|
||||||
+ 0x0, /* 120 */
|
|
||||||
+ 0x0, /* 121 */
|
|
||||||
+ 0x0, /* 122 */
|
|
||||||
+ 0x0, /* 123 */
|
|
||||||
+ 0x0, /* 124 */
|
|
||||||
+ 0x0, /* 125 */
|
|
||||||
+ 0x0, /* 126 */
|
|
||||||
+ 0x0, /* 127 */
|
|
||||||
+ 0x0, /* 128 */
|
|
||||||
+ 0x79, /* 129 Henkan */
|
|
||||||
+ 0x0, /* 130 */
|
|
||||||
+ 0x7b, /* 131 Muhenkan */
|
|
||||||
+ 0x0, /* 132 */
|
|
||||||
+ 0x7d, /* 133 Yen */
|
|
||||||
+ 0x0, /* 134 */
|
|
||||||
+ 0x0, /* 135 */
|
|
||||||
+ 0x47, /* 136 KP_7 */
|
|
||||||
+ 0x48, /* 137 KP_8 */
|
|
||||||
+ 0x49, /* 138 KP_9 */
|
|
||||||
+ 0x4b, /* 139 KP_4 */
|
|
||||||
+ 0x4c, /* 140 KP_5 */
|
|
||||||
+ 0x4d, /* 141 KP_6 */
|
|
||||||
+ 0x4f, /* 142 KP_1 */
|
|
||||||
+ 0x50, /* 143 KP_2 */
|
|
||||||
+ 0x51, /* 144 KP_3 */
|
|
||||||
+ 0x52, /* 145 KP_0 */
|
|
||||||
+ 0x53, /* 146 KP_. */
|
|
||||||
+ 0x47, /* 147 KP_HOME */
|
|
||||||
+ 0x48, /* 148 KP_UP */
|
|
||||||
+ 0x49, /* 149 KP_PgUp */
|
|
||||||
+ 0x4b, /* 150 KP_Left */
|
|
||||||
+ 0x4c, /* 151 KP_ */
|
|
||||||
+ 0x4d, /* 152 KP_Right */
|
|
||||||
+ 0x4f, /* 153 KP_End */
|
|
||||||
+ 0x50, /* 154 KP_Down */
|
|
||||||
+ 0x51, /* 155 KP_PgDn */
|
|
||||||
+ 0x52, /* 156 KP_Ins */
|
|
||||||
+ 0x53, /* 157 KP_Del */
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* This table was put together by VirtualBox. It's based on the information in
|
|
||||||
+ * /usr/share/X11/xkb/keycodes/evdev using the x_keycode_to_pc_keycode table
|
|
||||||
+ * to get the pc keycodes.
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#include "x_keymap.h"
|
|
||||||
-#include <gdk/gdkkeysyms.h>
|
|
||||||
-
|
|
||||||
-static const uint8_t x_keycode_to_pc_keycode_table[115] = {
|
|
||||||
- 0xc7, /* 97 Home */
|
|
||||||
- 0xc8, /* 98 Up */
|
|
||||||
- 0xc9, /* 99 PgUp */
|
|
||||||
- 0xcb, /* 100 Left */
|
|
||||||
- 0x4c, /* 101 KP-5 */
|
|
||||||
- 0xcd, /* 102 Right */
|
|
||||||
- 0xcf, /* 103 End */
|
|
||||||
- 0xd0, /* 104 Down */
|
|
||||||
- 0xd1, /* 105 PgDn */
|
|
||||||
- 0xd2, /* 106 Ins */
|
|
||||||
- 0xd3, /* 107 Del */
|
|
||||||
- 0x9c, /* 108 Enter */
|
|
||||||
- 0x9d, /* 109 Ctrl-R */
|
|
||||||
- 0x0, /* 110 Pause */
|
|
||||||
- 0xb7, /* 111 Print */
|
|
||||||
- 0xb5, /* 112 Divide */
|
|
||||||
- 0xb8, /* 113 Alt-R */
|
|
||||||
- 0xc6, /* 114 Break */
|
|
||||||
- 0x0, /* 115 */
|
|
||||||
- 0x0, /* 116 */
|
|
||||||
- 0x0, /* 117 */
|
|
||||||
- 0x0, /* 118 */
|
|
||||||
- 0x0, /* 119 */
|
|
||||||
- 0x0, /* 120 */
|
|
||||||
- 0x0, /* 121 */
|
|
||||||
- 0x0, /* 122 */
|
|
||||||
- 0x0, /* 123 */
|
|
||||||
- 0x0, /* 124 */
|
|
||||||
- 0x0, /* 125 */
|
|
||||||
- 0x0, /* 126 */
|
|
||||||
- 0x0, /* 127 */
|
|
||||||
- 0x0, /* 128 */
|
|
||||||
- 0x79, /* 129 Henkan */
|
|
||||||
- 0x0, /* 130 */
|
|
||||||
- 0x7b, /* 131 Muhenkan */
|
|
||||||
- 0x0, /* 132 */
|
|
||||||
- 0x7d, /* 133 Yen */
|
|
||||||
- 0x0, /* 134 */
|
|
||||||
- 0x0, /* 135 */
|
|
||||||
- 0x47, /* 136 KP_7 */
|
|
||||||
- 0x48, /* 137 KP_8 */
|
|
||||||
- 0x49, /* 138 KP_9 */
|
|
||||||
- 0x4b, /* 139 KP_4 */
|
|
||||||
- 0x4c, /* 140 KP_5 */
|
|
||||||
- 0x4d, /* 141 KP_6 */
|
|
||||||
- 0x4f, /* 142 KP_1 */
|
|
||||||
- 0x50, /* 143 KP_2 */
|
|
||||||
- 0x51, /* 144 KP_3 */
|
|
||||||
- 0x52, /* 145 KP_0 */
|
|
||||||
- 0x53, /* 146 KP_. */
|
|
||||||
- 0x47, /* 147 KP_HOME */
|
|
||||||
- 0x48, /* 148 KP_UP */
|
|
||||||
- 0x49, /* 149 KP_PgUp */
|
|
||||||
- 0x4b, /* 150 KP_Left */
|
|
||||||
- 0x4c, /* 151 KP_ */
|
|
||||||
- 0x4d, /* 152 KP_Right */
|
|
||||||
- 0x4f, /* 153 KP_End */
|
|
||||||
- 0x50, /* 154 KP_Down */
|
|
||||||
- 0x51, /* 155 KP_PgDn */
|
|
||||||
- 0x52, /* 156 KP_Ins */
|
|
||||||
- 0x53, /* 157 KP_Del */
|
|
||||||
- 0x0, /* 158 */
|
|
||||||
- 0x0, /* 159 */
|
|
||||||
- 0x0, /* 160 */
|
|
||||||
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
|
|
||||||
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
|
|
||||||
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
|
|
||||||
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
|
|
||||||
- 0x0, /* 201 */
|
|
||||||
- 0x0, /* 202 */
|
|
||||||
- 0x0, /* 203 */
|
|
||||||
- 0x0, /* 204 */
|
|
||||||
- 0x0, /* 205 */
|
|
||||||
- 0x0, /* 206 */
|
|
||||||
- 0x0, /* 207 */
|
|
||||||
- 0x70, /* 208 Hiragana_Katakana */
|
|
||||||
- 0x0, /* 209 */
|
|
||||||
- 0x0, /* 210 */
|
|
||||||
- 0x73, /* 211 backslash */
|
|
||||||
+static const uint8_t evdev_keycode_to_pc_keycode[61] = {
|
|
||||||
+ 0, /* 97 unknown */
|
|
||||||
+ 0, /* 98 unknown */
|
|
||||||
+ 0, /* 99 unknown */
|
|
||||||
+ 0, /* 100 unknown */
|
|
||||||
+ 0, /* 101 unknown */
|
|
||||||
+ 0, /* 102 unknown */
|
|
||||||
+ 0, /* 103 unknown */
|
|
||||||
+ 0x9c, /* 104 KPEN */
|
|
||||||
+ 0x9d, /* 105 RCTL */
|
|
||||||
+ 0xb5, /* 106 KPDV */
|
|
||||||
+ 0xb7, /* 107 PRSC */
|
|
||||||
+ 0xb8, /* 108 RALT */
|
|
||||||
+ 0, /* 109 unknown */
|
|
||||||
+ 0xc7, /* 110 HOME */
|
|
||||||
+ 0xc8, /* 111 UP */
|
|
||||||
+ 0xc9, /* 112 PGUP */
|
|
||||||
+ 0xcb, /* 113 LEFT */
|
|
||||||
+ 0xcd, /* 114 RGHT */
|
|
||||||
+ 0xcf, /* 115 END */
|
|
||||||
+ 0xd0, /* 116 DOWN */
|
|
||||||
+ 0xd1, /* 117 PGDN */
|
|
||||||
+ 0xd2, /* 118 INS */
|
|
||||||
+ 0xd3, /* 119 DELE */
|
|
||||||
+ 0, /* 120 unknown */
|
|
||||||
+ 0, /* 121 unknown */
|
|
||||||
+ 0, /* 122 unknown */
|
|
||||||
+ 0, /* 123 unknown */
|
|
||||||
+ 0, /* 124 unknown */
|
|
||||||
+ 0, /* 125 unknown */
|
|
||||||
+ 0, /* 126 unknown */
|
|
||||||
+ 0, /* 127 unknown */
|
|
||||||
+ 0, /* 128 unknown */
|
|
||||||
+ 0, /* 129 unknown */
|
|
||||||
+ 0, /* 130 unknown */
|
|
||||||
+ 0, /* 131 unknown */
|
|
||||||
+ 0x7d, /* 132 AE13 */
|
|
||||||
+ 0, /* 133 unknown */
|
|
||||||
+ 0, /* 134 unknown */
|
|
||||||
+ 0, /* 135 unknown */
|
|
||||||
+ 0, /* 136 unknown */
|
|
||||||
+ 0, /* 137 unknown */
|
|
||||||
+ 0, /* 138 unknown */
|
|
||||||
+ 0, /* 139 unknown */
|
|
||||||
+ 0, /* 140 unknown */
|
|
||||||
+ 0, /* 141 unknown */
|
|
||||||
+ 0, /* 142 unknown */
|
|
||||||
+ 0, /* 143 unknown */
|
|
||||||
+ 0, /* 144 unknown */
|
|
||||||
+ 0, /* 145 unknown */
|
|
||||||
+ 0, /* 146 unknown */
|
|
||||||
+ 0, /* 147 unknown */
|
|
||||||
+ 0, /* 148 unknown */
|
|
||||||
+ 0, /* 149 unknown */
|
|
||||||
+ 0, /* 150 unknown */
|
|
||||||
+ 0, /* 151 unknown */
|
|
||||||
+ 0, /* 152 unknown */
|
|
||||||
+ 0, /* 153 unknown */
|
|
||||||
+ 0, /* 154 unknown */
|
|
||||||
+ 0, /* 155 unknown */
|
|
||||||
+ 0, /* 156 unknown */
|
|
||||||
+ 0, /* 157 unknown */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* keycode translation for sending ISO_Left_Send
|
|
||||||
@@ -128,20 +181,81 @@ static struct {
|
|
||||||
|
|
||||||
static unsigned int ref_count_for_untranslated_keys = 0;
|
|
||||||
|
|
||||||
-/* FIXME N.B. on Windows, gtk probably returns PC scan codes */
|
|
||||||
+/* As best as I can tell, windows passes PC scan codes. This code definitely
|
|
||||||
+ * won't compile on windows so let's put in a guard anyway */
|
|
||||||
|
|
||||||
-uint8_t x_keycode_to_pc_keycode(int keycode)
|
|
||||||
+#ifndef WIN32
|
|
||||||
+#include <gdk/gdkx.h>
|
|
||||||
+#include <X11/XKBlib.h>
|
|
||||||
+#include <stdbool.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+
|
|
||||||
+#define STRPREFIX(a,b) (strncmp((a),(b),strlen((b))) == 0)
|
|
||||||
+
|
|
||||||
+static gboolean check_for_evdev(void)
|
|
||||||
{
|
|
||||||
+ XkbDescPtr desc;
|
|
||||||
+ gboolean has_evdev = FALSE;
|
|
||||||
+ const gchar *keycodes;
|
|
||||||
+
|
|
||||||
+ desc = XkbGetKeyboard(GDK_DISPLAY(), XkbGBN_AllComponentsMask,
|
|
||||||
+ XkbUseCoreKbd);
|
|
||||||
+ if (desc == NULL || desc->names == NULL)
|
|
||||||
+ return FALSE;
|
|
||||||
+
|
|
||||||
+ keycodes = gdk_x11_get_xatom_name(desc->names->keycodes);
|
|
||||||
+ if (keycodes == NULL)
|
|
||||||
+ g_warning("could not lookup keycode name\n");
|
|
||||||
+ else if (STRPREFIX(keycodes, "evdev_"))
|
|
||||||
+ has_evdev = TRUE;
|
|
||||||
+ else if (!STRPREFIX(keycodes, "xfree86_"))
|
|
||||||
+ g_warning("unknown keycodes `%s', please report to gtk-vnc-devel\n",
|
|
||||||
+ keycodes);
|
|
||||||
+
|
|
||||||
+ XkbFreeClientMap(desc, XkbGBN_AllComponentsMask, True);
|
|
||||||
+
|
|
||||||
+ return has_evdev;
|
|
||||||
+}
|
|
||||||
+#else
|
|
||||||
+static gboolean check_for_evdev(void)
|
|
||||||
+{
|
|
||||||
+ return FALSE;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+const uint8_t const *x_keycode_to_pc_keycode_map(void)
|
|
||||||
+{
|
|
||||||
+ if (check_for_evdev()) {
|
|
||||||
+ GVNC_DEBUG("Using evdev keycode mapping");
|
|
||||||
+ return evdev_keycode_to_pc_keycode;
|
|
||||||
+ } else {
|
|
||||||
+ GVNC_DEBUG("Using xfree86 keycode mapping");
|
|
||||||
+ return x_keycode_to_pc_keycode_table;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+uint16_t x_keycode_to_pc_keycode(const uint8_t const *keycode_map,
|
|
||||||
+ uint16_t keycode)
|
|
||||||
+{
|
|
||||||
+ if (keycode == GDK_Pause)
|
|
||||||
+ return VKC_PAUSE;
|
|
||||||
+
|
|
||||||
if (keycode < 9)
|
|
||||||
- keycode = 0;
|
|
||||||
- else if (keycode < 97)
|
|
||||||
- keycode -= 8; /* just an offset */
|
|
||||||
- else if (keycode < 212)
|
|
||||||
- keycode = x_keycode_to_pc_keycode_table[keycode - 97];
|
|
||||||
- else
|
|
||||||
- keycode = 0;
|
|
||||||
+ return 0;
|
|
||||||
|
|
||||||
- return keycode;
|
|
||||||
+ if (keycode < 97)
|
|
||||||
+ return keycode - 8; /* just an offset */
|
|
||||||
+
|
|
||||||
+ if (keycode < 158)
|
|
||||||
+ return keycode_map[keycode - 97];
|
|
||||||
+
|
|
||||||
+ if (keycode == 208) /* Hiragana_Katakana */
|
|
||||||
+ return 0x70;
|
|
||||||
+
|
|
||||||
+ if (keycode == 211) /* backslash */
|
|
||||||
+ return 0x73;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set the keymap entries */
|
|
||||||
@@ -184,3 +298,10 @@ guint x_keymap_get_keyval_from_keycode(g
|
|
||||||
|
|
||||||
return keyval;
|
|
||||||
}
|
|
||||||
+/*
|
|
||||||
+ * Local variables:
|
|
||||||
+ * c-indent-level: 8
|
|
||||||
+ * c-basic-offset: 8
|
|
||||||
+ * tab-width: 8
|
|
||||||
+ * End:
|
|
||||||
+ */
|
|
||||||
diff --git a/src/x_keymap.h b/src/x_keymap.h
|
|
||||||
--- a/src/x_keymap.h
|
|
||||||
+++ b/src/x_keymap.h
|
|
||||||
@@ -4,7 +4,9 @@
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <gdk/gdk.h>
|
|
||||||
|
|
||||||
-uint8_t x_keycode_to_pc_keycode(int keycode);
|
|
||||||
+const uint8_t const *x_keycode_to_pc_keycode_map(void);
|
|
||||||
+uint16_t x_keycode_to_pc_keycode(const uint8_t *keycode_map,
|
|
||||||
+ uint16_t keycode);
|
|
||||||
void x_keymap_set_keymap_entries(void);
|
|
||||||
void x_keymap_free_keymap_entries(void);
|
|
||||||
guint x_keymap_get_keyval_from_keycode(guint keycode, guint keyval);
|
|
@ -1,40 +0,0 @@
|
|||||||
diff --git a/src/gvnc.c b/src/gvnc.c
|
|
||||||
--- a/src/gvnc.c
|
|
||||||
+++ b/src/gvnc.c
|
|
||||||
@@ -1946,21 +1946,27 @@ static void gvnc_framebuffer_update(stru
|
|
||||||
switch (etype) {
|
|
||||||
case GVNC_ENCODING_RAW:
|
|
||||||
gvnc_raw_update(gvnc, x, y, width, height);
|
|
||||||
+ gvnc_update(gvnc, x, y, width, height);
|
|
||||||
break;
|
|
||||||
case GVNC_ENCODING_COPY_RECT:
|
|
||||||
gvnc_copyrect_update(gvnc, x, y, width, height);
|
|
||||||
+ gvnc_update(gvnc, x, y, width, height);
|
|
||||||
break;
|
|
||||||
case GVNC_ENCODING_RRE:
|
|
||||||
gvnc_rre_update(gvnc, x, y, width, height);
|
|
||||||
+ gvnc_update(gvnc, x, y, width, height);
|
|
||||||
break;
|
|
||||||
case GVNC_ENCODING_HEXTILE:
|
|
||||||
gvnc_hextile_update(gvnc, x, y, width, height);
|
|
||||||
+ gvnc_update(gvnc, x, y, width, height);
|
|
||||||
break;
|
|
||||||
case GVNC_ENCODING_ZRLE:
|
|
||||||
gvnc_zrle_update(gvnc, x, y, width, height);
|
|
||||||
+ gvnc_update(gvnc, x, y, width, height);
|
|
||||||
break;
|
|
||||||
case GVNC_ENCODING_TIGHT:
|
|
||||||
gvnc_tight_update(gvnc, x, y, width, height);
|
|
||||||
+ gvnc_update(gvnc, x, y, width, height);
|
|
||||||
break;
|
|
||||||
case GVNC_ENCODING_DESKTOP_RESIZE:
|
|
||||||
gvnc_resize(gvnc, width, height);
|
|
||||||
@@ -1986,8 +1992,6 @@ static void gvnc_framebuffer_update(stru
|
|
||||||
gvnc->has_error = TRUE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- gvnc_update(gvnc, x, y, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean gvnc_server_message(struct gvnc *gvnc)
|
|
13
gtk-vnc.spec
13
gtk-vnc.spec
@ -6,14 +6,11 @@
|
|||||||
|
|
||||||
Summary: A GTK widget for VNC clients
|
Summary: A GTK widget for VNC clients
|
||||||
Name: gtk-vnc
|
Name: gtk-vnc
|
||||||
Version: 0.3.7
|
Version: 0.3.8
|
||||||
Release: 4%{?dist}
|
Release: 1%{?dist}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
||||||
Patch1: %{name}-%{version}-abs-ungrab.patch
|
|
||||||
Patch2: %{name}-%{version}-updates.patch
|
|
||||||
Patch3: %{name}-%{version}-evdev.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
URL: http://gtk-vnc.sf.net/
|
URL: http://gtk-vnc.sf.net/
|
||||||
BuildRequires: gtk2-devel pygtk2-devel python-devel zlib-devel
|
BuildRequires: gtk2-devel pygtk2-devel python-devel zlib-devel
|
||||||
@ -70,9 +67,6 @@ browsers.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{with_plugin}
|
%if %{with_plugin}
|
||||||
@ -126,6 +120,9 @@ rm -fr %{buildroot}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Dec 7 2008 Daniel P. Berrange <berrange@redhat.com> - 0.3.8-1.fc11
|
||||||
|
- Update to 0.3.8 release
|
||||||
|
|
||||||
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.3.7-4
|
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.3.7-4
|
||||||
- Rebuild for Python 2.6
|
- Rebuild for Python 2.6
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user