29-12-2010, Wednesday-17:36:11
Auf neueren Mac's exestiert keine "Del" oder "Entf." Taste mehr, wie wir sie von Windows kennen. Dafür ist die unter Windows als "Backspace"-Taste bekannte Taste mit DELETE beschriftet.
Ähnlich scheint SDL diese auch als DELETE Taste anzuerkennen. Mit ein wenig Präprozessor Befehlen in der "gui_textinput.cc" lässt sich das Problem jedoch beheben.
Auf den ersten Blick scheint damit alles zu funktionieren:
Ähnlich scheint SDL diese auch als DELETE Taste anzuerkennen. Mit ein wenig Präprozessor Befehlen in der "gui_textinput.cc" lässt sich das Problem jedoch beheben.
Auf den ersten Blick scheint damit alles zu funktionieren:
Code:
case SIM_KEY_DELETE:
// delete
// Knightly : check and remove any selected text first
// Cruzer : any delete key on Mac OS X, backspace key works like DELETE on Mac OS X.
#ifndef __APPLE__
if( !remove_selection() && head_cursor_pos<=len ) {
size_t next_pos = get_next_char(text, head_cursor_pos);
for( size_t pos=head_cursor_pos; pos<len; pos++ ) {
text[pos] = text[pos+(next_pos-head_cursor_pos)];
}
}
break;
#endif
case SIM_KEY_BACKSPACE:
// backspace
// Knightly : check and remove any selected text first
if( !remove_selection() && head_cursor_pos>0 ) {
if ( head_cursor_pos<len ) {
size_t prev_pos = head_cursor_pos;
tail_cursor_pos = head_cursor_pos = get_prev_char(text, head_cursor_pos);
for ( size_t pos=head_cursor_pos; pos<=len-(prev_pos-head_cursor_pos); pos++ ) {
text[pos] = text[pos+(prev_pos-head_cursor_pos)];
}
}
else {
tail_cursor_pos = head_cursor_pos = get_prev_char(text, head_cursor_pos);
text[head_cursor_pos] = 0;
}
}
break;
Ex-Entwickler und Gründer des pak192.comic, Betreiber von Simutrans Hosting