Browse Source

MacOS: ~ and ^ keys are now handled correctly in search entry on selection dialogs

merge-requests/365/head
eidheim 9 years ago
parent
commit
70f2b3c6dc
  1. 14
      src/selection_dialog.cc

14
src/selection_dialog.cc

@ -274,7 +274,16 @@ bool SelectionDialog::on_key_press(GdkEventKey* key) {
} }
else if(show_search_entry) { else if(show_search_entry) {
#ifdef __APPLE__ //OS X bug most likely: Gtk::Entry will not work if window is of type POPUP #ifdef __APPLE__ //OS X bug most likely: Gtk::Entry will not work if window is of type POPUP
if(key->is_modifier) int search_entry_length=search_entry.get_text_length();
if(key->keyval==GDK_KEY_dead_tilde) {
search_entry.insert_text("~", 1, search_entry_length);
return true;
}
else if(key->keyval==GDK_KEY_dead_circumflex) {
search_entry.insert_text("^", 1, search_entry_length);
return true;
}
else if(key->is_modifier)
return true; return true;
else if(key->keyval==GDK_KEY_BackSpace) { else if(key->keyval==GDK_KEY_BackSpace) {
auto length=search_entry.get_text_length(); auto length=search_entry.get_text_length();
@ -285,9 +294,8 @@ bool SelectionDialog::on_key_press(GdkEventKey* key) {
else { else {
gunichar unicode=gdk_keyval_to_unicode(key->keyval); gunichar unicode=gdk_keyval_to_unicode(key->keyval);
if(unicode>=32 && unicode!=126) { if(unicode>=32 && unicode!=126) {
int length=search_entry.get_text_length();
auto ustr=Glib::ustring(1, unicode); auto ustr=Glib::ustring(1, unicode);
search_entry.insert_text(ustr, ustr.bytes(), length); search_entry.insert_text(ustr, ustr.bytes(), search_entry_length);
return true; return true;
} }
} }

Loading…
Cancel
Save