]> git.lyx.org Git - lyx.git/blobdiff - src/WorkArea.C
More fixes to insettabular/text (and some missing features added).
[lyx.git] / src / WorkArea.C
index 5735d381f36a22e5892f3a0905bff10f5a31b567..e10cb129f1c4ed8a3a170919d08f3402d16a5f1e 100644 (file)
@@ -18,7 +18,9 @@
 #include "WorkArea.h"
 #include "debug.h"
 #include "support/lstrings.h"
+#if 0
 #include "BufferView.h"
+#endif
 #include "LyXView.h"
 #include "lyxfunc.h"
 
@@ -59,8 +61,16 @@ extern "C" {
 
 
 
-WorkArea::WorkArea(BufferView * o, int xpos, int ypos, int width, int height)
-       : owner_(o), workareapixmap(0), painter_(*this)
+WorkArea::WorkArea(
+#if 0
+       BufferView * o,
+#endif
+       int xpos, int ypos, int width, int height)
+       :
+#if 0
+       owner_(o),
+#endif
+       workareapixmap(0), painter_(*this)
 {
        fl_freeze_all_forms();
 
@@ -261,7 +271,11 @@ void WorkArea::scroll_cb(FL_OBJECT * ob, long)
        // If we really want the accellerating scroll we can do that
        // from here. IMHO that is a waste of effort since we already
        // have other ways to move fast around in the document. (Lgb)
+#if 0
        area->owner_->scrollCB(fl_get_scrollbar_value(ob));
+#else
+       area->scrollCB(fl_get_scrollbar_value(ob));
+#endif
        waitForX();
 }
 
@@ -346,8 +360,8 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                if (lyxerr.debugging(Debug::KEY)) {
                        char const * tmp = XKeysymToString(key);
                        char const * tmp2 = XKeysymToString(keysym);
-                       string stm = (tmp ? tmp : "");
-                       string stm2 = (tmp2 ? tmp2 : "");
+                       string const stm = (tmp ? tmp : "");
+                       string const stm2 = (tmp2 ? tmp2 : "");
                        
                        lyxerr << "WorkArea: Key is `" << stm << "' ["
                               << key << "]" << endl;
@@ -372,22 +386,31 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                if (!key) {
                        // We migth have to add more keysyms here also,
                        // we will do that as the issues arise. (Lgb)
-                       if (keysym == XK_space)
+                       if (keysym == XK_space) {
                                ret_key = keysym;
-                       else
+                               lyxerr[Debug::KEY] << "Using keysym [A]"
+                                                  << endl;
+                       } else
                                break;
                } else {
                        // It seems that this was a bit optimistic...
                        // With this hacking things seems to be better (Lgb)
-                       if (static_cast<unsigned char>(key) == key
-                               && !iscntrl(key))
-                               ret_key = key;
-                       else
+                       //if (!iscntrl(key)) {
+                       //      ret_key = key;
+                       //      lyxerr[Debug::KEY]
+                       //              << "Using key [B]\n"
+                       //              << "Uchar["
+                       //              << static_cast<unsigned char>(key)
+                       //              << endl;
+                       //} else {
                                ret_key = (keysym ? keysym : key);
+                               lyxerr[Debug::KEY] << "Using keysym [B]"
+                                                  << endl;
+                               //}
                }
                
 #endif 
-               unsigned int ret_state = xke->state;
+               unsigned int const ret_state = xke->state;
 
                // If you have a better way to handle "wild-output" of
                // characters after the key has been released than the one
@@ -399,7 +422,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                                   << xke->time - last_time_pressed
                                   << endl;
                if (xke->time - last_time_pressed < 35 // should perhaps be tunable
-                   && xke->state == last_state_pressed
+                   && ret_state == last_state_pressed
                    && xke->keycode == last_key_pressed) {
                        lyxerr[Debug::KEY]
                                << "Workarea: Purging X events." << endl;
@@ -417,7 +440,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                }
                last_time_pressed = xke->time;
                last_key_pressed = xke->keycode;
-               last_state_pressed = xke->state;
+               last_state_pressed = ret_state;
                
                area->workAreaKeyPress(ret_key, ret_state);
        }