Commit e40053638e23d282f66a87ad9d8d1a72884114dd

Authored by Perry Werneck
1 parent 8c622e34
Exists in master and in 1 other branch develop

Fixing PF settings.

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
... ... @@ -156,6 +156,8 @@
156 156 ((V3270PFKeyAccelerator *) acc)->keycode = (unsigned short) pfkey;
157 157 terminal->accelerators = g_slist_prepend(terminal->accelerators,acc);
158 158  
  159 + debug("****[%s]***",v3270_accelerator_get_name(accel));
  160 +
159 161 }
160 162 else
161 163 {
... ...