diff --git a/Common/Context.cpp b/Common/Context.cpp
index 11329dab458a4cc5f2d663a716ea0183ba787ded..9f78fc1756d4f646651002f85e5421bb4955616f 100644
--- a/Common/Context.cpp
+++ b/Common/Context.cpp
@@ -1,4 +1,4 @@
-// $Id: Context.cpp,v 1.30 2001-01-10 21:20:38 geuzaine Exp $
+// $Id: Context.cpp,v 1.31 2001-01-11 12:53:57 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "Const.h"
@@ -203,6 +203,10 @@ void Init_Context(void){
   CTX.fixed_font = "fixed" ;
   // end(only used for motif)
 
+  // only for fltk
+  CTX.fontsize = 12;
+  // end(fltk)
+
   CTX.lc = 1.0 ;
   CTX.min[0]   = CTX.min[1]   = CTX.min[2]   = 0.0 ;
   CTX.max[0]   = CTX.max[1]   = CTX.max[2]   = 1.0 ;
diff --git a/Common/GetOptions.cpp b/Common/GetOptions.cpp
index 86bc35d1d6993ae7f7e1491f18a1cd140d0d3896..327d730aea8a590b69b370d9ade7e2bfd6c01f14 100644
--- a/Common/GetOptions.cpp
+++ b/Common/GetOptions.cpp
@@ -1,4 +1,4 @@
-// $Id: GetOptions.cpp,v 1.2 2001-01-09 19:40:56 remacle Exp $
+// $Id: GetOptions.cpp,v 1.3 2001-01-11 12:53:57 geuzaine Exp $
 #include "Gmsh.h"
 #include "Const.h"
 #include "Context.h"
@@ -47,6 +47,7 @@ char gmsh_options[]   =
   "Display options:\n"    
   "  -nodb                 disable double buffering\n"
   "  -noov                 disable overlay visual\n"
+  "  -fontsize int         size of the font for the user interface (default: 12)\n"
   "  -alpha                enable alpha blending\n"
   "  -notrack              don't use trackball mode for rotations\n"
   "  -display string       specify display\n"
@@ -348,6 +349,17 @@ void Get_Options (int argc, char *argv[], int *nbfiles) {
       else if(!strcmp(argv[i]+1, "nodl")){ 
         CTX.display_lists = 0; i++;
       }
+      else if(!strcmp(argv[i]+1, "fontsize")){
+        i++;
+        if(argv[i]!=NULL){
+	  CTX.fontsize = atoi(argv[i]);
+          i++;
+	}
+        else {    
+          fprintf(stderr, ERROR_STR "Missing Number\n");
+          exit(1);
+        }
+      }
       else if(!strcmp(argv[i]+1, "display")){
         i++;
         if(argv[i]!=NULL){
diff --git a/Common/Options.h b/Common/Options.h
index 8753e82a638f00a5d8518d0d5e62ed2e438cc798..dc9cfe963e56ad97dedb976f92d7a7906cf5eaa6 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -41,9 +41,7 @@ StringXNumber GeneralOptions_Number[] = {
   { "Viewport1"    , GMSH_INT,    (void*)&CTX.viewport[1]    , 0. }, 
   { "Viewport2"    , GMSH_INT,    (void*)&CTX.viewport[2]    , 1. }, 
   { "Viewport3"    , GMSH_INT,    (void*)&CTX.viewport[3]    , 1. }, 
-  { "FontSize"     , GMSH_INT,    (void*)&CTX.fontsize      , 12. }, 
-  { "GraphicFontSize" , 
-                     GMSH_INT,    (void*)&CTX.glfontsize    , 12. }, 
+  { "FontSize"     , GMSH_INT,    (void*)&CTX.glfontsize     , 12. }, 
   { "Rotation0"    , GMSH_DOUBLE, (void*)&CTX.r[0]          , 0.0 }, 
   { "Rotation1"    , GMSH_DOUBLE, (void*)&CTX.r[1]          , 0.0 }, 
   { "Rotation2"    , GMSH_DOUBLE, (void*)&CTX.r[2]          , 0.0 }, 
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 1a801b923a877795082710464442c6d17ba4e75d..5752478dd2c533d6171ccf2855cb7a3105fe3dfa 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -257,6 +257,18 @@ int GUI::global_shortcuts(int event){
     quit_selection = 1;
     return 1;
   }
+  else if(Fl::test_shortcut('1')){
+    mesh_1d_cb(0,0);
+    return 1;
+  }
+  else if(Fl::test_shortcut('2')){
+    mesh_2d_cb(0,0);
+    return 1;
+  }
+  else if(Fl::test_shortcut('3')){
+    mesh_3d_cb(0,0);
+    return 1;
+  }
 
   return 0;
 }
@@ -852,28 +864,28 @@ void GUI::create_geometry_options_window(){
       { 
 	Fl_Group* o = new Fl_Group(WB, WB+BH, width-2*WB, height-3*WB-2*BH, "Visibility");
 	o->labelsize(CTX.fontsize);
-        geo_butt[0] = new Fl_Check_Button(2*WB, 2*WB+1*BH, BW, BH, "Points");
+        geo_butt[0] = new Fl_Check_Button(2*WB, 2*WB+1*BH, IW, BH, "Points");
 	geo_butt[0]->callback(opt_geometry_entity_cb, (void*)0);
 	geo_butt[0]->value(CTX.geom.points);
-        geo_butt[1] = new Fl_Check_Button(2*WB, 2*WB+2*BH, BW, BH, "Curves");
+        geo_butt[1] = new Fl_Check_Button(2*WB, 2*WB+2*BH, IW, BH, "Curves");
 	geo_butt[1]->callback(opt_geometry_entity_cb, (void*)1);
 	geo_butt[1]->value(CTX.geom.lines);
-        geo_butt[2] = new Fl_Check_Button(2*WB, 2*WB+3*BH, BW, BH, "Surfaces");
+        geo_butt[2] = new Fl_Check_Button(2*WB, 2*WB+3*BH, IW, BH, "Surfaces");
 	geo_butt[2]->callback(opt_geometry_entity_cb, (void*)2);
 	geo_butt[2]->value(CTX.geom.surfaces);
-        geo_butt[3] = new Fl_Check_Button(2*WB, 2*WB+4*BH, BW, BH, "Volumes");
+        geo_butt[3] = new Fl_Check_Button(2*WB, 2*WB+4*BH, IW, BH, "Volumes");
 	geo_butt[3]->callback(opt_geometry_entity_cb, (void*)3);
 	geo_butt[3]->value(CTX.geom.volumes);
-        geo_butt[4] = new Fl_Check_Button(width/2, 2*WB+1*BH, BW, BH, "Point numbers");
+        geo_butt[4] = new Fl_Check_Button(width/2, 2*WB+1*BH, IW, BH, "Point numbers");
 	geo_butt[4]->callback(opt_geometry_num_cb, (void*)0);
 	geo_butt[4]->value(CTX.geom.points_num);
-        geo_butt[5] = new Fl_Check_Button(width/2, 2*WB+2*BH, BW, BH, "Curve numbers");
+        geo_butt[5] = new Fl_Check_Button(width/2, 2*WB+2*BH, IW, BH, "Curve numbers");
 	geo_butt[5]->callback(opt_geometry_num_cb, (void*)1);
 	geo_butt[5]->value(CTX.geom.lines_num);
-        geo_butt[6] = new Fl_Check_Button(width/2, 2*WB+3*BH, BW, BH, "Surface numbers");
+        geo_butt[6] = new Fl_Check_Button(width/2, 2*WB+3*BH, IW, BH, "Surface numbers");
 	geo_butt[6]->callback(opt_geometry_num_cb, (void*)2);
 	geo_butt[6]->value(CTX.geom.surfaces_num);
-        geo_butt[7] = new Fl_Check_Button(width/2, 2*WB+4*BH, BW, BH, "Volume numbers");
+        geo_butt[7] = new Fl_Check_Button(width/2, 2*WB+4*BH, IW, BH, "Volume numbers");
 	geo_butt[7]->callback(opt_geometry_num_cb, (void*)3);
 	geo_butt[7]->value(CTX.geom.volumes_num);
 	for(i=0 ; i<8 ; i++){
@@ -984,28 +996,28 @@ void GUI::create_mesh_options_window(){
       { 
 	Fl_Group* o = new Fl_Group(WB, WB+BH, width-2*WB, height-3*WB-2*BH, "Visibility");
 	o->labelsize(CTX.fontsize);
-        mesh_butt[3] = new Fl_Check_Button(2*WB, 2*WB+1*BH, BW, BH, "Points");
+        mesh_butt[3] = new Fl_Check_Button(2*WB, 2*WB+1*BH, IW, BH, "Points");
 	mesh_butt[3]->callback(opt_mesh_entity_cb, (void*)0);
 	mesh_butt[3]->value(CTX.mesh.points);
-        mesh_butt[4] = new Fl_Check_Button(2*WB, 2*WB+2*BH, BW, BH, "Curves");
+        mesh_butt[4] = new Fl_Check_Button(2*WB, 2*WB+2*BH, IW, BH, "Curves");
 	mesh_butt[4]->callback(opt_mesh_entity_cb, (void*)1);
 	mesh_butt[4]->value(CTX.mesh.lines);
-        mesh_butt[5] = new Fl_Check_Button(2*WB, 2*WB+3*BH, BW, BH, "Surfaces");
+        mesh_butt[5] = new Fl_Check_Button(2*WB, 2*WB+3*BH, IW, BH, "Surfaces");
 	mesh_butt[5]->callback(opt_mesh_entity_cb, (void*)2);
 	mesh_butt[5]->value(CTX.mesh.surfaces);
-        mesh_butt[6] = new Fl_Check_Button(2*WB, 2*WB+4*BH, BW, BH, "Volumes");
+        mesh_butt[6] = new Fl_Check_Button(2*WB, 2*WB+4*BH, IW, BH, "Volumes");
 	mesh_butt[6]->callback(opt_mesh_entity_cb, (void*)3);
 	mesh_butt[6]->value(CTX.mesh.volumes);
-        mesh_butt[7] = new Fl_Check_Button(width/2, 2*WB+1*BH, BW, BH, "Point Numbers");
+        mesh_butt[7] = new Fl_Check_Button(width/2, 2*WB+1*BH, IW, BH, "Point Numbers");
 	mesh_butt[7]->callback(opt_mesh_entity_cb, (void*)0);
 	mesh_butt[7]->value(CTX.mesh.points_num);
-        mesh_butt[8] = new Fl_Check_Button(width/2, 2*WB+2*BH, BW, BH, "Curve Numbers");
+        mesh_butt[8] = new Fl_Check_Button(width/2, 2*WB+2*BH, IW, BH, "Curve Numbers");
 	mesh_butt[8]->callback(opt_mesh_entity_cb, (void*)1);
 	mesh_butt[8]->value(CTX.mesh.lines_num);
-        mesh_butt[9] = new Fl_Check_Button(width/2, 2*WB+3*BH, BW, BH, "Surface Numbers");
+        mesh_butt[9] = new Fl_Check_Button(width/2, 2*WB+3*BH, IW, BH, "Surface Numbers");
 	mesh_butt[9]->callback(opt_mesh_entity_cb, (void*)2);
 	mesh_butt[9]->value(CTX.mesh.surfaces_num);
-        mesh_butt[10] = new Fl_Check_Button(width/2, 2*WB+4*BH, BW, BH, "Volume Numbers");
+        mesh_butt[10] = new Fl_Check_Button(width/2, 2*WB+4*BH, IW, BH, "Volume Numbers");
 	mesh_butt[10]->callback(opt_mesh_entity_cb, (void*)3);
 	mesh_butt[10]->value(CTX.mesh.volumes_num);
 	for(i=3 ; i<11 ; i++){
diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp
index efcc3ccdf5b01fbf889b59c6fc8e345d30116059..5372eebf8c70bda98ae713621920f7aaf018d503 100644
--- a/Fltk/Message.cpp
+++ b/Fltk/Message.cpp
@@ -1,4 +1,4 @@
-// $Id: Message.cpp,v 1.4 2001-01-10 08:50:29 geuzaine Exp $
+// $Id: Message.cpp,v 1.5 2001-01-11 12:53:59 geuzaine Exp $
 
 #include <signal.h>
 #ifndef WIN32
@@ -57,6 +57,8 @@ void Msg(int level, char *fmt, ...){
      CTX.interactive && !CTX.verbosity) 
     return ;
 
+  WID->check();
+
   va_start (args, fmt);
 
   switch(level){