From 41182b4ba088a0906776878bf6e4cab9bc6fd9ad Mon Sep 17 00:00:00 2001 From: Fedora Date: Fri, 9 Sep 2011 16:49:24 +0800 Subject: [PATCH] Upstream to fcitx-4.1.0 --- .gitignore | 1 + gnome3-mainwindow-pos-walkaround.patch | 12 - gnome3-tray-fix.patch | 366 ------------------------- sources | 1 + 4 files changed, 2 insertions(+), 378 deletions(-) delete mode 100644 gnome3-mainwindow-pos-walkaround.patch delete mode 100644 gnome3-tray-fix.patch diff --git a/.gitignore b/.gitignore index 54bb1e7..4450329 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /fcitx-4.0.0_all.tar.gz /fcitx-4.0.1_all.tar.gz +/fcitx-4.1.0_all.tar.bz2 diff --git a/gnome3-mainwindow-pos-walkaround.patch b/gnome3-mainwindow-pos-walkaround.patch deleted file mode 100644 index b54b779..0000000 --- a/gnome3-mainwindow-pos-walkaround.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -r e9b9346cfabf data/profile.desc ---- a/data/profile.desc Fri Dec 17 14:06:14 2010 +0800 -+++ b/data/profile.desc Sat Jul 02 00:25:48 2011 +0800 -@@ -6,7 +6,7 @@ - [Profile/MainWindowOffsetY] - Description=Main Window Position Y - Type=Integer --DefaultValue=1 -+DefaultValue=40 - - [Profile/InputWindowOffsetX] - Description=Input Window Position X diff --git a/gnome3-tray-fix.patch b/gnome3-tray-fix.patch deleted file mode 100644 index 1d69c29..0000000 --- a/gnome3-tray-fix.patch +++ /dev/null @@ -1,366 +0,0 @@ -diff -r e9b9346cfabf -r b8f3463f19b5 ChangeLog ---- a/ChangeLog Fri Dec 17 14:06:14 2010 +0800 -+++ b/ChangeLog Wed Apr 27 13:36:00 2011 +0800 -@@ -1,3 +1,7 @@ -+2011-04-27: CSSlayer -+ * 修复txt2mb在64位系统下的一个bug -+ * 参考Freedesktop.org WM-Spec尝试解决GNOME3窗口显示相关的问题(未验证) -+ - 2010-12-16: CSSlayer - * 增加man - * 移除pdf和odt格式的文档,以后fcitx-handbook将分开发布。 -diff -r e9b9346cfabf -r b8f3463f19b5 configure.in ---- a/configure.in Fri Dec 17 14:06:14 2010 +0800 -+++ b/configure.in Wed Apr 27 13:36:00 2011 +0800 -@@ -29,6 +29,10 @@ - AC_MSG_CHECKING([host platform characteristics]) - - case "$host" in -+ *-*-*kfreebsd*) -+ HOST_LIBS="-ldl -lpthread" -+ md5prog=md5sum -+ ;; - *-*-*freebsd*) - HOST_LIBS="-lexecinfo -pthread" - md5prog=gmd5sum -@@ -37,6 +41,10 @@ - HOST_LIBS="-ldl -lpthread" - md5prog=md5sum - ;; -+ *-*-gnu*) -+ HOST_LIBS="-ldl -lpthread" -+ md5prog=md5sum -+ ;; - esac - - AC_SUBST(HOST_LIBS) -diff -r e9b9346cfabf -r b8f3463f19b5 doc/man/createPYMB.1 ---- a/doc/man/createPYMB.1 Fri Dec 17 14:06:14 2010 +0800 -+++ b/doc/man/createPYMB.1 Wed Apr 27 13:36:00 2011 +0800 -@@ -27,10 +27,10 @@ - display help and exit - .TP - \fBPinyin File\fR --Pinyin File is a file with pinyin and one character per line, seperated with space. One available file is in the source of fcitx, named \fIgbkpy.org\fR. -+Pinyin File is a file with pinyin and one character per line, separated with space. One available file is in the source of fcitx, named \fIgbkpy.org\fR. - .TP - \fBPhrase File\fR --Phrase File is a file with full pinyin seperated with ' and the corresponding phrase. The default phrase file of fcitx can be downloaded at http://fcitx.googlecode.com/files/pinyin.tar.gz. -+Phrase File is a file with full pinyin separated with ' and the corresponding phrase. The default phrase file of fcitx can be downloaded at http://fcitx.googlecode.com/files/pinyin.tar.gz. - .TP - \fBPinyin MB File\fR - Pinyin MB File is the binary format of Pinyin File. -diff -r e9b9346cfabf -r b8f3463f19b5 src/im/special/vk.c ---- a/src/im/special/vk.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/im/special/vk.c Wed Apr 27 13:36:00 2011 +0800 -@@ -271,7 +271,7 @@ - return True; - } - else if (x >= 99 && x < 270) //空格 -- strcpy (strKey, "\xa1\xa1"); -+ strcpy (strKey, " "); - else if (x >= 312 && x <= 350) { //ESC - SwitchVK (); - pstr = (char *) NULL; -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/AboutWindow.c ---- a/src/ui/AboutWindow.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/AboutWindow.c Wed Apr 27 13:36:00 2011 +0800 -@@ -41,7 +41,7 @@ - char strTitle[100]; - - AboutWindow aboutWindow; --extern Atom killAtom, windowTypeAtom, typeDialogAtom; -+extern Atom killAtom; - static void InitAboutWindowProperty (void); - - Bool CreateAboutWindow (void) -@@ -74,18 +74,9 @@ - { - XSetTransientForHint (dpy, aboutWindow.window, DefaultRootWindow (dpy)); - -- XChangeProperty (dpy, aboutWindow.window, windowTypeAtom, XA_ATOM, 32, PropModeReplace, (void *) &typeDialogAtom, 1); -+ SetWindowProperty(dpy, aboutWindow.window, FCITX_WINDOW_DIALOG, AboutCaption); - - XSetWMProtocols (dpy, aboutWindow.window, &killAtom, 1); -- -- char *p; -- -- p = AboutCaption; -- -- XTextProperty tp; -- Xutf8TextListToTextProperty(dpy, &p, 1, XUTF8StringStyle, &tp); -- XSetWMName (dpy, aboutWindow.window, &tp); -- XFree(tp.value); - } - - void DisplayAboutWindow (void) -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/InputWindow.c ---- a/src/ui/InputWindow.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/InputWindow.c Wed Apr 27 13:36:00 2011 +0800 -@@ -77,7 +77,6 @@ - { - XSetWindowAttributes attrib; - unsigned long attribmask; -- XTextProperty tp; - char strWindowName[]="Fcitx Input Window"; - int depth; - Colormap cmap; -@@ -127,12 +126,7 @@ - LoadInputMessage(); - XSelectInput (dpy, inputWindow.window, ButtonPressMask | ButtonReleaseMask | PointerMotionMask | ExposureMask); - -- /* Set the name of the window */ -- tp.value = (void *)strWindowName; -- tp.encoding = XA_STRING; -- tp.format = 16; -- tp.nitems = strlen(strWindowName); -- XSetWMName (dpy, inputWindow.window, &tp); -+ SetWindowProperty(dpy, inputWindow.window, FCITX_WINDOW_DOCK, strWindowName); - - return True; - } -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/MainWindow.c ---- a/src/ui/MainWindow.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/MainWindow.c Wed Apr 27 13:36:00 2011 +0800 -@@ -118,13 +118,7 @@ - XSelectInput (dpy, mainWindow.window, ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | LeaveWindowMask); - - -- XTextProperty tp; -- /* Set the name of the window */ -- tp.value = (void *)strWindowName; -- tp.encoding = XA_STRING; -- tp.format = 16; -- tp.nitems = strlen(strWindowName); -- XSetWMName (dpy, mainWindow.window, &tp); -+ SetWindowProperty(dpy, mainWindow.window, FCITX_WINDOW_DOCK, strWindowName); - - return True; - } -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/MessageWindow.c ---- a/src/ui/MessageWindow.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/MessageWindow.c Wed Apr 27 13:36:00 2011 +0800 -@@ -33,7 +33,7 @@ - - extern Display *dpy; - extern int iScreen; --extern Atom killAtom, windowTypeAtom, typeDialogAtom; -+extern Atom killAtom; - - MessageWindow messageWindow; - -@@ -67,7 +67,7 @@ - { - XSetTransientForHint (dpy, messageWindow.window, DefaultRootWindow (dpy)); - -- XChangeProperty (dpy, messageWindow.window, windowTypeAtom, XA_ATOM, 32, PropModeReplace, (void *) &typeDialogAtom, 1); -+ SetWindowProperty(dpy, messageWindow.window, FCITX_WINDOW_DIALOG, "Fcitx - Message"); - - XSetWMProtocols(dpy, messageWindow.window, &killAtom, 1); - } -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/TrayWindow.c ---- a/src/ui/TrayWindow.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/TrayWindow.c Wed Apr 27 13:36:00 2011 +0800 -@@ -43,7 +43,6 @@ - extern int iScreen; - - Bool CreateTrayWindow() { -- XTextProperty tp; - char strWindowName[]="Fcitx Tray Window"; - if ( !fc.bUseTrayIcon ) - return False; -@@ -80,13 +79,6 @@ - size_hints.base_height = tray.size; - XSetWMNormalHints(dpy, tray.window, &size_hints); - -- //Set the name of the window -- tp.value = (void *)strWindowName; -- tp.encoding = XA_STRING; -- tp.format = 16; -- tp.nitems = strlen(strWindowName); -- XSetWMName (dpy, tray.window, &tp); -- - if (vi && vi->visual) - tray.cs = cairo_xlib_surface_create(dpy, tray.window, tray.visual.visual, 200, 200); - else -@@ -98,6 +90,8 @@ - XSelectInput (dpy, tray.window, ExposureMask | KeyPressMask | \ - ButtonPressMask | ButtonReleaseMask | StructureNotifyMask \ - | EnterWindowMask | PointerMotionMask | LeaveWindowMask | VisibilityChangeMask); -+ -+ SetWindowProperty(dpy, tray.window, FCITX_WINDOW_DOCK, strWindowName); - return True; - } - -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/skin.c ---- a/src/ui/skin.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/skin.c Wed Apr 27 13:36:00 2011 +0800 -@@ -600,9 +600,6 @@ - void LoadInputMessage() - { - int i = 0; -- int fontSize; -- -- fontSize=sc.skinFont.fontSize; - - ConfigColor cursorColor = sc.skinInputBar.cursorColor; - //输入条背景图画笔 -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/ui.c ---- a/src/ui/ui.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/ui.c Wed Apr 27 13:36:00 2011 +0800 -@@ -25,6 +25,7 @@ - - #include - #include -+#include - - #include - #include -@@ -72,7 +73,9 @@ - Atom windowTypeAtom; - Atom typeMenuAtom; - Atom typeDialogAtom; -+Atom typeDockAtom; - Atom compManagerAtom; -+Atom pidAtom; - Window compManager; - - // added by yunfan -@@ -94,9 +97,45 @@ - windowTypeAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE", False); - typeMenuAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_MENU", False); - typeDialogAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False); -+ typeDockAtom = XInternAtom (dpy, "_NET_WM_WINDOW_TYPE_DOCK", False); -+ pidAtom = XInternAtom(dpy, "_NET_WM_PID", False); - return True; - } - -+void SetWindowProperty(Display* dpy, Window window, FcitxXWindowType type, char *windowTitle) -+{ -+ Atom* wintype = NULL; -+ switch(type) -+ { -+ case FCITX_WINDOW_DIALOG: -+ wintype = &typeDialogAtom; -+ break; -+ case FCITX_WINDOW_DOCK: -+ wintype = &typeDockAtom; -+ break; -+ case FCITX_WINDOW_MENU: -+ wintype = &typeMenuAtom; -+ break; -+ default: -+ wintype = NULL; -+ break; -+ } -+ if (wintype) -+ XChangeProperty (dpy, window, windowTypeAtom, XA_ATOM, 32, PropModeReplace, (void *) wintype, 1); -+ -+ pid_t pid = getpid(); -+ XChangeProperty(dpy, window, pidAtom, XA_CARDINAL, 32, -+ PropModeReplace, (unsigned char *)&pid, 1); -+ -+ if (windowTitle) -+ { -+ XTextProperty tp; -+ Xutf8TextListToTextProperty(dpy, &windowTitle, 1, XUTF8StringStyle, &tp); -+ XSetWMName (dpy, window, &tp); -+ XFree(tp.value); -+ } -+} -+ - /* - * 有关界面的消息都在这里处理 - * 有关tray重画的问题,此处的解决方案似乎很dirt -@@ -985,6 +1024,7 @@ - pango_font_description_set_family(desc, font); - return desc; - } -+#endif - - Visual * FindARGBVisual (Display *dpy, int scr) - { -@@ -1018,6 +1058,3 @@ - XFree (xvi); - return visual; - } -- -- --#endif -diff -r e9b9346cfabf -r b8f3463f19b5 src/ui/ui.h ---- a/src/ui/ui.h Fri Dec 17 14:06:14 2010 +0800 -+++ b/src/ui/ui.h Wed Apr 27 13:36:00 2011 +0800 -@@ -30,7 +30,15 @@ - #include "core/fcitx.h" - #include "fcitx-config/fcitx-config.h" - -+typedef enum FcitxXWindowType { -+ FCITX_WINDOW_UNKNOWN, -+ FCITX_WINDOW_DOCK, -+ FCITX_WINDOW_MENU, -+ FCITX_WINDOW_DIALOG -+} FcitxXWindowType; -+ - Bool InitX (void); -+void SetWindowProperty(Display* dpy, Window window, FcitxXWindowType type, char *windowTitle); - void MyXEventHandler (XEvent * event); - - void OutputString (cairo_t* c, const char *str, const char *font, int fontSize, int x, int y, ConfigColor* color); -diff -r e9b9346cfabf -r b8f3463f19b5 tools/txt2mb.c ---- a/tools/txt2mb.c Fri Dec 17 14:06:14 2010 +0800 -+++ b/tools/txt2mb.c Wed Apr 27 13:36:00 2011 +0800 -@@ -357,20 +357,20 @@ - continue; - } - -- bPY = False; -+ bPY = False; -+ pstr = strCode; - if (strCode[0] == cPinyinKey) { -- size_t length = strlen(strCode); -- memmove (strCode, strCode + 1, length); -+ pstr ++; - bPY = True; - } - - //查找是否重复 - temp = current; - if (temp != head) { -- if (strcmp (temp->strCode, strCode) >= 0) { -- while (temp != head && strcmp (temp->strCode, strCode) >= 0) { -- if (!strcmp (temp->strHZ, strHZ) && !strcmp (temp->strCode, strCode)) { -- printf ("Delete: %s %s\n", strCode, strHZ); -+ if (strcmp (temp->strCode, pstr) >= 0) { -+ while (temp != head && strcmp (temp->strCode, pstr) >= 0) { -+ if (!strcmp (temp->strHZ, strHZ) && !strcmp (temp->strCode, pstr)) { -+ printf ("Delete: %s %s\n", pstr, strHZ); - goto _next; - } - temp = temp->prev; -@@ -379,13 +379,13 @@ - if (temp == head) - temp = temp->next; - -- while (temp != head && strcmp (temp->strCode, strCode) <= 0) -+ while (temp != head && strcmp (temp->strCode, pstr) <= 0) - temp = temp->next; - } - else { -- while (temp != head && strcmp (temp->strCode, strCode) <= 0) { -- if (!strcmp (temp->strHZ, strHZ) && !strcmp (temp->strCode, strCode)) { -- printf ("Delete: %s %s\n", strCode, strHZ); -+ while (temp != head && strcmp (temp->strCode, pstr) <= 0) { -+ if (!strcmp (temp->strHZ, strHZ) && !strcmp (temp->strCode, pstr)) { -+ printf ("Delete: %s %s\n", pstr, strHZ); - goto _next; - } - temp = temp->next; -@@ -397,7 +397,7 @@ - newRec = (RECORD *) malloc (sizeof (RECORD)); - newRec->strCode = (char *) malloc (sizeof (char) * (iPYCodeLength + 1)); - newRec->strHZ = (char *) malloc (sizeof (char) * strlen (strHZ) + 1); -- strcpy (newRec->strCode, strCode); -+ strcpy (newRec->strCode, pstr); - strcpy (newRec->strHZ, strHZ); - newRec->bPinyin = bPY; - newRec->iHit = 0; diff --git a/sources b/sources index d3ca6de..96daa1a 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ 844f6a382ca970d6c3343e12148be641 fcitx-4.0.1_all.tar.gz +f2dc0a64567207fa6be686faf0ccab66 fcitx-4.1.0_all.tar.bz2