Răsfoiți Sursa

Check for double click when searching for a selection.

mingodad 12 ani în urmă
părinte
comite
1467280d18
1 a modificat fișierele cu 25 adăugiri și 12 ștergeri
  1. 25 12
      SquiLu-ourbiz/ourbiz-fltk.nut

+ 25 - 12
SquiLu-ourbiz/ourbiz-fltk.nut

@@ -1231,6 +1231,8 @@ class MyListSearchWindow extends ListSearchWindow {
 		btnSearch.callback(cb_btnSearch);
 		search_str.callback(cb_search_str);
 	}
+	
+	//function grid_cb(sender : Fl_Widget, udata : any){}
 
 	function cb_btnUpdate(sender : Fl_Widget, udata : any){
 		this = sender->window();
@@ -1259,21 +1261,28 @@ class MyListSearchWindow extends ListSearchWindow {
 		show();
 		do_search();
 	}
+	
+	function hasSelectRequestCall(){
+		if(_callee_cb) {
+			_callee_cb(grid->get_row_id());
+			_callee_cb = null;
+			btnSelect->deactivate();
+			hide();
+			return true;
+		}
+		return false;
+	}
 
 	function row_selected(sender, ev){
 		switch(ev){
 			case Fl_Data_Table_Events.e_select:
-				if(_callee_cb) {
-					_callee_cb(grid->get_row_id());
-					_callee_cb = null;
-					btnSelect->deactivate();
-					hide();
-				}
+				hasSelectRequestCall();
 			break;
 			case Fl_Data_Table_Events.e_insert:
 				show_edit_window(0);
 			break;
 			case Fl_Data_Table_Events.e_update:
+				if((Fl.event_clicks() > 0) && hasSelectRequestCall()) return; 
 				show_edit_window(grid->get_row_id());
 			break;
 			case Fl_Data_Table_Events.e_delete:
@@ -2417,10 +2426,12 @@ class MyEditProductWindow extends EditProductWindow {
 		local prices = [];
 		local kit = [];
 		local kit_details = {};
-		appServer.get_product_for_edit(dbUpdater()->edit_id, _record, 
-			prices /*ourProductPrices->get_data_clear()*/,
-			kit /*ourProductKit->get_data_clear()*/,
-			kit_details /*ourProductKit->_rec_details*/);
+		if(id) {
+			appServer.get_product_for_edit(dbUpdater()->edit_id, _record, 
+				prices /*ourProductPrices->get_data_clear()*/,
+				kit /*ourProductKit->get_data_clear()*/,
+				kit_details /*ourProductKit->_rec_details*/);
+		}
 	}
 	
 	function do_edit_delayed(udata)
@@ -2759,8 +2770,10 @@ class MyEditOrderWindow extends EditOrderWindow {
 	function get_record_by_id(id){
 		local lines = grid_lines->_data;
 		grid_lines->clear_data_rows();
-		appServer.get_record_and_array(_record, lines, dbUpdater()->table_name, 0, 
-			dbUpdater()->edit_id, "&with_lines=1");
+		if(id) {
+			appServer.get_record_and_array(_record, lines, dbUpdater()->table_name, 0, 
+				dbUpdater()->edit_id, "&with_lines=1");
+		}
 	}
 
 	function do_edit_delayed(udata){