зеркало из https://github.com/mozilla/pjs.git
remove some code cruft and remove the code to do expose events on timers that wasn't working in modal dialogs and replace it with a more efficient, direct, and just better method. we're getting pretty fast now. r=bryner@uiuc.edu
This commit is contained in:
Родитель
27dd1c643c
Коммит
a7a04c7d14
|
@ -162,8 +162,8 @@ nsresult nsWidget::UpdateICSpot()
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsIRollupListener *nsWidget::gRollupListener = nsnull;
|
nsCOMPtr<nsIRollupListener> nsWidget::gRollupListener;
|
||||||
nsIWidget *nsWidget::gRollupWidget = nsnull;
|
nsCOMPtr<nsIWidget> nsWidget::gRollupWidget;
|
||||||
PRBool nsWidget::gRollupConsumeRollupEvent = PR_FALSE;
|
PRBool nsWidget::gRollupConsumeRollupEvent = PR_FALSE;
|
||||||
PRBool nsWidget::mGDKHandlerInstalled = PR_FALSE;
|
PRBool nsWidget::mGDKHandlerInstalled = PR_FALSE;
|
||||||
|
|
||||||
|
@ -1881,11 +1881,6 @@ nsWidget::OnButtonPressSignal(GdkEventButton * aGdkButtonEvent)
|
||||||
nsMouseScrollEvent scrollEvent;
|
nsMouseScrollEvent scrollEvent;
|
||||||
PRUint32 eventType = 0;
|
PRUint32 eventType = 0;
|
||||||
|
|
||||||
#if defined(DEBUG_pavlov) || defined(DEBUG_blizzard)
|
|
||||||
printf("button press for %p bounds are %d %d %d %d\n", this,
|
|
||||||
mBounds.x, mBounds.y, mBounds.height, mBounds.width);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (gRollupWidget && gRollupListener)
|
if (gRollupWidget && gRollupListener)
|
||||||
{
|
{
|
||||||
GdkWindow *rollupWindow = (GdkWindow *)gRollupWidget->GetNativeData(NS_NATIVE_WINDOW);
|
GdkWindow *rollupWindow = (GdkWindow *)gRollupWidget->GetNativeData(NS_NATIVE_WINDOW);
|
||||||
|
|
|
@ -421,8 +421,8 @@ protected:
|
||||||
void GetXYFromPosition(unsigned long *aX, unsigned long *aY);
|
void GetXYFromPosition(unsigned long *aX, unsigned long *aY);
|
||||||
|
|
||||||
// this is the rollup listener variables
|
// this is the rollup listener variables
|
||||||
static nsIRollupListener *gRollupListener;
|
static nsCOMPtr<nsIRollupListener> gRollupListener;
|
||||||
static nsIWidget *gRollupWidget;
|
static nsCOMPtr<nsIWidget> gRollupWidget;
|
||||||
static PRBool gRollupConsumeRollupEvent;
|
static PRBool gRollupConsumeRollupEvent;
|
||||||
|
|
||||||
nsITimer* mICSpotTimer;
|
nsITimer* mICSpotTimer;
|
||||||
|
|
|
@ -108,7 +108,7 @@ static GtkTargetEntry target_table[] = {
|
||||||
static guint n_targets = sizeof(target_table) / sizeof(target_table[0]);
|
static guint n_targets = sizeof(target_table) / sizeof(target_table[0]);
|
||||||
|
|
||||||
|
|
||||||
NS_IMPL_ISUPPORTS_INHERITED(nsWindow, nsWidget, nsITimerCallback)
|
NS_IMPL_ISUPPORTS_INHERITED0(nsWindow, nsWidget)
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
|
@ -130,11 +130,9 @@ nsWindow::nsWindow()
|
||||||
mSuperWin = 0;
|
mSuperWin = 0;
|
||||||
mMozArea = 0;
|
mMozArea = 0;
|
||||||
mMozAreaClosestParent = 0;
|
mMozAreaClosestParent = 0;
|
||||||
mScrollExposeCounter = 0;
|
|
||||||
mIsTooSmall = PR_FALSE;
|
mIsTooSmall = PR_FALSE;
|
||||||
mIsUpdating = PR_FALSE;
|
mIsUpdating = PR_FALSE;
|
||||||
mBlockFocusEvents = PR_FALSE;
|
mBlockFocusEvents = PR_FALSE;
|
||||||
mExposeTimer = nsnull;
|
|
||||||
// init the hash table if it hasn't happened already
|
// init the hash table if it hasn't happened already
|
||||||
if (mWindowLookupTable == NULL) {
|
if (mWindowLookupTable == NULL) {
|
||||||
mWindowLookupTable = g_hash_table_new(g_int_hash, g_int_equal);
|
mWindowLookupTable = g_hash_table_new(g_int_hash, g_int_equal);
|
||||||
|
@ -668,14 +666,14 @@ NS_IMETHODIMP nsWindow::CaptureRollupEvents(nsIRollupListener * aListener,
|
||||||
grabWidget = mWidget;
|
grabWidget = mWidget;
|
||||||
// XXX we need a visible widget!!
|
// XXX we need a visible widget!!
|
||||||
|
|
||||||
if (aDoCapture)
|
if (aDoCapture) {
|
||||||
{
|
|
||||||
GdkCursor *cursor = gdk_cursor_new (GDK_ARROW);
|
if (mSuperWin) {
|
||||||
if (!mSuperWin) {
|
|
||||||
} else {
|
|
||||||
mIsGrabbing = PR_TRUE;
|
mIsGrabbing = PR_TRUE;
|
||||||
mGrabWindow = this;
|
mGrabWindow = this;
|
||||||
|
|
||||||
|
GdkCursor *cursor = gdk_cursor_new (GDK_ARROW);
|
||||||
|
|
||||||
gdk_pointer_grab (GDK_SUPERWIN(mSuperWin)->bin_window, PR_TRUE,(GdkEventMask)
|
gdk_pointer_grab (GDK_SUPERWIN(mSuperWin)->bin_window, PR_TRUE,(GdkEventMask)
|
||||||
(GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
|
(GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
|
||||||
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
|
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
|
||||||
|
@ -684,6 +682,10 @@ NS_IMETHODIMP nsWindow::CaptureRollupEvents(nsIRollupListener * aListener,
|
||||||
|
|
||||||
gdk_cursor_destroy(cursor);
|
gdk_cursor_destroy(cursor);
|
||||||
}
|
}
|
||||||
|
gRollupConsumeRollupEvent = PR_TRUE;
|
||||||
|
gRollupListener = aListener;
|
||||||
|
gRollupWidget = this;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// make sure that the grab window is marked as released
|
// make sure that the grab window is marked as released
|
||||||
if (mGrabWindow == this) {
|
if (mGrabWindow == this) {
|
||||||
|
@ -691,23 +693,9 @@ NS_IMETHODIMP nsWindow::CaptureRollupEvents(nsIRollupListener * aListener,
|
||||||
}
|
}
|
||||||
mIsGrabbing = PR_FALSE;
|
mIsGrabbing = PR_FALSE;
|
||||||
gdk_pointer_ungrab(GDK_CURRENT_TIME);
|
gdk_pointer_ungrab(GDK_CURRENT_TIME);
|
||||||
// gtk_grab_remove(grabWidget);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (aDoCapture) {
|
gRollupListener = nsnull;
|
||||||
// gtk_grab_add(mWidget);
|
gRollupWidget = nsnull;
|
||||||
NS_IF_RELEASE(gRollupListener);
|
|
||||||
NS_IF_RELEASE(gRollupWidget);
|
|
||||||
gRollupConsumeRollupEvent = PR_TRUE;
|
|
||||||
gRollupListener = aListener;
|
|
||||||
NS_ADDREF(aListener);
|
|
||||||
gRollupWidget = this;
|
|
||||||
NS_ADDREF(gRollupWidget);
|
|
||||||
} else {
|
|
||||||
// gtk_grab_remove(mWidget);
|
|
||||||
NS_IF_RELEASE(gRollupListener);
|
|
||||||
//gRollupListener = nsnull;
|
|
||||||
NS_IF_RELEASE(gRollupWidget);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
@ -1772,19 +1760,6 @@ void * nsWindow::GetNativeData(PRUint32 aDataType)
|
||||||
return nsWidget::GetNativeData(aDataType);
|
return nsWidget::GetNativeData(aDataType);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_pavlov
|
|
||||||
#define OH_I_LOVE_SCROLLING_SMOOTHLY
|
|
||||||
struct GtkLayoutChild {
|
|
||||||
GtkWidget *widget;
|
|
||||||
gint x;
|
|
||||||
gint y;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define IS_ONSCREEN(x,y) ((x >= G_MINSHORT) && (x <= G_MAXSHORT) && \
|
|
||||||
(y >= G_MINSHORT) && (y <= G_MAXSHORT))
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Scroll the bits of a window
|
// Scroll the bits of a window
|
||||||
|
@ -1795,8 +1770,6 @@ NS_IMETHODIMP nsWindow::Scroll(PRInt32 aDx, PRInt32 aDy, nsRect *aClipRect)
|
||||||
{
|
{
|
||||||
UnqueueDraw();
|
UnqueueDraw();
|
||||||
mUpdateArea->Offset(aDx, aDy);
|
mUpdateArea->Offset(aDx, aDy);
|
||||||
// printf("mScrollExposeCounter++ = %i\n", mScrollExposeCounter);
|
|
||||||
mScrollExposeCounter++;
|
|
||||||
|
|
||||||
if (mSuperWin) {
|
if (mSuperWin) {
|
||||||
// save the old backing color
|
// save the old backing color
|
||||||
|
@ -1824,8 +1797,6 @@ NS_IMETHODIMP nsWindow::ScrollWidgets(PRInt32 aDx, PRInt32 aDy)
|
||||||
{
|
{
|
||||||
UnqueueDraw();
|
UnqueueDraw();
|
||||||
mUpdateArea->Offset(aDx, aDy);
|
mUpdateArea->Offset(aDx, aDy);
|
||||||
// printf("mScrollExposeCounter++ = %i\n", mScrollExposeCounter);
|
|
||||||
mScrollExposeCounter++;
|
|
||||||
|
|
||||||
if (mSuperWin) {
|
if (mSuperWin) {
|
||||||
// save the old backing color
|
// save the old backing color
|
||||||
|
@ -1846,81 +1817,6 @@ NS_IMETHODIMP nsWindow::ScrollWidgets(PRInt32 aDx, PRInt32 aDy)
|
||||||
|
|
||||||
NS_IMETHODIMP nsWindow::ScrollRect(nsRect &aSrcRect, PRInt32 aDx, PRInt32 aDy)
|
NS_IMETHODIMP nsWindow::ScrollRect(nsRect &aSrcRect, PRInt32 aDx, PRInt32 aDy)
|
||||||
{
|
{
|
||||||
#ifdef OH_I_LOVE_SCROLLING_SMOOTHLY
|
|
||||||
// copy our off screen pixmap onto the window.
|
|
||||||
GdkWindow *window = nsnull;
|
|
||||||
GdkGC *gc = nsnull;
|
|
||||||
|
|
||||||
window = GTK_LAYOUT(mWidget)->bin_window;
|
|
||||||
|
|
||||||
gc = gdk_gc_new(window);
|
|
||||||
|
|
||||||
printf("nsWindow::Scroll(%i, %i\n", aDx, aDy);
|
|
||||||
|
|
||||||
if (aDx > 0) { /* moving left */
|
|
||||||
if (abs(aDx) < aSrcRect.width) { /* only copy if we arn't moving further than our width */
|
|
||||||
gdk_window_copy_area(window, gc,
|
|
||||||
aDx, aDy, // source coords
|
|
||||||
window, // source window
|
|
||||||
aSrcRect.x, aSrcRect.y, // dest coords
|
|
||||||
aSrcRect.width - aDx, // width
|
|
||||||
aSrcRect.height - aDy); // height
|
|
||||||
|
|
||||||
nsRect rect(0, 0, aDx, aSrcRect.height);
|
|
||||||
Invalidate(rect, PR_TRUE);
|
|
||||||
} else {
|
|
||||||
Invalidate(aSrcRect, PR_TRUE); /* redraw the area of the widget if we are jumping more than our width */
|
|
||||||
}
|
|
||||||
} else if (aDx < 0) { /* moving right */
|
|
||||||
if (abs(aDx) < aSrcRect.width) { /* only copy if we arn't moving further than our width */
|
|
||||||
gdk_window_copy_area(window, gc,
|
|
||||||
aSrcRect.x, aSrcRect.y, // source coords
|
|
||||||
window, // source window
|
|
||||||
-aDx, -aDy, // dest coords
|
|
||||||
aSrcRect.width + aDx, // width
|
|
||||||
aSrcRect.height + aDy); // height
|
|
||||||
nsRect rect(aSrcRect.width + aDx, 0, -aDx, aSrcRect.height);
|
|
||||||
Invalidate(rect, PR_TRUE);
|
|
||||||
} else {
|
|
||||||
Invalidate(aSrcRect, PR_TRUE); /* redraw the area of the widget if we are jumping more than our width */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (aDy > 0) { /* moving up */
|
|
||||||
if (abs(aDy) < aSrcRect.height) { /* only copy if we arn't moving further than our height */
|
|
||||||
gdk_window_copy_area(window, gc,
|
|
||||||
aDx, aDy, // source coords
|
|
||||||
window, // source window
|
|
||||||
aSrcRect.x, aSrcRect.y, // dest coords
|
|
||||||
aSrcRect.width - aDx, // width
|
|
||||||
aSrcRect.height - aDy); // height
|
|
||||||
nsRect rect(0, 0, aSrcRect.width, aDy);
|
|
||||||
Invalidate(rect, PR_TRUE);
|
|
||||||
} else {
|
|
||||||
Invalidate(aSrcRect, PR_TRUE); /* redraw the area of the widget if we are jumping more than our height */
|
|
||||||
}
|
|
||||||
} else if (aDy < 0) { /* moving down */
|
|
||||||
if (abs(aDy) < aSrcRect.height) { /* only copy if we arn't moving further than our height */
|
|
||||||
gdk_window_copy_area(window, gc,
|
|
||||||
aSrcRect.x, aSrcRect.y, // source coords
|
|
||||||
window, // source window
|
|
||||||
-aDx, -aDy, // dest coords
|
|
||||||
aSrcRect.width + aDx, // width
|
|
||||||
aSrcRect.height + aDy); // height
|
|
||||||
nsRect rect(0, aSrcRect.height + aDy, aSrcRect.width, -aDy);
|
|
||||||
Invalidate(rect, PR_TRUE);
|
|
||||||
} else {
|
|
||||||
Invalidate(aSrcRect, PR_TRUE); /* redraw the area of the widget if we are jumping more than our height */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gdk_gc_destroy(gc);
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
printf("uhh, you don't use good scrolling and you want to scroll a rect? too bad.\n");
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1952,8 +1848,7 @@ NS_IMETHODIMP nsWindow::SetTitle(const nsString& aTitle)
|
||||||
converter = nsnull;
|
converter = nsnull;
|
||||||
}
|
}
|
||||||
else if (converter) {
|
else if (converter) {
|
||||||
result = converter->SetOutputErrorBehavior(
|
result = converter->SetOutputErrorBehavior(nsIUnicodeEncoder::kOnError_Replace, nsnull, '?');
|
||||||
nsIUnicodeEncoder::kOnError_Replace, nsnull, '?');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2051,26 +1946,10 @@ nsresult nsWindow::SetIcon(GdkPixmap *pixmap,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
NS_IMETHODIMP_(void) nsWindow::Notify(nsITimer* aTimer)
|
void nsWindow::SendExposeEvent()
|
||||||
{
|
{
|
||||||
// printf("%p nsWindow::Notify()\n", this);
|
|
||||||
mUpdateArea->Intersect(0, 0, mBounds.width, mBounds.height);
|
mUpdateArea->Intersect(0, 0, mBounds.width, mBounds.height);
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
// NS_ADDREF(mUpdateArea);
|
|
||||||
// event.region = mUpdateArea;
|
|
||||||
if (mScrollExposeCounter > 1) {
|
|
||||||
//printf("mScrollExposeCounter-- = %i\n", mScrollExposeCounter);
|
|
||||||
mScrollExposeCounter--;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
// printf("mScrollExposeCounter = 0\n");
|
|
||||||
mScrollExposeCounter = 0;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
nsPaintEvent event;
|
nsPaintEvent event;
|
||||||
|
|
||||||
event.rect = new nsRect();
|
event.rect = new nsRect();
|
||||||
|
@ -2083,20 +1962,15 @@ NS_IMETHODIMP_(void) nsWindow::Notify(nsITimer* aTimer)
|
||||||
/* XXX fix this */
|
/* XXX fix this */
|
||||||
event.time = 0;
|
event.time = 0;
|
||||||
|
|
||||||
// printf("\n\n");
|
|
||||||
PRInt32 x, y, w, h;
|
PRInt32 x, y, w, h;
|
||||||
mUpdateArea->GetBoundingBox(&x,&y,&w,&h);
|
mUpdateArea->GetBoundingBox(&x,&y,&w,&h);
|
||||||
|
|
||||||
// printf("\n\n");
|
|
||||||
event.rect->x = x;
|
event.rect->x = x;
|
||||||
event.rect->y = y;
|
event.rect->y = y;
|
||||||
event.rect->width = w;
|
event.rect->width = w;
|
||||||
event.rect->height = h;
|
event.rect->height = h;
|
||||||
|
|
||||||
if (event.rect->width == 0 || event.rect->height == 0)
|
if (event.rect->width == 0 || event.rect->height == 0) {
|
||||||
{
|
|
||||||
NS_IF_RELEASE(aTimer);
|
|
||||||
mExposeTimer = nsnull;
|
|
||||||
delete event.rect;
|
delete event.rect;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -2117,7 +1991,6 @@ NS_IMETHODIMP_(void) nsWindow::Notify(nsITimer* aTimer)
|
||||||
if (event.renderingContext) {
|
if (event.renderingContext) {
|
||||||
DispatchWindowEvent(&event);
|
DispatchWindowEvent(&event);
|
||||||
NS_RELEASE(event.renderingContext);
|
NS_RELEASE(event.renderingContext);
|
||||||
// NS_RELEASE(mUpdateArea);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2148,9 +2021,6 @@ NS_IMETHODIMP_(void) nsWindow::Notify(nsITimer* aTimer)
|
||||||
}
|
}
|
||||||
#endif // NS_DEBUG
|
#endif // NS_DEBUG
|
||||||
|
|
||||||
NS_IF_RELEASE(aTimer);
|
|
||||||
mExposeTimer = nsnull;
|
|
||||||
|
|
||||||
delete event.rect;
|
delete event.rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2173,14 +2043,7 @@ PRBool nsWindow::OnExpose(nsPaintEvent &event)
|
||||||
// expose.. we didn't get an Invalidate, so we should up the count here
|
// expose.. we didn't get an Invalidate, so we should up the count here
|
||||||
mUpdateArea->Union(event.rect->x, event.rect->y, event.rect->width, event.rect->height);
|
mUpdateArea->Union(event.rect->x, event.rect->y, event.rect->width, event.rect->height);
|
||||||
|
|
||||||
#ifdef MODAL_TIMERS_BROKEN
|
SendExposeEvent();
|
||||||
Notify(nsnull);
|
|
||||||
#else
|
|
||||||
if (!mExposeTimer) {
|
|
||||||
if (NS_NewTimer(&mExposeTimer) == NS_OK)
|
|
||||||
mExposeTimer->Init(this, 15);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -2651,46 +2514,14 @@ gint handle_toplevel_focus_out(GtkWidget * aWidget,
|
||||||
|
|
||||||
void
|
void
|
||||||
nsWindow::HandleXlibExposeEvent(XEvent *event)
|
nsWindow::HandleXlibExposeEvent(XEvent *event)
|
||||||
{
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (event->xexpose.count != 0) {
|
|
||||||
XEvent extra_event;
|
|
||||||
do {
|
|
||||||
XWindowEvent(event->xany.display, event->xany.window, ExposureMask, (XEvent *)&extra_event);
|
|
||||||
pevent.rect->UnionRect(*pevent.rect, nsRect(extra_event.xexpose.x, extra_event.xexpose.y,
|
|
||||||
extra_event.xexpose.width, extra_event.xexpose.height));
|
|
||||||
if (mScrollExposeCounter > 0) {
|
|
||||||
int delta = MIN(mScrollExposeCounter, extra_event.xexpose.count);
|
|
||||||
//printf("delta = %i\n", delta);
|
|
||||||
mScrollExposeCounter -= delta;
|
|
||||||
}
|
|
||||||
} while (extra_event.xexpose.count > 0);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
NS_ADDREF_THIS();
|
|
||||||
|
|
||||||
// call the event callback
|
|
||||||
if (mEventCallback)
|
|
||||||
{
|
{
|
||||||
// expose.. we didn't get an Invalidate, so we should up the count here
|
// expose.. we didn't get an Invalidate, so we should up the count here
|
||||||
|
do {
|
||||||
mUpdateArea->Union(event->xexpose.x, event->xexpose.y,
|
mUpdateArea->Union(event->xexpose.x, event->xexpose.y,
|
||||||
event->xexpose.width, event->xexpose.height);
|
event->xexpose.width, event->xexpose.height);
|
||||||
|
} while (XCheckWindowEvent(event->xany.display, event->xany.window, ExposureMask, event));
|
||||||
|
|
||||||
// printf("%p nsWindow::HandleXlibExposeEvent: mExposeTimer = %p\n", this, mExposeTimer);
|
SendExposeEvent();
|
||||||
#ifdef MODAL_TIMERS_BROKEN
|
|
||||||
Notify(nsnull);
|
|
||||||
#else
|
|
||||||
if (!mExposeTimer) {
|
|
||||||
if (NS_NewTimer(&mExposeTimer) == NS_OK)
|
|
||||||
mExposeTimer->Init(this, 15);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
NS_RELEASE_THIS();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -40,8 +40,7 @@ class nsIAppShell;
|
||||||
* Native GTK++ window wrapper.
|
* Native GTK++ window wrapper.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class nsWindow : public nsWidget,
|
class nsWindow : public nsWidget
|
||||||
public nsITimerCallback
|
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -52,9 +51,6 @@ public:
|
||||||
|
|
||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsITimerCallback
|
|
||||||
NS_IMETHOD_(void) Notify(nsITimer* aTimer);
|
|
||||||
|
|
||||||
NS_IMETHOD WidgetToScreen(const nsRect &aOldRect, nsRect &aNewRect);
|
NS_IMETHOD WidgetToScreen(const nsRect &aOldRect, nsRect &aNewRect);
|
||||||
|
|
||||||
NS_IMETHOD PreCreateWidget(nsWidgetInitData *aWidgetInitData);
|
NS_IMETHOD PreCreateWidget(nsWidgetInitData *aWidgetInitData);
|
||||||
|
@ -254,14 +250,15 @@ private:
|
||||||
nsresult SetIcon(GdkPixmap *window_pixmap,
|
nsresult SetIcon(GdkPixmap *window_pixmap,
|
||||||
GdkBitmap *window_mask);
|
GdkBitmap *window_mask);
|
||||||
nsresult SetIcon();
|
nsresult SetIcon();
|
||||||
|
void SendExposeEvent();
|
||||||
|
|
||||||
PRBool mIsUpdating;
|
PRBool mIsUpdating;
|
||||||
// when this is PR_TRUE we will block focus
|
// when this is PR_TRUE we will block focus
|
||||||
// events to prevent recursion
|
// events to prevent recursion
|
||||||
PRBool mBlockFocusEvents;
|
PRBool mBlockFocusEvents;
|
||||||
PRInt32 mScrollExposeCounter;
|
|
||||||
void DestroyNativeChildren(void);
|
void DestroyNativeChildren(void);
|
||||||
|
|
||||||
nsITimer *mExposeTimer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Загрузка…
Ссылка в новой задаче