[分享] Gtk2+ based 應用程式的 OverTheSpot 修正檔

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

文章訪客 » 週五 4月 01, 2005 4:58 pm

Tetralet 寫:
他是什麼意思呢?看不太懂...

Owen Taylor 可能不知道很多中文輸入法需要 menu window,他以為只需要 on-the-spot drawing 就可以了。對中文輸入法來說,即使是 on-the-spot 還是很多輸入法還是需要 menu。
XIM 對 gcin 來說已經不重要了,因為可以用自己的 IM module。
訪客
 

文章caleb » 週五 4月 01, 2005 5:09 pm

他說 XIM 的 OverTheSpot 字型是由 XIM 端控制的, 不受 GTK+-2 支援...

而 OverTheSpot 必需建立在
"應用軟體與 XIM 使用的字型可以 match", 而這是 GTK+-2 做不到的...

譬如說, 用 xcin 在 firefox 下使用 OverTheSpot
因為 xcin 可以自選字型及顏色, 所以可能造成 xcin 與 firefly 顯示不同...

他這樣說沒錯...如果 XIM 和應用軟體個別使用的字型裡有 glyph 上的不同,
可能會讓使用者認為是 bug...

例如"禿笻礡敁", 這些字在 firefly 老大的字和 Arne 老大的字裡顯示不同...
如果 XIM 用 firefly newsung, 軟體用 uming, 就會造成輸入與顯示不同...
(雖然是同一編碼)

所以他認為 GTK+-2 應該用 OnTheSpot, 這樣顯示可以完全由 GTK+-2 來做

不過我們還是應該要說服他, 這對 XIM user 來說是絕少遇到的困擾...
那個 patch 還是應該接受才是...
caleb
可愛的小學生
可愛的小學生
 
文章: 15
註冊時間: 週一 3月 21, 2005 4:46 pm

文章Tetralet » 週五 4月 01, 2005 6:13 pm

Anonymous 寫:XIM 對 gcin 來說已經不重要了,因為可以用自己的 IM module。

是的。

不過即然能修正這個問題,
順便加點力推一下也是無妨,
因為並不是所有輸入法都有自己的 IM Module 呀!

並且,如果 gtk2 能夠接納這個 Patch,
對於另一個 Mozilla 的 Patch 應該會更容易被開發者接受吧?
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章Tetralet » 週五 4月 01, 2005 6:17 pm

caleb 寫:他說 XIM 的 OverTheSpot 字型是由 XIM 端控制的, 不受 GTK+-2 支援...

而 OverTheSpot 必需建立在
"應用軟體與 XIM 使用的字型可以 match", 而這是 GTK+-2 做不到的...

譬如說, 用 xcin 在 firefox 下使用 OverTheSpot
因為 xcin 可以自選字型及顏色, 所以可能造成 xcin 與 firefly 顯示不同...

他這樣說沒錯...如果 XIM 和應用軟體個別使用的字型裡有 glyph 上的不同,
可能會讓使用者認為是 bug...

例如"禿笻礡敁", 這些字在 firefly 老大的字和 Arne 老大的字裡顯示不同...
如果 XIM 用 firefly newsung, 軟體用 uming, 就會造成輸入與顯示不同...
(雖然是同一編碼)

所以他認為 GTK+-2 應該用 OnTheSpot, 這樣顯示可以完全由 GTK+-2 來做

不過我們還是應該要說服他, 這對 XIM user 來說是絕少遇到的困擾...
那個 patch 還是應該接受才是...

我了解他的說法了,
他真的認為,出現在應用程式和輸入法裡的字,
字型和顏色上的不同真的會使得使用者無所適從嗎?

如果真有無法接受這種狀況的人,
大可回去使用 OnTheSpot 模式呀!

正在構思該如何回覆他...

請您一起加入那個討論串,如何?
我怕我那破破的英文弄到最後會變成雞同鴨講...
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章liuspider » 週六 4月 02, 2005 10:05 am

可以理解了他的回答

我觉得最重要的是 mozilla/firefox 的 那个补丁

如果你使用 scim immodule 的话,就不需要给 gtk+ 打这个 patch 了
生于忧患,死于安乐
SCIM Project: http://www.scim-im.org
liuspider
可愛的小學生
可愛的小學生
 
文章: 31
註冊時間: 週六 4月 02, 2005 10:02 am

Re: [分享] Gtk2+ based 應用程式的 OverTheSpot 修正檔

文章訪客 » 週六 4月 02, 2005 11:04 am

可以問個笨問題嗎?
就是.zip的檔案要怎麼開啊:ooops: :ooops:

Tetralet 寫:Gtk2+ based 的應用程式,如:Mozilla 系列、GIMP、GAIM...,
以及超重量級的 OpenOffice.org 等等,
雖然都可以說是紅遍半天邊,
但是它們都有一個共同的痛 - 它們都不支援 OverTheSpot 這種輸入模式。

感謝 eliu(Vampire at Wicked Empire)兄的努力,
現在這個問題已經可以說完全解決了。
請參考:

  [分享] GTK2 over-the-spot

  mozilla GTK2 現在也可以用 over-the-spot 了!

如果您有興趣,
請至以下位址下載相關的 Patch 檔及已編譯完成的 Binary 檔:

  OverTheSpot.zip

檔案內容說明:
代碼: 選擇全部
gtkimcontextxim.c.patch
 - libgtk2.0-0 套件的 Patch 檔。可讓大部份的 gtk2+ based 的程式支援 OverTheSpot 模式。

firefox.overthesopt.diff
 - firefox 和 thunderbird 通用的 Patch 檔。

mozilla.overthesopt-diff
 - mozilla 的 Patch 檔。和上面那個檔案大同小異。

libgtk2.0-0_2.4.14-2_im-xim.so
 - libgtk2.0-0 套件 2.4.14-2 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so 即可。

mozilla-browser_1.7.3-5_libwidget_gtk2.so
 - mozilla-browser 套件 1.7.3-5 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/mozilla/components/libwidget_gtk2.so 即可。

mozilla-firefox_1.0+dfsg.1-1_libwidget_gtk2.so
 - mozilla-firefox 套件 1.0+dfsg.1-1 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/mozilla-firefox/components/libwidget_gtk2.so 即可。

mozilla-thunder_0.9-6_libwidget_gtk2.so
 - mozilla-thunderbird 套件 0.9-6 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/mozilla-thunderbird/components/libwidget_gtk2.so 即可。

您可以利用其中所包含的 Patch 檔案來自行重新編譯各個套件,
或者是偷懶,用已經編譯好的 binary 檔案直接覆蓋掉您原有的檔案。
(舊的檔案請記得做好備份!)

若在使用上出現了任何問題,
您可以復原至舊的備份檔案,
或是利用 apt-get 的 --reinstall 參數,
如:
代碼: 選擇全部
apt-get install --reinstall mozilla-thunderbird

來還原您的系統。

而我在徵得 eliu(Vampire at Wicked Empire)的同意後,
將針對這些 Patch 檔案進行 reportbug,
期待這些 patches 能夠早入進入 Debian 中。
訪客
 

Re: [分享] Gtk2+ based 應用程式的 OverTheSpot 修正檔

文章Tetralet » 週六 4月 02, 2005 2:24 pm

Anonymous 寫:可以問個笨問題嗎?
就是.zip的檔案要怎麼開啊:ooops: :ooops:

請安裝 unzip 套件...


另,最新的修正檔請至這裡下載,
其中包含了:
代碼: 選擇全部
firefox.overthesopt.diff
 - firefox 和 thunderbird 通用的 Patch 檔。

gtkimcontextxim.c.patch
 - libgtk2.0-0 套件的 Patch 檔。可讓大部份的 gtk2+ based 的程式支援 OverTheSpot 模式。

libgtk2.0-0_2.6.2-3_im-xim.so
 - libgtk2.0-0 套件 2.6.2-2 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so 即可。

mozilla-thunder_1.0.2-1_libwidget_gtk2.so
 - mozilla-thunderbird 套件 1.0.2-1 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/mozilla-thunderbird/components/libwidget_gtk2.so 即可。

另外,最新的 Debian 官方 Mozilla 套件已加入了這個 Patch,
所以不用再加以修正了;
而最新的 Debian 官方 Firefox 套件已將所有的檔案合併為 firefox-bin 一個檔案,
所以請自行加上 Patch 後自行編譯,
在此已無法提供修正檔了。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

Re: [分享] Gtk2+ based 應用程式的 OverTheSpot 修正檔

文章訪客 » 週六 4月 02, 2005 9:06 pm

請問我有把第一頁下載的.so檔
複製到您文中所說的位置
可是firefox的輸入法還是固定在左上角
在console開啟gcin還是會隨游標跑來跑去
那麼如果換成這個新的修正檔就可以了嗎?
另...diff和patch檔要怎麼編譯呢
麻煩Tetralet大大囉
謝謝 :-)

Tetralet 寫:
Anonymous 寫:可以問個笨問題嗎?
就是.zip的檔案要怎麼開啊:ooops: :ooops:

請安裝 unzip 套件...


另,最新的修正檔請至這裡下載,
其中包含了:
代碼: 選擇全部
firefox.overthesopt.diff
 - firefox 和 thunderbird 通用的 Patch 檔。

gtkimcontextxim.c.patch
 - libgtk2.0-0 套件的 Patch 檔。可讓大部份的 gtk2+ based 的程式支援 OverTheSpot 模式。

libgtk2.0-0_2.6.2-3_im-xim.so
 - libgtk2.0-0 套件 2.6.2-2 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so 即可。

mozilla-thunder_1.0.2-1_libwidget_gtk2.so
 - mozilla-thunderbird 套件 1.0.2-1 版的修正後 binary 檔。
   請直接蓋過 /usr/lib/mozilla-thunderbird/components/libwidget_gtk2.so 即可。

另外,最新的 Debian 官方 Mozilla 套件已加入了這個 Patch,
所以不用再加以修正了;
而最新的 Debian 官方 Firefox 套件已將所有的檔案合併為 firefox-bin 一個檔案,
所以請自行加上 Patch 後自行編譯,
在此已無法提供修正檔了。
訪客
 

文章訪客 » 週六 4月 02, 2005 9:14 pm

> 在console開啟gcin還是會隨游標跑來跑去
檢查是否有設定 GTK_IM_MODULE=gcin 這個 env var
有些舊的 build 沒有執行 gtk-query-immodules-2.0
訪客
 

文章訪客 » 週六 4月 02, 2005 11:11 pm

Anonymous 寫:> 在console開啟gcin還是會隨游標跑來跑去
檢查是否有設定 GTK_IM_MODULE=gcin 這個 env var
有些舊的 build 沒有執行 gtk-query-immodules-2.0


那麼請問 GTK_IM_MODULE=gcin
要去那裡檢查呢?
訪客
 

Re: [分享] Gtk2+ based 應用程式的 OverTheSpot 修正檔

文章Tetralet » 週五 4月 08, 2005 3:23 pm

Anonymous 寫:請問我有把第一頁下載的.so檔
複製到您文中所說的位置
可是firefox的輸入法還是固定在左上角

請問,您的 firefox 的版本是?
最新版的 firefox 已經不能用這個方式更新了。

Anonymous 寫:另...diff和patch檔要怎麼編譯呢

請用 apt-get source 來下載原始碼,
然後用 patch -Np1 -i PatchFileName.diff 來進行 Patch,
接下來就下達 debian/rule binary 來產生更新後的 deb 檔案...

以上是大略的步驟,
請不妨參考看看!
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章Tetralet » 週五 4月 08, 2005 3:28 pm

Anonymous 寫:那麼請問 GTK_IM_MODULE=gcin
要去那裡檢查呢?

端看您是如何啟動 X Window 的。

一般是寫入 ~/.xinitrc(使用 startx 來啟動 X Window)
或是 ~/.xsession(使用 Display Manager 來啟動 X Window)裡。

當然囉,寫在 ~/.bashrc 裡也可以,
只要應用程式能抓到這個環境變收即可。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章Tetralet » 週五 4月 08, 2005 3:55 pm

另,GLib 2.6.4 己經釋出,
不過(您可以猜到的),那個 OverTheSpot 的 Patch 還是被拒在門外...


一點有趣的小技巧:

那天下載了 Nvu 0.9.0,
想當然的,它對 OverTheSpot 的支援也是有問題,
但個人實在沒力氣再去編譯它,
就偷懶拿 Thunderbird 的 libwidget_gtk2.so 來頂替一下 - 想不到 Nvu 真的也照收不誤,
還真的有 OverTheSpot 的效果出現耶…

果然是 Mozilla 家族成員之一。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章xacid » 週五 4月 08, 2005 4:36 pm

Tetralet 寫:那天下載了 Nvu 0.9.0,
想當然的,它對 OverTheSpot 的支援也是有問題,
但個人實在沒力氣再去編譯它,
就偷懶拿 Thunderbird 的 libwidget_gtk2.so 來頂替一下 - 想不到 Nvu 真的也照收不誤,
還真的有 OverTheSpot 的效果出現耶…


可是我試的結果是根本無法啟動 nvu 0.90 。到這邊照著說明覆蓋原來的檔案:
http://www.csie.nctu.edu.tw/~cp76/linux ... ird-1.0.2/
然後執行就沒回應了,沒有產生任何畫面或訊息就結束。
頭像
xacid
可愛的小學生
可愛的小學生
 
文章: 70
註冊時間: 週日 9月 19, 2004 10:40 am

文章訪客 » 週五 4月 08, 2005 4:50 pm

xacid 寫:
可是我試的結果是根本無法啟動 nvu 0.90 。到這邊照著說明覆蓋原來的檔案:
http://www.csie.nctu.edu.tw/~cp76/linux ... ird-1.0.2/
然後執行就沒回應了,沒有產生任何畫面或訊息就結束。


那是給 Mandrake 用的,在 debian 不見得可以用,主要是因 libstdc++與 g++ 版本的關係。
訪客
 

上一頁下一頁

回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron