зеркало из https://github.com/mozilla/gecko-dev.git
Bug 591047 - (3/7) Adding e10s IME supporting code to widget; r=cjones sr=roc a=blocking-fennec
This commit is contained in:
Родитель
221df8b098
Коммит
b313a68fed
|
@ -117,10 +117,10 @@ typedef nsEventStatus (* EVENT_CALLBACK)(nsGUIEvent *event);
|
||||||
#define NS_NATIVE_TSF_DISPLAY_ATTR_MGR 102
|
#define NS_NATIVE_TSF_DISPLAY_ATTR_MGR 102
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 36762512-d533-4884-9ac3-4ada8594146c
|
// 8bd36c8c-8218-4859-bfbc-ca5d78b52f7d
|
||||||
#define NS_IWIDGET_IID \
|
#define NS_IWIDGET_IID \
|
||||||
{ 0x36762512, 0xd533, 0x4884, \
|
{ 0x8bd36c8c, 0x8218, 0x4859, \
|
||||||
{ 0x9a, 0xc3, 0x4a, 0xda, 0x85, 0x94, 0x14, 0x6c } }
|
{ 0xbf, 0xbc, 0xca, 0x5d, 0x78, 0xb5, 0x2f, 0x7d } }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Window shadow styles
|
* Window shadow styles
|
||||||
|
@ -189,6 +189,38 @@ enum nsTopLevelWidgetZPlacement { // for PlaceBehind()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Preference for receiving IME updates
|
||||||
|
*
|
||||||
|
* If mWantUpdates is true, PuppetWidget will forward
|
||||||
|
* nsIWidget::OnIMETextChange and nsIWidget::OnIMESelectionChange to the chrome
|
||||||
|
* process. This incurs overhead from observers and IPDL. If the IME
|
||||||
|
* implementation on a particular platform doesn't care about OnIMETextChange
|
||||||
|
* and OnIMESelectionChange from content processes, they should set
|
||||||
|
* mWantUpdates to false to avoid these overheads.
|
||||||
|
*
|
||||||
|
* If mWantHints is true, PuppetWidget will forward the content of text fields
|
||||||
|
* to the chrome process to be cached. This way we return the cached content
|
||||||
|
* during query events. (see comments in bug 583976). This only makes sense
|
||||||
|
* for IME implementations that do use query events, otherwise there's a
|
||||||
|
* significant overhead. Platforms that don't use query events should set
|
||||||
|
* mWantHints to false.
|
||||||
|
*/
|
||||||
|
struct nsIMEUpdatePreference {
|
||||||
|
|
||||||
|
nsIMEUpdatePreference()
|
||||||
|
: mWantUpdates(PR_FALSE), mWantHints(PR_FALSE)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
nsIMEUpdatePreference(PRBool aWantUpdates, PRBool aWantHints)
|
||||||
|
: mWantUpdates(aWantUpdates), mWantHints(aWantHints)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
PRPackedBool mWantUpdates;
|
||||||
|
PRPackedBool mWantHints;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The base class for all the widgets. It provides the interface for
|
* The base class for all the widgets. It provides the interface for
|
||||||
* all basic and necessary functionality.
|
* all basic and necessary functionality.
|
||||||
|
@ -1220,6 +1252,11 @@ class nsIWidget : public nsISupports {
|
||||||
*/
|
*/
|
||||||
NS_IMETHOD OnIMESelectionChange(void) = 0;
|
NS_IMETHOD OnIMESelectionChange(void) = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Retrieves preference for IME updates
|
||||||
|
*/
|
||||||
|
virtual nsIMEUpdatePreference GetIMEUpdatePreference() = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Call this method when a dialog is opened which has a default button.
|
* Call this method when a dialog is opened which has a default button.
|
||||||
* The button's rectangle should be supplied in aButtonRect.
|
* The button's rectangle should be supplied in aButtonRect.
|
||||||
|
|
|
@ -1692,3 +1692,9 @@ nsWindow::OnIMESelectionChange(void)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsIMEUpdatePreference
|
||||||
|
nsWindow::GetIMEUpdatePreference()
|
||||||
|
{
|
||||||
|
return nsIMEUpdatePreference(PR_TRUE, PR_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -159,6 +159,7 @@ public:
|
||||||
NS_IMETHOD OnIMEFocusChange(PRBool aFocus);
|
NS_IMETHOD OnIMEFocusChange(PRBool aFocus);
|
||||||
NS_IMETHOD OnIMETextChange(PRUint32 aStart, PRUint32 aOldEnd, PRUint32 aNewEnd);
|
NS_IMETHOD OnIMETextChange(PRUint32 aStart, PRUint32 aOldEnd, PRUint32 aNewEnd);
|
||||||
NS_IMETHOD OnIMESelectionChange(void);
|
NS_IMETHOD OnIMESelectionChange(void);
|
||||||
|
virtual nsIMEUpdatePreference GetIMEUpdatePreference();
|
||||||
|
|
||||||
LayerManager* GetLayerManager();
|
LayerManager* GetLayerManager();
|
||||||
gfxASurface* GetThebesSurface();
|
gfxASurface* GetThebesSurface();
|
||||||
|
|
|
@ -151,6 +151,7 @@ public:
|
||||||
NS_IMETHOD OnIMEFocusChange(PRBool aFocus) { return NS_ERROR_NOT_IMPLEMENTED; }
|
NS_IMETHOD OnIMEFocusChange(PRBool aFocus) { return NS_ERROR_NOT_IMPLEMENTED; }
|
||||||
NS_IMETHOD OnIMETextChange(PRUint32 aStart, PRUint32 aOldEnd, PRUint32 aNewEnd) { return NS_ERROR_NOT_IMPLEMENTED; }
|
NS_IMETHOD OnIMETextChange(PRUint32 aStart, PRUint32 aOldEnd, PRUint32 aNewEnd) { return NS_ERROR_NOT_IMPLEMENTED; }
|
||||||
NS_IMETHOD OnIMESelectionChange(void) { return NS_ERROR_NOT_IMPLEMENTED; }
|
NS_IMETHOD OnIMESelectionChange(void) { return NS_ERROR_NOT_IMPLEMENTED; }
|
||||||
|
virtual nsIMEUpdatePreference GetIMEUpdatePreference() { return nsIMEUpdatePreference(PR_FALSE, PR_FALSE); }
|
||||||
NS_IMETHOD OnDefaultButtonLoaded(const nsIntRect &aButtonRect) { return NS_ERROR_NOT_IMPLEMENTED; }
|
NS_IMETHOD OnDefaultButtonLoaded(const nsIntRect &aButtonRect) { return NS_ERROR_NOT_IMPLEMENTED; }
|
||||||
NS_IMETHOD OverrideSystemMouseScrollSpeed(PRInt32 aOriginalDelta, PRBool aIsHorizontal, PRInt32 &aOverriddenDelta);
|
NS_IMETHOD OverrideSystemMouseScrollSpeed(PRInt32 aOriginalDelta, PRBool aIsHorizontal, PRInt32 &aOverriddenDelta);
|
||||||
virtual already_AddRefed<nsIWidget>
|
virtual already_AddRefed<nsIWidget>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче