Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> 入力方式を切り替える方法fcitxするUbuntuの崇高テキスト2

入力方式を切り替える方法fcitxするUbuntuの崇高テキスト2

  
                

崇高テキスト2は、あなたは中国がfcitx入力の単語を使用する必要が入力したい場合は、ユーザーが最近2例が発生した崇高テキストのfcitx入力を使用することはできませんコードエディタで、小扁は、次のUbuntuについてあなたを与えました崇高テキスト2の溶液fcitx入力を切り替えることができません。

保存を保存するには、この次のコードを〜/崇高-imfix.c

/*

崇高-imfix.c

使用LD_PRELOAD Linux用の崇高なインプットメソッドのサポートを修正するために、いくつかの機能を介在させる。

はgcc -shared -o libsublime-imfix "i-soft.com.cnでjianzhong.huang"

Cjacker黄によってを
。そうsublime_imfix.c `のpkg-config設定--libs --cflags GTK + -2.0` -fPIC

LD_PRELOAD =。 /libsublime-imfix.so sublime_text

* /

の#include "GTK /gtk.h"

の#include "GDK /gdkx.h"

のtypedef GdkSegment GdkRegionBox;

構造体_GdkRegion

{

長尺;

長いnumRects;

GdkRegionBox * rects;

GdkRegionBoxエクステント;

};

GtkIMContext * local_context;

ボイド

gdk_region_get_clipbox(CONST GdkRegion *領域、

GdkRectangle *矩形)

{

g_return_if_fail(領域= NULL); !!

g_return_if_fail(矩形= NULL);

rectangle-「X =領域 - "extents.x1;

rectangle-" Y =領域 - "extents.y1;

rectangle-" 幅=領域 - "extents.x2 - 領域 - " extents.x1;

rectangle- "高さ=領域 - " extents.y2 - 領域 - "extents.y1;

GdkRectangle RECT;

rect.x = rectangle-" X。

rect.y = Rectangle- "Y;

rect.width = 0;

rect.height = rectangle-" 高さ;

//キャレット幅は2であり;

//多分、時には私たちは間違いを犯しますが、ほとんどの時間のために、それがあるべきキャレット

もし(「幅== 2&#038 rectangle-;& GTK_IS_IM_CONTEXT(local_contextを))。 {

gtk_im_context_set_cursor_location(local_context、長方形);

}

}

//あなたのファイルダイアログで入力何かあれば、これは、例えば、必要とされていますそして
<

//コンテキストが失われますので、ここで我々は再びそれを設定する。

静的GdkFilterReturnのevent_filter(GdkXEvent *たXEvent、GdkEvent *イベント、gpointerのim_context)
編集領域をバック返しますP> {

たXEvent * XEV =(たXEvent *)たXEvent;

IF(xev-「タイプ== KeyRelease&#038;&#038; GTK_IS_IM_CONTEXT(im_context)){

GdkWindow *勝利= g_object_get_data(G_OBJECT(im_context)、'ウィンドウ');

IF(GDK_IS_WINDOW(勝利))

gtk_im_context_set_client_window(im_context、勝つ);

}

戻りGDK_FILTER_CONTINUE;

} < BR>

ボイドgtk_im_context_set_client_window(GtkIMContext *コンテキスト、

GdkWindow *ウィンドウ)

{

GtkIMContextClass *のklass;

g_return_if_fail(GTK_IS_IM_CONTEXT(コンテキスト));

のklass = GTK_IM_CONTEXT_GET_CLASS(コンテキスト);

IF(klass- "set_client_window)

klass-" set_client_window(コンテキスト、ウィンドウ);

(もし! GDK_IS_WINDOW(ウィンドウ))

リターン;

g_object_set_data(G_OBJECT(コンテキスト)、'ウィンドウ',ウィンドウ);

INT幅= gdk_window_get_width(ウィンドウ);

int型の高さ= gdk_window_get_height(ウィンドウ);

IF(幅= 0&#038;!&#038;高さ= 0!){

gtk_im_context_focus_in(コンテキスト);

local_context =文脈;

}

gdk_window_add_filter(ウィンドウ、event_filter、コンテキスト);

インストールC /C ++コンパイラ環境とGTK libgtk2.0-devの

須藤はapt-getをインストールビルド不可欠

sudoの崇高-imfix.cは、次のコマンドを実行したディレクトリを入力するようにlibgtk2.0-devの

端子をインストールapt-getを

はgcc -shared -o libsublime-imfix.so崇高-imfix.c `PKG-config設定--libs --cflags GTK + -2.0` -fPIC

変更を/usr /share /テキストエディタアプリケーション/sublime.desktopファイルには、(これが自分を構築するために、インストール崇高なテキスト2市である)、および検索し始めています' Execの=' LD_PRELOAD =〜/libsublime-imfix.so SUBL’

OK、開始行(2行)、SUBL

はbash -c&lsquoを変更するにはあなたが中国語を入力できる場所をクリック崇高なテキスト2です! (注:端末が開くSUBL入力中国語入力方式を切り替えない)

Ubuntuの崇高上記テキスト2から、本明細書にSUBL記載の方法に従って変性、fcitx入力に記載の方法を用いて解決されていませんランチャーは崇高テキスト2を起動します。

Copyright © Windowsの知識 All Rights Reserved