]> Dogcows Code - chaz/openbox/commitdiff
enter/leave and focus events are working beautifully
authorDana Jansens <danakj@orodu.net>
Fri, 27 Dec 2002 08:33:57 +0000 (08:33 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 27 Dec 2002 08:33:57 +0000 (08:33 +0000)
otk/eventdispatcher.cc
src/client.cc
src/frame.cc

index d28a74269d57ad861948334daef414de74100eb2..1d4a4ec05f46d2f8e47ebbb821d3cd3f1e33aad2 100644 (file)
@@ -94,7 +94,7 @@ void OtkEventDispatcher::dispatchEvents(void)
         focus = None;
         printf("FocusOut focus=%lx unfocus=%lx\n", focus, unfocus);
       }
-/*    // madly compress all crossing events
+    // madly compress all crossing events
     } else if (e.type == EnterNotify) {
       // any other types are not ones we're interested in
       if (e.xcrossing.mode == NotifyNormal) {
@@ -109,7 +109,7 @@ void OtkEventDispatcher::dispatchEvents(void)
         leave = e.xcrossing.window;
         leave_root = e.xcrossing.root;
         printf("Leave enter=%lx leave=%lx\n", enter, leave);
-        }*/
+      }
     } else {
       // normal events
       dispatch(e);
@@ -118,7 +118,7 @@ void OtkEventDispatcher::dispatchEvents(void)
 
   if (unfocus != None) {
     // the last focus event was an FocusOut, so where the hell is the focus at?
-    printf("UNFOCUSING: %lx\n", unfocus);
+//    printf("UNFOCUSING: %lx\n", unfocus);
     _focus_e.xfocus.type = FocusOut;
     _focus_e.xfocus.window = unfocus;
     dispatch(_focus_e);
@@ -128,12 +128,12 @@ void OtkEventDispatcher::dispatchEvents(void)
     // the last focus event was a FocusIn, so unfocus what used to be focus and
     // focus this new target
     if (_focus != None) {
-      printf("UNFOCUSING: %lx\n", _focus);
+//      printf("UNFOCUSING: %lx\n", _focus);
       _focus_e.xfocus.type = FocusOut;
       _focus_e.xfocus.window = _focus;
       dispatch(_focus_e);
     }
-    printf("FOCUSING: %lx\n", focus);
+//    printf("FOCUSING: %lx\n", focus);
     _focus_e.xfocus.type = FocusIn;
     _focus_e.xfocus.window = focus;
     dispatch(_focus_e);
index df9ad8a6baae795f72c8d5eda50c6ee94d0c9f02..38364432418a019549dfad589163ec1a356631d4 100644 (file)
@@ -882,8 +882,14 @@ void OBClient::unfocus()
 }
 
 
-void OBClient::focusHandler(const XFocusChangeEvent &)
+void OBClient::focusHandler(const XFocusChangeEvent &e)
 {
+#ifdef    DEBUG
+  printf("FocusIn for 0x%lx\n", e.window);
+#endif // DEBUG
+  
+  OtkEventHandler::focusHandler(e);
+
   frame->focus();
   _focused = true;
 
@@ -891,8 +897,14 @@ void OBClient::focusHandler(const XFocusChangeEvent &)
 }
 
 
-void OBClient::unfocusHandler(const XFocusChangeEvent &)
+void OBClient::unfocusHandler(const XFocusChangeEvent &e)
 {
+#ifdef    DEBUG
+  printf("FocusOut for 0x%lx\n", e.window);
+#endif // DEBUG
+  
+  OtkEventHandler::unfocusHandler(e);
+
   frame->unfocus();
   _focused = false;
 }
@@ -900,6 +912,10 @@ void OBClient::unfocusHandler(const XFocusChangeEvent &)
 
 void OBClient::configureRequestHandler(const XConfigureRequestEvent &e)
 {
+#ifdef    DEBUG
+  printf("ConfigureRequest for 0x%lx\n", e.window);
+#endif // DEBUG
+  
   OtkEventHandler::configureRequestHandler(e);
 
   // XXX: if we are iconic (or shaded? (fvwm does that)) ignore the event
index fed6132eb05de9ff4b5d34a51017485a88e9c29e..3d290bc9133049ce4957ef7575393775fad39be9 100644 (file)
@@ -103,6 +103,7 @@ void OBFrame::focus()
 {
   otk::OtkWidget::focus();
   update();
+  _handle.update();
 }
 
 
This page took 0.0269 seconds and 4 git commands to generate.