恩。 所以我觉得做成一个选项, 就像emacs 里面就有个选项, 光标和鼠标相遇的时候鼠标就会让开位置。
不过我看到好像gtk里面只能通过把鼠标光标换成透明颜色这种方法来隐藏鼠标。 还有就是, 有必要加入鼠标点击候选字么。 或者有一种折中的办法, 让鼠标在进入候选的时候换成另外一种体积比较小图标, 不容易遮住字的图标, 比如一条竖线? Best regards, Zhang Jiejing 2009/1/19 Peng Huang <[email protected]> > 你好, > > > 我觉得,如果把光标移动出去不是太好,应为候选词窗口是支持鼠标按键的,例如用户可以点击翻页按钮,有可能以后还可以加入用户直接鼠标点击候选词功能。不知道有没有其他方法处理你说的问题?例如隐藏鼠标等等。 > > 2009/1/18 Zhang Jie Jing <[email protected]> > > >> 大家好: >> 在出现侯选字的时候, 有时候鼠标的光标会挡住侯选字, 这个功能就是在光标进入候选框的时候把鼠标移出去, 这个功能就是在大字的时候把鼠标移开, >> 因为有的应用程序比如firefox或者是evlution 他们都不会在打字的时候把鼠标光标隐形。 >> >> 因为我这里 ibus-setup 运行会报错(pull 的最新的代码), 所以没办法作成把这个功能作成一个选项, >> 我觉得这个功能作成一个选项会更好。 >> >> 谢谢。 下面是patch 正文。 >> >> From 9fda2a6ce1ecd6820107b7b76eff0d5bd1e4979d Mon Sep 17 00:00:00 2001 >> From: ZhangJieJing<[email protected]> >> Date: Sun, 18 Jan 2009 18:20:59 +0800 >> Subject: [PATCH] candidate panel: add a function, while mouse cursor >> on top of candidate pannel, move out the mouse for user can see the >> candidate, since some >> applicatio such as Evolution cann't hide the mouse cursor while >> typing. >> >> --- >> ui/gtk/candidatepanel.py | 29 ++++++++++++++++++++++++++++- >> 1 files changed, 28 insertions(+), 1 deletions(-) >> >> diff --git a/ui/gtk/candidatepanel.py b/ui/gtk/candidatepanel.py >> index 528c7e7..f09d44d 100644 >> --- a/ui/gtk/candidatepanel.py >> +++ b/ui/gtk/candidatepanel.py >> @@ -145,11 +145,13 @@ class CandidatePanel(gtk.VBox): >> self.__toplevel.add_events( >> gdk.BUTTON_PRESS_MASK | \ >> gdk.BUTTON_RELEASE_MASK | \ >> - gdk.BUTTON1_MOTION_MASK) >> + gdk.BUTTON1_MOTION_MASK | \ >> + gdk.ENTER_NOTIFY_MASK) >> self.__begin_move = False >> # self.__toplevel.connect("button-press-event", >> self.__button_press_event_cb) >> # self.__toplevel.connect("button-release-event", >> self.__button_release_event_cb) >> # self.__toplevel.connect("motion-notify-event", >> self.__motion_notify_event_cb) >> + self.__toplevel.connect("enter-notify-event", >> self.__enter_notify_event_cb) >> self.__toplevel.connect("size-allocate", lambda w, a: >> self.__check_position()) >> >> self.__orientation = gtk.ORIENTATION_HORIZONTAL >> @@ -459,6 +461,31 @@ class CandidatePanel(gtk.VBox): >> return True >> return False >> >> + def __enter_notify_event_cb(self, widget, event): >> + """ Move out the mouse cursor to avoid the the candidatepanel >> blocking >> + """ >> + dx = dy = 0 >> + cursor_width = 20 >> + cursor_height = 20 >> + # TODO: this mouse cursor 's width should be dynamic get >> + >> + width = self.__toplevel.allocation.width >> + height = self.__toplevel.allocation.height >> + if event.x > width/2: >> + dx = width - event.x >> + else: >> + dx = -event.x - cursor_width >> + # - cursor_width for let cursor more get away from panel >> + if event.y > height/2: >> + dy = height - event.y + cursor_height >> + else: >> + dy = -event.y >> + screen = gdk.screen_get_default() >> + gdk.Display.warp_pointer(widget.get_display(), \ >> + screen, \ >> + int(event.x_root + dx), \ >> + int(event.y_root + dy)) >> + >> def __motion_notify_event_cb(self, widget, event): >> if self.__begin_move != True: >> return False >> -- >> 1.5.4.3 >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "ibus-devel" group. iBus project web page: http://code.google.com/p/ibus/ iBus dev group: http://groups.google.com/group/ibus-devel?hl=en -~----------~----~----~----~------~----~------~--~---
