Bug 968647 - Part 2. Listen window position change for IME. r=roc

This commit is contained in:
Makoto Kato 2014-02-28 16:45:08 +09:00
parent ba3a895ec9
commit 1e3167927c
8 changed files with 22 additions and 16 deletions

View File

@ -1752,8 +1752,7 @@ bool nsChildView::PaintWindow(nsIntRegion aRegion)
void nsChildView::ReportMoveEvent()
{
if (mWidgetListener)
mWidgetListener->WindowMoved(this, mBounds.x, mBounds.y);
NotifyWindowMoved(mBounds.x, mBounds.y);
}
void nsChildView::ReportSizeEvent()

View File

@ -1721,8 +1721,7 @@ nsCocoaWindow::ReportMoveEvent()
UpdateBounds();
// Dispatch the move event to Gecko
if (mWidgetListener)
mWidgetListener->WindowMoved(this, mBounds.x, mBounds.y);
NotifyWindowMoved(mBounds.x, mBounds.y);
mInReportMoveEvent = false;

View File

@ -2368,8 +2368,7 @@ nsWindow::OnConfigureEvent(GtkWidget *aWidget, GdkEventConfigure *aEvent)
// XXX mozilla will invalidate the entire window after this move
// complete. wtf?
if (mWidgetListener)
mWidgetListener->WindowMoved(this, mBounds.x, mBounds.y);
NotifyWindowMoved(mBounds.x, mBounds.y);
return FALSE;
}

View File

@ -872,8 +872,8 @@ nsWindow::moveEvent(QMoveEvent* aEvent)
return nsEventStatus_eIgnore;
}
bool moved = mWidgetListener->WindowMoved(this, aEvent->pos().x(), aEvent->pos().y());
return moved ? nsEventStatus_eConsumeNoDefault : nsEventStatus_eIgnore;
NotifyWindowMoved(aEvent->pos().x(), aEvent->pos().y());
return nsEventStatus_eConsumeNoDefault;
}
nsEventStatus

View File

@ -5798,10 +5798,10 @@ void nsWindow::OnWindowPosChanged(WINDOWPOS* wp)
break;
case nsSizeMode_Maximized:
PR_LOG(gWindowsLog, PR_LOG_ALWAYS,
("*** mSizeMode: nsSizeMode_Maximized\n");
("*** mSizeMode: nsSizeMode_Maximized\n"));
break;
default:
PR_LOG(gWindowsLog, PR_LOG_ALWAYS, ("*** mSizeMode: ??????\n");
PR_LOG(gWindowsLog, PR_LOG_ALWAYS, ("*** mSizeMode: ??????\n"));
break;
};
#endif
@ -5825,9 +5825,7 @@ void nsWindow::OnWindowPosChanged(WINDOWPOS* wp)
mBounds.x = wp->x;
mBounds.y = wp->y;
if (mWidgetListener) {
mWidgetListener->WindowMoved(this, wp->x, wp->y);
}
NotifyWindowMoved(wp->x, wp->y);
}
// Handle window size changes

View File

@ -1484,9 +1484,7 @@ MetroWidget::Activated(bool aActiveated)
NS_IMETHODIMP
MetroWidget::Move(double aX, double aY)
{
if (mWidgetListener) {
mWidgetListener->WindowMoved(this, aX, aY);
}
NotifyWindowMoved(aX, aY);
return NS_OK;
}

View File

@ -1471,6 +1471,18 @@ nsBaseWidget::NotifySizeMoveDone()
}
}
void
nsBaseWidget::NotifyWindowMoved(int32_t aX, int32_t aY)
{
if (mWidgetListener) {
mWidgetListener->WindowMoved(this, aX, aY);
}
if (GetIMEUpdatePreference().WantPositionChanged()) {
NotifyIME(IMENotification(IMEMessage::NOTIFY_IME_OF_POSITION_CHANGE));
}
}
void
nsBaseWidget::NotifySysColorChanged()
{

View File

@ -210,6 +210,7 @@ public:
void NotifyWindowDestroyed();
void NotifySizeMoveDone();
void NotifyWindowMoved(int32_t aX, int32_t aY);
// Should be called by derived implementations to notify on system color and
// theme changes.