博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决 ubuntu 14.04.1 下一个sublime text3 3065 中国输入的问题
阅读量:5941 次
发布时间:2019-06-19

本文共 2597 字,大约阅读时间需要 8 分钟。

你看今天 sublime text3 我以前有没有3059 的  它有支持3065该。 因此,为了支持subl  对中国输入法的实现 ,下面的操作步骤把我的记录供大家使用

有一个完整的教程:  http://www.360doc.com/content/14/0329/08/13087748_364608018.shtml#

可是须要把里面的

sublime_imfix.c文件换成以下这个,亲自使用过了没问题

/*sublime-imfix.cUse LD_PRELOAD to interpose some function to fix sublime input method support for linux.By Cjacker Huanggcc -shared -o libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPICLD_PRELOAD=./libsublime-imfix.so subl*/#include 
#include
typedef GdkSegment GdkRegionBox;struct _GdkRegion{ long size; long numRects; GdkRegionBox *rects; GdkRegionBox extents;};GtkIMContext *local_context;voidgdk_region_get_clipbox (const GdkRegion *region, GdkRectangle *rectangle){ g_return_if_fail (region != NULL); g_return_if_fail (rectangle != NULL); rectangle->x = region->extents.x1; rectangle->y = region->extents.y1; rectangle->width = region->extents.x2 - region->extents.x1; rectangle->height = region->extents.y2 - region->extents.y1; GdkRectangle rect; rect.x = rectangle->x; rect.y = rectangle->y; rect.width = 0; rect.height = rectangle->height; //The caret width is 2; //Maybe sometimes we will make a mistake, but for most of the time, it should be the caret. if(rectangle->width == 2 && GTK_IS_IM_CONTEXT(local_context)) { gtk_im_context_set_cursor_location(local_context, rectangle); }}//this is needed, for example, if you input something in file dialog and return back the edit area//context will lost, so here we set it again.static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context){ XEvent *xev = (XEvent *)xevent; if(xev->type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) { GdkWindow * win = g_object_get_data(G_OBJECT(im_context),"window"); if(GDK_IS_WINDOW(win)) gtk_im_context_set_client_window(im_context, win); } return GDK_FILTER_CONTINUE;}void gtk_im_context_set_client_window (GtkIMContext *context, GdkWindow *window){ GtkIMContextClass *klass; g_return_if_fail (GTK_IS_IM_CONTEXT (context)); klass = GTK_IM_CONTEXT_GET_CLASS (context); if (klass->set_client_window) klass->set_client_window (context, window); if(!GDK_IS_WINDOW (window)) return; g_object_set_data(G_OBJECT(context),"window",window); int width = gdk_window_get_width(window); int height = gdk_window_get_height(window); if(width != 0 && height !=0) { gtk_im_context_focus_in(context); local_context = context; } gdk_window_add_filter (window, event_filter, context);}

版权声明:本文博主原创文章。博客,未经同意不得转载。

你可能感兴趣的文章
LINQ技术、EF技术都出来蛮久了,软件开发者、软件公司是否还有必要有自己的代码生成器?...
查看>>
认识redis
查看>>
吞吐量、带宽、bps、pps、转发能力、线速转发、交换带宽
查看>>
华为交换机命令
查看>>
Linux下实现多网卡绑定
查看>>
jQuery特性效果与链式调用
查看>>
Git常用命令和Github协同流程
查看>>
0040-如何重置Cloudera Manager的admin密码
查看>>
在可编辑表格EditorGrid中,我选择一行已输入的数据,点击删除按钮,该行数据将被删除,然后当我点击表单提交按钮时,已经被删除的那一行数据仍然被插入数据库中...
查看>>
idea +springMVC搭建项目,新建各种文件基础
查看>>
Dubbo发展史谁知道?
查看>>
PS常用快捷键就这些了,记住绘图事半功倍
查看>>
expect,spawn用法小结
查看>>
代码详解|如何快速从硬盘里找到小电影?
查看>>
通讯录(容量不可变)
查看>>
我的友情链接
查看>>
oracle mysql客户端——SqlDeveloper
查看>>
架设nagios+rrdtool+pnp4nagios监控windows主机
查看>>
UIView 使用NSLayoutConstraint 代码
查看>>
百度搜索结果图文标识规则分析
查看>>