mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Added Invalidate method for a rect in a window.
This commit is contained in:
parent
64c6bab0fd
commit
dff869ceef
@ -967,6 +967,42 @@ NS_METHOD nsWindow::Invalidate(PRBool aIsSynchronous)
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//
|
||||
// Invalidate this component visible area
|
||||
//
|
||||
//-------------------------------------------------------------------------
|
||||
NS_METHOD nsWindow::Invalidate(const nsRect & aRect, PRBool aIsSynchronous)
|
||||
{
|
||||
if (mWidget == nsnull) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (!XtIsRealized(mWidget)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
Window win = XtWindow(mWidget);
|
||||
Display *display = XtDisplay(mWidget);
|
||||
|
||||
|
||||
XEvent evt;
|
||||
evt.xgraphicsexpose.type = GraphicsExpose;
|
||||
evt.xgraphicsexpose.send_event = False;
|
||||
evt.xgraphicsexpose.display = display;
|
||||
evt.xgraphicsexpose.drawable = win;
|
||||
evt.xgraphicsexpose.x = aRect.x;
|
||||
evt.xgraphicsexpose.y = aRect.y;
|
||||
evt.xgraphicsexpose.width = aRect.width;
|
||||
evt.xgraphicsexpose.height = aRect.height;
|
||||
evt.xgraphicsexpose.count = 0;
|
||||
XSendEvent(display, win, False, ExposureMask, &evt);
|
||||
XFlush(display);
|
||||
return NS_OK;
|
||||
|
||||
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//
|
||||
// Return some native data according to aDataType
|
||||
@ -1190,6 +1226,8 @@ PRBool nsWindow::ConvertStatus(nsEventStatus aStatus)
|
||||
|
||||
NS_IMETHODIMP nsWindow::DispatchEvent(nsGUIEvent* event, nsEventStatus & aStatus)
|
||||
{
|
||||
NS_ADDREF(event.widget);
|
||||
|
||||
aStatus = nsEventStatus_eIgnore;
|
||||
if (nsnull != mEventCallback) {
|
||||
aStatus = (*mEventCallback)(event);
|
||||
@ -1199,6 +1237,7 @@ NS_IMETHODIMP nsWindow::DispatchEvent(nsGUIEvent* event, nsEventStatus & aStatus
|
||||
if ((aStatus != nsEventStatus_eIgnore) && (nsnull != mEventListener)) {
|
||||
aStatus = mEventListener->ProcessEvent(*event);
|
||||
}
|
||||
NS_RELEASE(event.widget);
|
||||
|
||||
return NS_OK;
|
||||
|
||||
|
@ -107,6 +107,7 @@ public:
|
||||
virtual nsCursor GetCursor();
|
||||
NS_IMETHOD SetCursor(nsCursor aCursor);
|
||||
NS_IMETHOD Invalidate(PRBool aIsSynchronous);
|
||||
NS_IMETHOD Invalidate(const nsRect &aRect, PRBool aIsSynchronous);
|
||||
virtual void* GetNativeData(PRUint32 aDataType);
|
||||
virtual nsIRenderingContext* GetRenderingContext();
|
||||
NS_IMETHOD SetColorMap(nsColorMap *aColorMap);
|
||||
|
Loading…
Reference in New Issue
Block a user