diff --git a/src/inkscape.cpp b/src/inkscape.cpp
index c167be493c0900a05a12b9560472da180c80b6a8..7e46efce6eb672e94fc91a195ff82bc2e9a5dc47 100644 (file)
--- a/src/inkscape.cpp
+++ b/src/inkscape.cpp
gboolean dialogs_toggle;
gboolean use_gui; // may want to consider a virtual function
// for overriding things like the warning dlg's
+ guint mapalt;
};
struct Inkscape::ApplicationClass {
inkscape->desktops = NULL;
inkscape->dialogs_toggle = TRUE;
-}
+ inkscape->mapalt=GDK_MOD1_MASK;
+}
static void
inkscape_dispose (GObject *object)
g_object_unref (G_OBJECT (inkscape));
}
+/* returns the mask of the keyboard modifier to map to Alt, zero if no mapping */
+/* Needs to be a guint because gdktypes.h does not define a 'no-modifier' value */
+guint
+inkscape_mapalt() {
+ return inkscape->mapalt;
+}
+
+/* Sets the keyboard modifer to map to Alt. Zero switches off mapping, as does '1', which is the default */
+void inkscape_mapalt(guint maskvalue)
+{
+ if(maskvalue<2 || maskvalue> 5 ){ /* MOD5 is the highest defined in gdktypes.h */
+ inkscape->mapalt=0;
+ }else{
+ inkscape->mapalt=(GDK_MOD1_MASK << (maskvalue-1));
+ }
+}
static void
inkscape_activate_desktop_private (Inkscape::Application *inkscape, SPDesktop *desktop)
Inkscape::UI::Dialogs::DebugDialog::getInstance()->captureLogMessages();
}
+ /* Check for global remapping of Alt key */
+ if(use_gui)
+ {
+ inkscape_mapalt(guint(prefs_get_int_attribute("options.mapalt","value",0)));
+ }
+
/* Initialize the extensions */
Inkscape::Extension::init();