我最近常常用 notecase 來記事,因為它跨平台,所以搭配 Dropbox 可以讓我的文件在 Linux / Windows 共享。
不過有個問題一直困擾我,那就是在 Notecase 裡面不小心按下 ESC 鍵時,會將視窗最小化,這對我來說非常不方便,因為我打字時,常常習慣用 ESC 來消掉自己打錯的字,所以我常常不小心把視窗最小化,然後又得重新開啟,而且很慘的是,這個功能是寫死在程式裡面的,並不能透過 Notecase 本身的 Configure ShortCut 這個功能來修改鍵盤快捷鍵。
因為這幾天頻頻發生不小心把視窗最小化的狀況,實在受不了了。只好去 notecase 的官網找這隻程式的原始碼來下載來自己改,以下是修改方法:
下載最新版本的 notecase-1.9.8_src.zip 。
先在 ./src/lib/IniFile.cpp 的前面加上 #include
修改 ./src/MainWnd.cpp 裡面第 2126 行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
gint dlg_keyboard_handler(GtkWidget *widget, GdkEventKey *event, gpointer data) { - //Esc press in the main window minimizes the application // 刪掉這一行 - if( event->keyval == GDK_Escape ) // 刪掉這一行 + // Ctrl + Esc press in the main window minimizes the application // 加上這一行 + if( event->keyval == GDK_Escape && (event->state & GDK_CONTROL_MASK)) // 加上這一行 { GtkWidget *widget1 = gtk_window_get_focus(GTK_WINDOW(window1)); if( widget1 != g_text.m_pWidget && widget1 != g_tree.m_pWidget) return FALSE; // skip this, we are in the label editing mode gtk_window_iconify(GTK_WINDOW(widget)); return TRUE; //eat event (handled here) } return FALSE; } |
改完之後,在視窗內按下 ESC 就不會將視窗本身最小化了,而是改用 CTRL + ESC 來把視窗最小化。
如果在 Ubuntu 編譯的話,必須先確定裝有下列套件:
apt-get install make g++ libgtk2.0-dev libgnomevfs2-dev
弄好之後在 notecase 目錄下直接 make 即可 (在 notecase/bin/ 下面會編出來可用的執行檔),如果直接下 make install 則會裝到 /usr/bin 裡面去。