ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/keyboard.C
(Generate patch)

Comparing rxvt-unicode/src/keyboard.C (file contents):
Revision 1.70 by sf-exg, Fri May 23 22:25:34 2014 UTC vs.
Revision 1.71 by sf-exg, Thu Jan 15 14:30:04 2015 UTC

89 delete keymap [i]; 89 delete keymap [i];
90 } 90 }
91} 91}
92 92
93void 93void
94keyboard_manager::unregister_action (KeySym keysym, unsigned int state)
95{
96 for (unsigned int i = 0; i < keymap.size (); ++i)
97 if (keymap [i]->keysym == keysym
98 && keymap [i]->state == state)
99 {
100 free (keymap [i]->str);
101 delete keymap [i];
102
103 if (i < keymap.size () - 1)
104 keymap [i] = keymap [keymap.size () - 1];
105 keymap.pop_back ();
106
107 break;
108 }
109}
110
111void
94keyboard_manager::register_action (KeySym keysym, unsigned int state, const wchar_t *ws) 112keyboard_manager::register_action (KeySym keysym, unsigned int state, const wchar_t *ws)
95{ 113{
96 char *action = rxvt_wcstoutf8 (ws); 114 char *action = rxvt_wcstoutf8 (ws);
97 115
98 keysym_t *key = new keysym_t; 116 keysym_t *key = new keysym_t;
104 122
105 if (strncmp (action, "builtin:", 8) == 0) 123 if (strncmp (action, "builtin:", 8) == 0)
106 key->type = keysym_t::BUILTIN; 124 key->type = keysym_t::BUILTIN;
107 else if (strncmp (action, "builtin-string:", 15) == 0) 125 else if (strncmp (action, "builtin-string:", 15) == 0)
108 key->type = keysym_t::BUILTIN_STRING; 126 key->type = keysym_t::BUILTIN_STRING;
127
128 unregister_action (keysym, state);
109 129
110 if (keymap.size () == keymap.capacity ()) 130 if (keymap.size () == keymap.capacity ())
111 keymap.reserve (keymap.size () * 2); 131 keymap.reserve (keymap.size () * 2);
112 132
113 keymap.push_back (key); 133 keymap.push_back (key);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines