Commit e40053638e23d282f66a87ad9d8d1a72884114dd
1 parent
8c622e34
Exists in
master
and in
1 other branch
Fixing PF settings.
Showing
3 changed files
with
38 additions
and
10 deletions
Show diff stats
src/dialogs/settings/accelerator.c
... | ... | @@ -554,19 +554,45 @@ static gboolean add_accel(GtkTreeModel *model, GtkTreePath G_GNUC_UNUSED(*path), |
554 | 554 | |
555 | 555 | // Allways create the "main" accelerator to keep the action active. |
556 | 556 | V3270Accelerator * acc = v3270_accelerator_clone(accel); |
557 | - acc->key = keymap[0].key; | |
558 | - acc->mods = keymap[0].mods; | |
559 | - *accelerators = g_slist_prepend(*accelerators,acc); | |
560 | 557 | |
561 | - // The alternative one is created only when set. | |
562 | - if(keymap[1].key) | |
563 | - { | |
564 | - acc = v3270_accelerator_clone(accel); | |
565 | - acc->key = keymap[1].key; | |
566 | - acc->mods = keymap[1].mods; | |
558 | + if(acc->type == V3270_ACCELERATOR_TYPE_PFKEY) { | |
559 | + | |
560 | + if(keymap[0].mods) { | |
561 | + g_warning("PFKey accelerator can't manage modifiers"); | |
562 | + } | |
563 | + | |
564 | + int pfkey = (keymap[0].key - GDK_F1) + 1; | |
565 | + | |
566 | + if(pfkey < 0 || pfkey > 22) { | |
567 | + | |
568 | + g_warning("Invalid pfkey code: %d",pfkey); | |
569 | + | |
570 | + } else { | |
571 | + | |
572 | + ((V3270PFKeyAccelerator *) acc)->keycode = (unsigned short) pfkey; | |
573 | + | |
574 | + } | |
575 | + | |
567 | 576 | *accelerators = g_slist_prepend(*accelerators,acc); |
577 | + | |
578 | + } else { | |
579 | + | |
580 | + acc->key = keymap[0].key; | |
581 | + acc->mods = keymap[0].mods; | |
582 | + *accelerators = g_slist_prepend(*accelerators,acc); | |
583 | + | |
584 | + // The alternative one is created only when set. | |
585 | + if(keymap[1].key) | |
586 | + { | |
587 | + acc = v3270_accelerator_clone(accel); | |
588 | + acc->key = keymap[1].key; | |
589 | + acc->mods = keymap[1].mods; | |
590 | + *accelerators = g_slist_prepend(*accelerators,acc); | |
591 | + } | |
592 | + | |
568 | 593 | } |
569 | 594 | |
595 | + | |
570 | 596 | return FALSE; |
571 | 597 | } |
572 | 598 | ... | ... |
src/terminal/actions/scroll.c
... | ... | @@ -104,7 +104,7 @@ gboolean v3270_scroll_event(GtkWidget *widget, GdkEventScroll *event) |
104 | 104 | const V3270Accelerator * accel = v3270_get_accelerator(widget, fallbacks[ix].keyval, fallbacks[ix].state); |
105 | 105 | if(accel) |
106 | 106 | { |
107 | - debug("Activating fallback mouse action \"%s\"\n",v3270_accelerator_get_name(accel)); | |
107 | + debug("Activating accelerator \"%s\"\n",v3270_accelerator_get_name(accel)); | |
108 | 108 | // lib3270_write_event_trace(terminal->hSession,"Activating fallback mouse action \"%s\"\n",v3270_accelerator_get_name(accel)); |
109 | 109 | v3270_accelerator_activate(accel,widget); |
110 | 110 | return TRUE; | ... | ... |
src/terminal/keyboard/keyfile.c