Xournal 단축키 변경May 14, 2008
타블렛 노트북(후지쯔 P1610)을 쓰고 있는 터라, 필기장 프로그램인 Xournal 을 애용하고 있다.
윈도우의 OneNote 정도의 기능까지는 아니더라도, 타블렛XP 내장 필기장보다는 훨씬 강력하다.
무엇보다도 PDF에 끄적일 수 있는 게 강점이랄까. 윈도우에서는 Acrobat Pro나 PDF annotator 같은 상용 툴로 해야 하니까.
하나 불만인 점은, 단축키 바인딩이 컨트롤+쉬프트 조합으로 되어 있어서 누르기 불편하다는 거다.
텍스트 툴과 펜 툴을 자주 오가면서 쓰는 터라 좀 오래 쓰다 보면 새끼손가락에 쥐가 난다.
그래서 수업은 안듣고 소스를 열어봤다. -_-;
단순히 단축키만 바꿔놨더만(P, E, H, T 로) 텍스트 입력시에도 단축키를 인식해 버리는 바람에
좀 무식하게 accel_group 을 전역으로 빼버린 다음, 텍스트 입력을 시작할 때 단축키를 전부 꺼버리고
입력을 종료할 때(ESC키를 눌러도 입력이 종료되도록 변경함) 단축키를 켜게 해버렸다. -_-;;
CODE:
-
diff -urN xournal-0.4.1.orig/src/main.c xournal-0.4.1/src/main.c
-
--- xournal-0.4.1.orig/src/main.c 2007-09-16 10:17:27.000000000 +0900
-
+++ xournal-0.4.1/src/main.c 2008-05-15 13:16:08.000000000 +0900
-
@@ -14,6 +14,7 @@
-
#include "xo-file.h"
-
-
GtkWidget *winMain;
-
+GtkAccelGroup *accel_group;
-
GnomeCanvas *canvas;
-
-
struct Journal journal; // the journal
-
diff -urN xournal-0.4.1.orig/src/xo-callbacks.c xournal-0.4.1/src/xo-callbacks.c
-
--- xournal-0.4.1.orig/src/xo-callbacks.c 2007-09-16 10:17:27.000000000 +0900
-
+++ xournal-0.4.1/src/xo-callbacks.c 2008-05-15 13:16:08.000000000 +0900
-
@@ -2505,6 +2505,9 @@
-
GdkEventKey *event,
-
gpointer user_data)
-
{
-
+ if (event->keyval == 65307) {
-
+ end_text();
-
+ }
-
return FALSE;
-
}
-
-
diff -urN xournal-0.4.1.orig/src/xo-interface.c xournal-0.4.1/src/xo-interface.c
-
--- xournal-0.4.1.orig/src/xo-interface.c 2007-09-16 10:17:27.000000000 +0900
-
+++ xournal-0.4.1/src/xo-interface.c 2008-05-15 13:16:43.000000000 +0900
-
@@ -334,7 +334,7 @@
-
GtkWidget *labelLayer;
-
GtkWidget *comboLayer;
-
GtkWidget *statusbar;
-
- GtkAccelGroup *accel_group;
-
+ extern GtkAccelGroup *accel_group;
-
GtkTooltips *tooltips;
-
-
tooltips = gtk_tooltips_new ();
-
@@ -555,7 +555,7 @@
-
gtk_widget_show (viewZoomIn);
-
gtk_container_add (GTK_CONTAINER (menuViewZoom_menu), viewZoomIn);
-
gtk_widget_add_accelerator (viewZoomIn, "activate", accel_group,
-
- GDK_plus, (GdkModifierType) GDK_CONTROL_MASK,
-
+ GDK_equal, (GdkModifierType) GDK_CONTROL_MASK,
-
GTK_ACCEL_VISIBLE);
-
-
viewZoomOut = gtk_image_menu_item_new_from_stock ("gtk-zoom-out", accel_group);
-
@@ -576,7 +576,7 @@
-
gtk_widget_show (viewPageWidth);
-
gtk_container_add (GTK_CONTAINER (menuViewZoom_menu), viewPageWidth);
-
gtk_widget_add_accelerator (viewPageWidth, "activate", accel_group,
-
- GDK_equal, (GdkModifierType) GDK_CONTROL_MASK,
-
+ GDK_plus, (GdkModifierType) GDK_CONTROL_MASK,
-
GTK_ACCEL_VISIBLE);
-
-
image625 = gtk_image_new_from_stock ("gtk-zoom-fit", GTK_ICON_SIZE_MENU);
-
@@ -842,7 +842,7 @@
-
gtk_widget_show (toolsPen);
-
gtk_container_add (GTK_CONTAINER (menuTools_menu), toolsPen);
-
gtk_widget_add_accelerator (toolsPen, "activate", accel_group,
-
- GDK_P, (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-
+ GDK_P, (GdkModifierType) NULL,
-
GTK_ACCEL_VISIBLE);
-
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (toolsPen), TRUE);
-
-
@@ -851,7 +851,7 @@
-
gtk_widget_show (toolsEraser);
-
gtk_container_add (GTK_CONTAINER (menuTools_menu), toolsEraser);
-
gtk_widget_add_accelerator (toolsEraser, "activate", accel_group,
-
- GDK_E, (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-
+ GDK_E, (GdkModifierType) NULL,
-
GTK_ACCEL_VISIBLE);
-
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (toolsEraser), TRUE);
-
-
@@ -860,7 +860,7 @@
-
gtk_widget_show (toolsHighlighter);
-
gtk_container_add (GTK_CONTAINER (menuTools_menu), toolsHighlighter);
-
gtk_widget_add_accelerator (toolsHighlighter, "activate", accel_group,
-
- GDK_H, (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-
+ GDK_H, (GdkModifierType) NULL,
-
GTK_ACCEL_VISIBLE);
-
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (toolsHighlighter), TRUE);
-
-
@@ -869,7 +869,7 @@
-
gtk_widget_show (toolsText);
-
gtk_container_add (GTK_CONTAINER (menuTools_menu), toolsText);
-
gtk_widget_add_accelerator (toolsText, "activate", accel_group,
-
- GDK_T, (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-
+ GDK_T, (GdkModifierType) NULL,
-
GTK_ACCEL_VISIBLE);
-
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (toolsText), TRUE);
-
-
@@ -892,7 +892,7 @@
-
gtk_widget_show (toolsSelectRectangle);
-
gtk_container_add (GTK_CONTAINER (menuTools_menu), toolsSelectRectangle);
-
gtk_widget_add_accelerator (toolsSelectRectangle, "activate", accel_group,
-
- GDK_R, (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-
+ GDK_R, (GdkModifierType) NULL,
-
GTK_ACCEL_VISIBLE);
-
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (toolsSelectRectangle), TRUE);
-
-
@@ -901,7 +901,7 @@
-
gtk_widget_show (toolsVerticalSpace);
-
gtk_container_add (GTK_CONTAINER (menuTools_menu), toolsVerticalSpace);
-
gtk_widget_add_accelerator (toolsVerticalSpace, "activate", accel_group,
-
- GDK_V, (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-
+ GDK_V, (GdkModifierType) NULL,
-
GTK_ACCEL_VISIBLE);
-
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (toolsVerticalSpace), TRUE);
-
-
@@ -910,7 +910,7 @@
-
gtk_widget_show (toolsHand);
-
gtk_container_add (GTK_CONTAINER (menuTools_menu), toolsHand);
-
gtk_widget_add_accelerator (toolsHand, "activate", accel_group,
-
- GDK_A, (GdkModifierType) GDK_CONTROL_MASK | GDK_SHIFT_MASK,
-
+ GDK_A, (GdkModifierType) NULL,
-
GTK_ACCEL_VISIBLE);
-
-
separator16 = gtk_separator_menu_item_new ();
-
diff -urN xournal-0.4.1.orig/src/xo-paint.c xournal-0.4.1/src/xo-paint.c
-
--- xournal-0.4.1.orig/src/xo-paint.c 2007-09-16 10:17:27.000000000 +0900
-
+++ xournal-0.4.1/src/xo-paint.c 2008-05-15 13:16:08.000000000 +0900
-
@@ -989,6 +989,9 @@
-
GnomeCanvasItem *canvas_item;
-
PangoFontDescription *font_desc;
-
GdkColor color;
-
+ extern GtkWidget *winMain;
-
+ extern GtkAccelGroup *accel_group;
-
+ gtk_window_remove_accel_group (GTK_WINDOW (winMain), accel_group);
-
-
get_pointer_coords(event, pt);
-
ui.cur_item_type = ITEM_TEXT;
-
@@ -1053,6 +1056,9 @@
-
gchar *new_text;
-
struct UndoErasureData *erasure;
-
GnomeCanvasItem *tmpitem;
-
+ extern GtkWidget *winMain;
-
+ extern GtkAccelGroup *accel_group;
-
+ gtk_window_add_accel_group (GTK_WINDOW (winMain), accel_group);
-
-
if (ui.cur_item_type!=ITEM_TEXT) return; // nothing for us to do!
덤으로 확대 단축키도 변경. 이제 좀 편하구먼.
패키지는 xournal_041-0ubuntu1_i386.deb.
덧붙임.
패키지 버전을 hold 할 때는 echo "packagename hold" | dpkg --set-selections
cypher의 생각
수업은 안듣고 뻘짓만 하게 된다…