diff mde/gui/WidgetManager.d @ 168:da8d3091fdaf

More work on the context menu: now roughly usable like an ordinary context menu.
author Diggory Hardy <diggory.hardy@gmail.com>
date Mon, 29 Jun 2009 18:45:58 +0200
parents 620d4ea30228
children bc1cf73dc835
line wrap: on
line diff
--- a/mde/gui/WidgetManager.d	Sat Jun 27 11:57:26 2009 +0200
+++ b/mde/gui/WidgetManager.d	Mon Jun 29 18:45:58 2009 +0200
@@ -31,6 +31,7 @@
 import mde.content.Content;
 import mde.content.ServiceContent;
 debug import mde.content.miscContent;	// Debug menu
+debug import mde.content.Debug;
 
 // Widgets to create:
 import mde.gui.widget.layout;
@@ -157,7 +158,7 @@
     override IChildWidget getPopupWidget (wdabs cx, wdabs cy, bool closePopup) {
         if (popupContext) {
             if (popupContext.onSelf (cx, cy))
-            	return popupContext;
+            	return popupContext.getWidget (cx, cy);
             if (closePopup) {
             	if (childIPPW is null)
 		    menuActive = MenuPosition.INACTIVE;
@@ -334,6 +335,7 @@
 	    popupContext = makeWidget (this, "context", contextContent);
 	    popupContext.setup (0, 3);
 	    positionPopup (underMouse, popupContext);
+	    menuActive = MenuPosition.ACTIVE;
 	    requestRedraw;
 	} else {	// post other button presses to clickEvent
 	    int ret = underMouse.clickEvent (cast(wdabs)cx,cast(wdabs)cy,b,state);
@@ -384,6 +386,8 @@
             child.setWidth  (w, -1);
             child.setHeight (h, -1);
             child.setPosition (0,0);
+	    popupContext.setup (setupN, 2);
+	    //NOTE: does popupContext need to be re-scaled?
             requestRedraw;
         }
     }
@@ -399,6 +403,8 @@
             debug assert (oUM && underMouse, "no widget under mouse: error");
             oUM.underMouse (false);
             underMouse.underMouse (true);
+	    debug if (Debug.logUnderMouse())
+		logger.trace ("Widget under mouse: {}", underMouse);
         }
     }