word completion

Matthias Urban murban at cs.uni-magdeburg.de
Thu Jan 3 00:56:26 UTC 2002


Hi,

the calculation of the dialog metrics is not correct --- a remnant of
the nocturnal development ;-)

Here is the patch.

Bye,
Matthias
-------------- next part --------------
--- editcmd.c	Thu Jan  3 01:37:23 2002
+++ editcmd.c	Thu Jan  3 01:34:10 2002
@@ -2519,33 +2519,24 @@
     WListbox *compl_list;
     	    
 /* calculate the dialog metrics */
-    start_x = edit->curs_col - ((max_len + 4) / 2);
-    start_y = edit->curs_row + 2;
-	
     compl_dlg_h = num_compl + 2;
     compl_dlg_w = max_len + 4;
+    start_x = edit->curs_col + edit->start_col - (compl_dlg_w / 2);
+    start_y = edit->curs_row + EDIT_TEXT_VERTICAL_OFFSET + 1;
 
-    if (start_x <= 0) 
+    if (start_x < 0) 
         start_x = 0;
-
-    if (compl_dlg_w >= COLS) 
+    if (compl_dlg_w > COLS) 
         compl_dlg_w = COLS;
+    if (compl_dlg_h > LINES - 2) 
+        compl_dlg_h = LINES - 2;
 
-    if (start_x + compl_dlg_w >= COLS) {
-        offset = start_x + compl_dlg_w - COLS;
+    offset = start_x + compl_dlg_w - COLS;
+    if (offset > 0)
         start_x -= offset;
-        if (start_x <= 0) 
-    	    start_x = 0;
-    }
-	    
-    if (start_y + compl_dlg_h >= LINES) {
-        offset = start_y + compl_dlg_h - LINES;
-        start_y -= offset;
-        if (start_y <= 0) 
-    	    start_y = 1;
-	if (start_y + compl_dlg_h >= LINES)
-	    compl_dlg_h = LINES - 2;
-    }
+    offset = start_y + compl_dlg_h - LINES;
+    if (offset > 0)
+        start_y -= (offset + 1);
 
 /* create the dialog */    
     compl_dlg = create_dlg (start_y, start_x, compl_dlg_h, compl_dlg_w,


More information about the mc-devel mailing list