if ( !w )
return FALSE;
- if ( domap )
- XtMapWidget(w);
- else
- XtUnmapWidget(w);
-
// Rationale: a lot of common operations (including but not
// limited to moving, resizing and appending items to a listbox)
// unmamange the widget, do their work, then manage it again.
// or that most controls are shown every time they are moved or resized!
XtSetMappedWhenManaged( w, domap );
+ // if the widget is not unmanaged, it still intercepts
+ // mouse events, even if it is not mapped (and hence invisible)
+ if ( domap )
+ {
+ XtManageChild(w);
+ // XtMapWidget(w);
+ }
+ else
+ {
+ XtUnmanageChild(w);
+ // XtUnmapWidget(w);
+ }
+
return TRUE;
}
XtAppAddActions ((XtAppContext) wxTheApp->GetAppContext(), actions, 1);
Widget parentWidget = (Widget) parent->GetClientWidget();
-
- if (style & wxSIMPLE_BORDER)
- {
- m_borderWidget = (WXWidget)XtVaCreateManagedWidget
- (
- "canvasBorder",
- xmFrameWidgetClass, parentWidget,
- XmNshadowType, XmSHADOW_IN,
- XmNshadowThickness, 1,
- NULL
- );
- } else if (style & wxSUNKEN_BORDER)
- {
- m_borderWidget = (WXWidget)XtVaCreateManagedWidget
- (
- "canvasBorder",
- xmFrameWidgetClass, parentWidget,
- XmNshadowType, XmSHADOW_IN,
- NULL
- );
- } else if (style & wxRAISED_BORDER)
- {
- m_borderWidget = (WXWidget)XtVaCreateManagedWidget
- (
- "canvasBorder",
- xmFrameWidgetClass, parentWidget,
- XmNshadowType, XmSHADOW_OUT,
- NULL
- );
- }
+ m_borderWidget = wxCreateBorderWidget( (WXWidget)parentWidget, style );
m_scrolledWindow = (WXWidget)XtVaCreateManagedWidget
(
XtAddCallback ((Widget) m_drawingArea, XmNexposeCallback, (XtCallbackProc) wxCanvasRepaintProc, (XtPointer) this);
XtAddCallback ((Widget) m_drawingArea, XmNinputCallback, (XtCallbackProc) wxCanvasInputEvent, (XtPointer) this);
- // TODO?
-#if 0
- display = XtDisplay (scrolledWindow);
- xwindow = XtWindow (drawingArea);
-#endif // 0
-
XtAddEventHandler(
(Widget)m_drawingArea,
PointerMotionHintMask | EnterWindowMask |
(Widget) 0, (Widget) 0,
(Widget) m_drawingArea);
-#if 0
- if (m_hScrollBar)
- XtRealizeWidget ((Widget) m_hScrollBar);
- if (m_vScrollBar)
- XtRealizeWidget ((Widget) m_vScrollBar);
-#endif // 0
-
// Without this, the cursor may not be restored properly (e.g. in splitter
// sample).
SetCursor(*wxSTANDARD_CURSOR);
if (m_borderWidget || m_scrolledWindow)
{
- MapOrUnmap(m_drawingArea, show);
MapOrUnmap(m_borderWidget ? m_borderWidget : m_scrolledWindow, show);
+ // MapOrUnmap(m_drawingArea, show);
}
else
{
// check for a double click
//
- long dclickTime = XtGetMultiClickTime(wxGlobalDisplay());
+ long dclickTime = XtGetMultiClickTime(xevent->xany.display);
long ts = wxevent.GetTimestamp();
int buttonLast = win->GetLastClickedButton();
// Get the current mouse position.
wxPoint wxGetMousePosition()
{
- Display *display = (Display*) wxGetDisplay();
+ Display *display = wxGlobalDisplay();
Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
Window rootReturn, childReturn;
int rootX, rootY, winX, winY;