瀏覽代碼

Handle dead keys more properly (through some fixing in FLTK).


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4365 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.1.90
Pierre Ossman 13 年之前
父節點
當前提交
89f868a44f
共有 3 個檔案被更改,包括 32 行新增2 行删除
  1. 8
    0
      CMakeLists.txt
  2. 7
    2
      vncviewer/DesktopWindow.cxx
  3. 17
    0
      vncviewer/keysym2ucs.c

+ 8
- 0
CMakeLists.txt 查看文件

include(CheckFunctionExists) include(CheckFunctionExists)
include(CheckTypeSize) include(CheckTypeSize)
include(CheckCSourceCompiles) include(CheckCSourceCompiles)
include(CheckCXXSourceCompiles)


project(TigerVNC) project(TigerVNC)
set(VERSION 1.0.90) set(VERSION 1.0.90)
set(FLTK_SKIP_FLUID TRUE) set(FLTK_SKIP_FLUID TRUE)
set(FLTK_SKIP_OPENGL TRUE) set(FLTK_SKIP_OPENGL TRUE)
find_package(FLTK COMPONENTS REQUIRED) find_package(FLTK COMPONENTS REQUIRED)

# FLTK STR #2599
set(CMAKE_REQUIRED_INCLUDES ${FLTK_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${FLTK_LIBRARIES})
check_cxx_source_compiles("#include <FL/Fl.H>\nint main(int c, char** v) { Fl::event_compose_symbol(); return 0; }" HAVE_FLTK_DEAD_KEYS)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
endif() endif()


# Check for GNUTLS library # Check for GNUTLS library

+ 7
- 2
vncviewer/DesktopWindow.cxx 查看文件

#include "parameters.h" #include "parameters.h"
#include "keysym2ucs.h" #include "keysym2ucs.h"


// FLTK STR #2599 must be fixed for proper dead keys support
#ifndef HAVE_FLTK_DEAD_KEYS
#define event_compose_symbol event_text
#endif

using namespace rfb; using namespace rfb;


extern void exit_vncviewer(); extern void exit_vncviewer();
return 1; return 1;


case FL_KEYDOWN: case FL_KEYDOWN:
handleKeyEvent(Fl::event_key(), Fl::event_text(), true);
handleKeyEvent(Fl::event_key(), Fl::event_compose_symbol(), true);
return 1; return 1;


case FL_KEYUP: case FL_KEYUP:
handleKeyEvent(Fl::event_key(), Fl::event_text(), false);
handleKeyEvent(Fl::event_key(), Fl::event_compose_symbol(), false);
return 1; return 1;
} }



+ 17
- 0
vncviewer/keysym2ucs.c 查看文件

{ 0x13bd, 0x0153 }, /* oe œ LATIN SMALL LIGATURE OE */ { 0x13bd, 0x0153 }, /* oe œ LATIN SMALL LIGATURE OE */
{ 0x13be, 0x0178 }, /* Ydiaeresis Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS */ { 0x13be, 0x0178 }, /* Ydiaeresis Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS */
{ 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */ { 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */
{ 0xfe50, 0x0300 }, /* COMBINING GRAVE ACCENT */
{ 0xfe51, 0x0301 }, /* COMBINING ACUTE ACCENT */
{ 0xfe52, 0x0302 }, /* COMBINING CIRCUMFLEX ACCENT */
{ 0xfe53, 0x0303 }, /* COMBINING TILDE */
{ 0xfe54, 0x0304 }, /* COMBINING MACRON */
{ 0xfe55, 0x0306 }, /* COMBINING BREVE */
{ 0xfe56, 0x0307 }, /* COMBINING DOT ABOVE */
{ 0xfe57, 0x0308 }, /* COMBINING DIAERESIS */
{ 0xfe58, 0x030a }, /* COMBINING RING ABOVE */
{ 0xfe59, 0x030b }, /* COMBINING DOUBLE ACUTE ACCENT */
{ 0xfe5a, 0x030c }, /* COMBINING CARON */
{ 0xfe5b, 0x0327 }, /* COMBINING CEDILLA */
{ 0xfe5c, 0x0328 }, /* COMBINING OGONEK */
{ 0xfe5d, 0x1da5 }, /* MODIFIER LETTER SMALL IOTA */
{ 0xfe5e, 0x3099 }, /* COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK */
{ 0xfe5f, 0x309a }, /* COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
{ 0xfe60, 0x0323 }, /* COMBINING DOT BELOW */
}; };


unsigned keysym2ucs(unsigned keysym) unsigned keysym2ucs(unsigned keysym)

Loading…
取消
儲存