diff options
| author | MenTaLguY <mental@rydia.net> | 2007-08-29 03:24:44 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2007-08-29 03:24:44 +0000 |
| commit | 52d52cfe78edcf3cccfd6ceadef37c955215fc56 (patch) | |
| tree | 01424336851f2052f3a23971d72a26a3f179ddcb /src/main.cpp | |
| parent | Refactor gradient rendering to facilitate future changes, since the simple (diff) | |
| download | inkscape-52d52cfe78edcf3cccfd6ceadef37c955215fc56.tar.gz inkscape-52d52cfe78edcf3cccfd6ceadef37c955215fc56.zip | |
add experimental modifier remapping
(bzr r3606)
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index 87913a801..cc359793a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -620,6 +620,34 @@ int sp_common_main( int argc, char const **argv, GSList **flDest ) return 0; } +static void +snooper(GdkEvent *event, gpointer data) { + if(inkscape_mapalt()) /* returns the map of the keyboard modifier to map to Alt, zero if no mapping */ + { + GdkModifierType mapping=(GdkModifierType)inkscape_mapalt(); + switch (event->type) { + case GDK_MOTION_NOTIFY: + if(event->motion.state & mapping) { + event->motion.state|=GDK_MOD1_MASK; + } + break; + case GDK_BUTTON_PRESS: + if(event->button.state & mapping) { + event->button.state|=GDK_MOD1_MASK; + } + break; + case GDK_KEY_PRESS: + if(event->key.state & mapping) { + event->key.state|=GDK_MOD1_MASK; + } + break; + default: + break; + } + } + gtk_main_do_event (event); +} + int sp_main_gui(int argc, char const **argv) { @@ -631,6 +659,8 @@ sp_main_gui(int argc, char const **argv) inkscape_gtk_stock_init(); + gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL); + Inkscape::Debug::log_display_config(); /* Set default icon */ |
