diff --git a/include/controls.cpp b/include/controls.cpp index 52d952557..142ccceea 100755 --- a/include/controls.cpp +++ b/include/controls.cpp @@ -1324,18 +1324,24 @@ bool TButton_control::event_handler(XI_OBJ* itf, XI_EVENT* xiev) if (xiev->type == XIE_BUTTON) { - if (_last_mouse_button == 0 && xi_move_focus(_obj)) - { - switch (_obj->v.btn->type) + if (_last_mouse_button == 0) + { + if (id() != DLG_CANCEL && id() != DLG_QUIT) + ok = xi_move_focus(_obj) ? TRUE : FALSE; + + if (ok) { - case XIBT_CHECKBOX: - case XIBT_BUTTON_CHECKBOX: - toggle(); - break; - default: - break; + switch (_obj->v.btn->type) + { + case XIBT_CHECKBOX: + case XIBT_BUTTON_CHECKBOX: + toggle(); + break; + default: + break; + } + ok = notify_key(K_SPACE); } - ok = notify_key(K_SPACE); } } else diff --git a/include/maskfld.h b/include/maskfld.h index 48b77ac62..3d99e773d 100755 --- a/include/maskfld.h +++ b/include/maskfld.h @@ -789,9 +789,9 @@ class TBrowse : public TBrowse_button // @cmember:(INTERNAL) Indica se sul campo e' gia' stato effettuato il check bool _checked; - // @cmember:(INTERNAL) Testata della maschera di ricerca + // @cmember:(INTERNAL) Testate della maschera di ricerca TToken_string _head; - // @cmember:(INTERNAL) Item della maschera di ricerca + // @cmember:(INTERNAL) Campi visualizzati dalla maschera di ricerca TToken_string _items; // @cmember:(INTERNAL) Campi di input sulla maschera TToken_string _inp_id; diff --git a/include/msksheet.cpp b/include/msksheet.cpp index 896598440..f8f6befad 100755 --- a/include/msksheet.cpp +++ b/include/msksheet.cpp @@ -705,7 +705,7 @@ int TSpreadsheet::insert( TToken_string* toktok = new TToken_string(80); r = _str.insert(toktok, rec); - _property.insert(NULL, r); + _property.insert(NULL, r, TRUE); // Crea lo spazio necessario per le proprieta' // Notifica che l'inserimento e' terminato owner().post_insert(r); @@ -1668,12 +1668,27 @@ void TSpreadsheet::enable_cell( } void TSpreadsheet::set_back_and_fore_color(COLOR back, COLOR fore, int row) -{ - TRow_property* prop = get_property(row, TRUE); - if (back != COLOR_INVALID) - prop->_back = back; - if (fore != COLOR_INVALID) - prop->_fore = fore; +{ + if (back != COLOR_INVALID || fore != COLOR_INVALID) + { + int first = 0; + int last = items()-1; + if (row > 0) + first = last = row; + + const bool crea = back != NORMAL_BACK_COLOR || fore != NORMAL_COLOR; + for (int r = first; r <= last; r++) + { + TRow_property* prop = get_property(r, crea); + if (prop) + { + if (back != COLOR_INVALID) + prop->_back = back; + if (fore != COLOR_INVALID) + prop->_fore = fore; + } + } + } } void TSpreadsheet::get_back_and_fore_color(COLOR& back, COLOR& fore, int row)