зеркало из https://github.com/mozilla/pjs.git
bs=7868 r=saari Adding in new api to bake on trunk before going to branch. this adds nsISelectionDisplay to nsISelectionController. SetDisplayFlags are how we now set if you want images selected or not
This commit is contained in:
Родитель
31ce82673c
Коммит
9b25533dc1
|
@ -55,6 +55,8 @@ REQUIRES = xpcom \
|
|||
xul \
|
||||
xuldoc \
|
||||
xultmpl \
|
||||
timer \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -53,6 +53,7 @@ REQUIRES = xpcom \
|
|||
gfx \
|
||||
layout_xul \
|
||||
content_xul \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
LCFLAGS = \
|
||||
|
|
|
@ -44,6 +44,7 @@ REQUIRES = xpcom \
|
|||
htmlparser \
|
||||
view \
|
||||
necko \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ REQUIRES = xpcom \
|
|||
layout \
|
||||
layout_xul \
|
||||
necko \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@ REQUIRES = xpcom \
|
|||
imglib2 \
|
||||
xpconnect \
|
||||
unicharutil \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -52,6 +52,7 @@ REQUIRES = xpcom \
|
|||
layout \
|
||||
gfx \
|
||||
bookmarks \
|
||||
webBrowser_core\
|
||||
$(NULL)
|
||||
|
||||
DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN
|
||||
|
|
|
@ -52,6 +52,7 @@ REQUIRES = xpcom \
|
|||
rdf \
|
||||
imglib2 \
|
||||
unicharutil \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -46,6 +46,7 @@ REQUIRES = xpcom \
|
|||
rdf \
|
||||
content_xul \
|
||||
unicharutil \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN
|
||||
|
|
|
@ -63,6 +63,8 @@
|
|||
#include "nsIXBLService.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsISelectionController.h"
|
||||
|
||||
#ifdef INCLUDE_XUL
|
||||
#include "nsXULAtoms.h"
|
||||
#endif
|
||||
|
@ -240,9 +242,9 @@ nsXBLWindowHandler :: IsEditor()
|
|||
docShell->GetPresShell(getter_AddRefs(presShell));
|
||||
|
||||
if (presShell) {
|
||||
PRBool isEditor;
|
||||
presShell->GetDisplayNonTextSelection(&isEditor);
|
||||
return isEditor;
|
||||
PRInt16 isEditor;
|
||||
presShell->GetSelectionFlags(&isEditor);
|
||||
return isEditor == nsISelectionDisplay::DISPLAY_ALL;
|
||||
}
|
||||
|
||||
return PR_FALSE;
|
||||
|
|
|
@ -53,6 +53,7 @@ REQUIRES = xpcom \
|
|||
xul \
|
||||
xultmpl \
|
||||
webshell \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -47,6 +47,7 @@ REQUIRES = xpcom \
|
|||
layout_xul \
|
||||
content \
|
||||
webshell \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ REQUIRES = xpcom \
|
|||
mimetype \
|
||||
imglib2 \
|
||||
gfx2 \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ REQUIRES = xpcom \
|
|||
content_xul \
|
||||
imglib2 \
|
||||
gfx2 \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ REQUIRES = xpcom \
|
|||
gfx \
|
||||
widget \
|
||||
xuldoc \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
# Internal header files, needed by other editor sublibs:
|
||||
|
|
|
@ -38,6 +38,7 @@ REQUIRES = xpcom \
|
|||
appshell \
|
||||
gfx \
|
||||
widget \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPP_OBJS = \
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "pratom.h"
|
||||
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsIPref.h"
|
||||
|
||||
|
@ -108,6 +107,7 @@
|
|||
|
||||
#include "nsEditor.h"
|
||||
#include "nsEditorUtils.h"
|
||||
#include "nsISelectionDisplay.h"
|
||||
|
||||
#ifdef HACK_FORCE_REDRAW
|
||||
// INCLUDES FOR EVIL HACK TO FOR REDRAW
|
||||
|
@ -319,7 +319,7 @@ nsEditor::Init(nsIDOMDocument *aDoc, nsIPresShell* aPresShell, nsIContent *aRoot
|
|||
aSelCon->SetCaretReadOnly(PR_FALSE);
|
||||
aSelCon->SetDisplaySelection(nsISelectionController::SELECTION_ON);
|
||||
|
||||
aSelCon->SetDisplayNonTextSelection(PR_TRUE);//we want to see all the selection reflected to user
|
||||
aSelCon->SetSelectionFlags(nsISelectionDisplay::DISPLAY_ALL);//we want to see all the selection reflected to user
|
||||
|
||||
// Set the selection to the beginning:
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ REQUIRES = xpcom \
|
|||
pref \
|
||||
gfx \
|
||||
widget \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
# Building the full blown HTML Editor so add its source files and objects:
|
||||
|
|
|
@ -36,6 +36,7 @@ REQUIRES = xpcom \
|
|||
pref \
|
||||
gfx \
|
||||
widget \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPP_OBJS = \
|
||||
|
|
|
@ -44,7 +44,8 @@ REQUIRES = xpcom \
|
|||
lwbrk \
|
||||
gfx \
|
||||
widget \
|
||||
unicharutil \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -37,6 +37,7 @@ REQUIRES = xpcom \
|
|||
lwbrk \
|
||||
gfx \
|
||||
widget \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ REQUIRES = xpcom \
|
|||
content \
|
||||
dom \
|
||||
widget \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ REQUIRES = xpcom \
|
|||
dom \
|
||||
widget \
|
||||
gfx \
|
||||
webBrowser_core \
|
||||
unicharutil \
|
||||
$(NULL)
|
||||
LIBRARY_NAME=txtsvc
|
||||
|
|
|
@ -738,6 +738,13 @@
|
|||
<FILEKIND>Text</FILEKIND>
|
||||
<FILEFLAGS></FILEFLAGS>
|
||||
</FILE>
|
||||
<FILE>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsISelectionDisplay.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
<FILEKIND>Text</FILEKIND>
|
||||
<FILEFLAGS></FILEFLAGS>
|
||||
</FILE>
|
||||
<FILE>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsIContextMenuListener.idl</PATH>
|
||||
|
@ -821,6 +828,11 @@
|
|||
<PATH>nsICommandHandler.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
</FILEREF>
|
||||
<FILEREF>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsISelectionDisplay.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
</FILEREF>
|
||||
<FILEREF>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsIContextMenuListener.idl</PATH>
|
||||
|
@ -1543,6 +1555,13 @@
|
|||
<FILEKIND>Text</FILEKIND>
|
||||
<FILEFLAGS></FILEFLAGS>
|
||||
</FILE>
|
||||
<FILE>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsISelectionDisplay.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
<FILEKIND>Text</FILEKIND>
|
||||
<FILEFLAGS></FILEFLAGS>
|
||||
</FILE>
|
||||
<FILE>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsIContextMenuListener.idl</PATH>
|
||||
|
@ -1621,6 +1640,11 @@
|
|||
<PATH>nsICommandHandler.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
</FILEREF>
|
||||
<FILEREF>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsISelectionDisplay.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
</FILEREF>
|
||||
<FILEREF>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsIContextMenuListener.idl</PATH>
|
||||
|
@ -1683,6 +1707,12 @@
|
|||
<PATH>nsICommandHandler.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
</FILEREF>
|
||||
<FILEREF>
|
||||
<TARGETNAME>embeddingbrowser.xpt</TARGETNAME>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
<PATH>nsISelectionDisplay.idl</PATH>
|
||||
<PATHFORMAT>MacOS</PATHFORMAT>
|
||||
</FILEREF>
|
||||
<FILEREF>
|
||||
<TARGETNAME>embeddingbrowser.xpt</TARGETNAME>
|
||||
<PATHTYPE>Name</PATHTYPE>
|
||||
|
|
|
@ -65,6 +65,7 @@ XPIDLSRCS = \
|
|||
nsITooltipTextProvider.idl \
|
||||
nsIWebBrowserFocus.idl \
|
||||
nsIWebBrowserPrint.idl \
|
||||
nsISelectionDisplay.idl\
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -58,6 +58,7 @@ XPIDLSRCS= \
|
|||
.\nsIEmbeddingSiteWindow.idl \
|
||||
.\nsIWebBrowserFocus.idl \
|
||||
.\nsIWebBrowserPrint.idl \
|
||||
.\nsISelectionDisplay.idl \
|
||||
$(NULL)
|
||||
|
||||
LIBRARY_NAME=nsWebBrowser_s
|
||||
|
|
|
@ -445,7 +445,7 @@ public:
|
|||
* if PR_FALSE visual selection effects are disabled
|
||||
* @return always NS_OK
|
||||
*/
|
||||
NS_IMETHOD SetDisplayNonTextSelection(PRBool aInEnable) = 0;
|
||||
NS_IMETHOD SetSelectionFlags(PRInt16 aInEnable) = 0;
|
||||
|
||||
/**
|
||||
* Gets the current state of non text selection effects
|
||||
|
@ -454,7 +454,7 @@ public:
|
|||
* @return if aOutEnabled==null, returns NS_ERROR_INVALID_ARG
|
||||
* else NS_OK
|
||||
*/
|
||||
NS_IMETHOD GetDisplayNonTextSelection(PRBool *aOutEnabled) = 0;
|
||||
NS_IMETHOD GetSelectionFlags(PRInt16 *aOutEnabled) = 0;
|
||||
|
||||
/**
|
||||
* Interface to dispatch events via the presshell
|
||||
|
|
|
@ -1001,8 +1001,8 @@ public:
|
|||
NS_IMETHOD SetCaretReadOnly(PRBool aReadOnly);
|
||||
NS_IMETHOD GetCaretEnabled(PRBool *aOutEnabled);
|
||||
|
||||
NS_IMETHOD SetDisplayNonTextSelection(PRBool aInEnable);
|
||||
NS_IMETHOD GetDisplayNonTextSelection(PRBool *aOutEnable);
|
||||
NS_IMETHOD SetSelectionFlags(PRInt16 aInEnable);
|
||||
NS_IMETHOD GetSelectionFlags(PRInt16 *aOutEnable);
|
||||
|
||||
// nsISelectionController
|
||||
|
||||
|
@ -3057,13 +3057,13 @@ NS_IMETHODIMP PresShell::GetCaretEnabled(PRBool *aOutEnabled)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP PresShell::SetDisplayNonTextSelection(PRBool aInEnable)
|
||||
NS_IMETHODIMP PresShell::SetSelectionFlags(PRInt16 aInEnable)
|
||||
{
|
||||
mDisplayNonTextSelection = PR_TRUE;
|
||||
mDisplayNonTextSelection = aInEnable;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP PresShell::GetDisplayNonTextSelection(PRBool *aOutEnable)
|
||||
NS_IMETHODIMP PresShell::GetSelectionFlags(PRInt16 *aOutEnable)
|
||||
{
|
||||
if (!aOutEnable)
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
|
|
|
@ -445,7 +445,7 @@ public:
|
|||
* if PR_FALSE visual selection effects are disabled
|
||||
* @return always NS_OK
|
||||
*/
|
||||
NS_IMETHOD SetDisplayNonTextSelection(PRBool aInEnable) = 0;
|
||||
NS_IMETHOD SetSelectionFlags(PRInt16 aInEnable) = 0;
|
||||
|
||||
/**
|
||||
* Gets the current state of non text selection effects
|
||||
|
@ -454,7 +454,7 @@ public:
|
|||
* @return if aOutEnabled==null, returns NS_ERROR_INVALID_ARG
|
||||
* else NS_OK
|
||||
*/
|
||||
NS_IMETHOD GetDisplayNonTextSelection(PRBool *aOutEnabled) = 0;
|
||||
NS_IMETHOD GetSelectionFlags(PRInt16 *aOutEnabled) = 0;
|
||||
|
||||
/**
|
||||
* Interface to dispatch events via the presshell
|
||||
|
|
|
@ -46,6 +46,7 @@ REQUIRES = xpcom \
|
|||
docshell \
|
||||
imglib2 \
|
||||
gfx2 \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -38,6 +38,8 @@ REQUIRES = xpcom \
|
|||
imglib2 \
|
||||
gfx2 \
|
||||
content \
|
||||
gfx \
|
||||
webBrowser_core \
|
||||
gfx \
|
||||
$(NULL)
|
||||
|
||||
|
|
|
@ -611,12 +611,15 @@ nsFrame::Paint(nsIPresContext* aPresContext,
|
|||
if (NS_FAILED(result))
|
||||
return result;
|
||||
|
||||
PRBool displaySelection = PR_TRUE;
|
||||
result = shell->GetDisplayNonTextSelection(&displaySelection);
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
if (!displaySelection)
|
||||
return NS_OK;
|
||||
PRInt16 displaySelection = nsISelectionDisplay::DISPLAY_ALL;
|
||||
if (aFlags != nsISelectionDisplay::DISPLAY_IMAGES)
|
||||
{
|
||||
result = shell->GetSelectionFlags(&displaySelection);
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
if (!(displaySelection == nsISelectionDisplay::DISPLAY_FRAMES))
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//check frame selection state
|
||||
PRBool isSelected;
|
||||
|
@ -987,8 +990,11 @@ nsFrame::HandlePress(nsIPresContext* aPresContext,
|
|||
// if we are in Navigator and the click is in a link, we don't want to start
|
||||
// selection because we don't want to interfere with a potential drag of said
|
||||
// link and steal all its glory.
|
||||
PRBool isEditor = PR_FALSE;
|
||||
shell->GetDisplayNonTextSelection ( &isEditor );
|
||||
PRInt16 isEditor = 0;
|
||||
shell->GetSelectionFlags ( &isEditor );
|
||||
//weaaak. only the editor can display frame selction not just text and images
|
||||
isEditor = isEditor == nsISelectionDisplay::DISPLAY_ALL;
|
||||
|
||||
nsKeyEvent* keyEvent = (nsKeyEvent*)aEvent;
|
||||
if (!isEditor && !keyEvent->isAlt) {
|
||||
nsCOMPtr<nsIContent> content;
|
||||
|
@ -2878,12 +2884,13 @@ nsFrame::GetNextPrevLineFromeBlockFrame(nsIPresContext* aPresContext,
|
|||
|
||||
//special check. if we allow non-text selection then we can allow a hit location to fall before a table.
|
||||
//otherwise there is no way to get and click signal to fall before a table (it being a line iterator itself)
|
||||
PRBool isEditor = PR_FALSE;
|
||||
PRInt16 isEditor = 0;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
aPresContext->GetShell(getter_AddRefs(shell));
|
||||
if (!shell)
|
||||
return NS_ERROR_FAILURE;
|
||||
shell->GetDisplayNonTextSelection ( &isEditor );
|
||||
shell->GetSelectionFlags ( &isEditor );
|
||||
isEditor = isEditor == nsISelectionDisplay::DISPLAY_ALL;
|
||||
if ( isEditor )
|
||||
{
|
||||
nsIAtom *resultFrameType;
|
||||
|
|
|
@ -1342,6 +1342,18 @@ nsImageFrame::Paint(nsIPresContext* aPresContext,
|
|||
}
|
||||
|
||||
}
|
||||
PRInt16 displaySelection = 0;
|
||||
|
||||
nsresult result;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
result = aPresContext->GetShell(getter_AddRefs(shell));
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
result = shell->GetSelectionFlags(&displaySelection);
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
if (!(displaySelection & nsISelectionDisplay::DISPLAY_IMAGES))
|
||||
return NS_OK;//no need to check the blue border, we cannot be drawn selected
|
||||
|
||||
return nsFrame::Paint(aPresContext, aRenderingContext, aDirtyRect, aWhichLayer);
|
||||
}
|
||||
|
|
|
@ -2011,6 +2011,10 @@ nsresult nsTextFrame::GetTextInfoForPainting(nsIPresContext* aPresConte
|
|||
aDisplayingSelection = (aSelectionValue > nsISelectionController::SELECTION_HIDDEN);
|
||||
}
|
||||
|
||||
PRInt16 textSel=0;
|
||||
(*aSelectionController)->GetSelectionFlags(&textSel);
|
||||
if (!(textSel & nsISelectionDisplay::DISPLAY_TEXT))
|
||||
aDisplayingSelection = false;
|
||||
|
||||
// Transform text from content into renderable form
|
||||
// XXX If the text fragment is already Unicode and text text wasn't
|
||||
|
|
|
@ -611,12 +611,15 @@ nsFrame::Paint(nsIPresContext* aPresContext,
|
|||
if (NS_FAILED(result))
|
||||
return result;
|
||||
|
||||
PRBool displaySelection = PR_TRUE;
|
||||
result = shell->GetDisplayNonTextSelection(&displaySelection);
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
if (!displaySelection)
|
||||
return NS_OK;
|
||||
PRInt16 displaySelection = nsISelectionDisplay::DISPLAY_ALL;
|
||||
if (aFlags != nsISelectionDisplay::DISPLAY_IMAGES)
|
||||
{
|
||||
result = shell->GetSelectionFlags(&displaySelection);
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
if (!(displaySelection == nsISelectionDisplay::DISPLAY_FRAMES))
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//check frame selection state
|
||||
PRBool isSelected;
|
||||
|
@ -987,8 +990,11 @@ nsFrame::HandlePress(nsIPresContext* aPresContext,
|
|||
// if we are in Navigator and the click is in a link, we don't want to start
|
||||
// selection because we don't want to interfere with a potential drag of said
|
||||
// link and steal all its glory.
|
||||
PRBool isEditor = PR_FALSE;
|
||||
shell->GetDisplayNonTextSelection ( &isEditor );
|
||||
PRInt16 isEditor = 0;
|
||||
shell->GetSelectionFlags ( &isEditor );
|
||||
//weaaak. only the editor can display frame selction not just text and images
|
||||
isEditor = isEditor == nsISelectionDisplay::DISPLAY_ALL;
|
||||
|
||||
nsKeyEvent* keyEvent = (nsKeyEvent*)aEvent;
|
||||
if (!isEditor && !keyEvent->isAlt) {
|
||||
nsCOMPtr<nsIContent> content;
|
||||
|
@ -2878,12 +2884,13 @@ nsFrame::GetNextPrevLineFromeBlockFrame(nsIPresContext* aPresContext,
|
|||
|
||||
//special check. if we allow non-text selection then we can allow a hit location to fall before a table.
|
||||
//otherwise there is no way to get and click signal to fall before a table (it being a line iterator itself)
|
||||
PRBool isEditor = PR_FALSE;
|
||||
PRInt16 isEditor = 0;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
aPresContext->GetShell(getter_AddRefs(shell));
|
||||
if (!shell)
|
||||
return NS_ERROR_FAILURE;
|
||||
shell->GetDisplayNonTextSelection ( &isEditor );
|
||||
shell->GetSelectionFlags ( &isEditor );
|
||||
isEditor = isEditor == nsISelectionDisplay::DISPLAY_ALL;
|
||||
if ( isEditor )
|
||||
{
|
||||
nsIAtom *resultFrameType;
|
||||
|
|
|
@ -1342,6 +1342,18 @@ nsImageFrame::Paint(nsIPresContext* aPresContext,
|
|||
}
|
||||
|
||||
}
|
||||
PRInt16 displaySelection = 0;
|
||||
|
||||
nsresult result;
|
||||
nsCOMPtr<nsIPresShell> shell;
|
||||
result = aPresContext->GetShell(getter_AddRefs(shell));
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
result = shell->GetSelectionFlags(&displaySelection);
|
||||
if (NS_FAILED(result))
|
||||
return result;
|
||||
if (!(displaySelection & nsISelectionDisplay::DISPLAY_IMAGES))
|
||||
return NS_OK;//no need to check the blue border, we cannot be drawn selected
|
||||
|
||||
return nsFrame::Paint(aPresContext, aRenderingContext, aDirtyRect, aWhichLayer);
|
||||
}
|
||||
|
|
|
@ -1001,8 +1001,8 @@ public:
|
|||
NS_IMETHOD SetCaretReadOnly(PRBool aReadOnly);
|
||||
NS_IMETHOD GetCaretEnabled(PRBool *aOutEnabled);
|
||||
|
||||
NS_IMETHOD SetDisplayNonTextSelection(PRBool aInEnable);
|
||||
NS_IMETHOD GetDisplayNonTextSelection(PRBool *aOutEnable);
|
||||
NS_IMETHOD SetSelectionFlags(PRInt16 aInEnable);
|
||||
NS_IMETHOD GetSelectionFlags(PRInt16 *aOutEnable);
|
||||
|
||||
// nsISelectionController
|
||||
|
||||
|
@ -3057,13 +3057,13 @@ NS_IMETHODIMP PresShell::GetCaretEnabled(PRBool *aOutEnabled)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP PresShell::SetDisplayNonTextSelection(PRBool aInEnable)
|
||||
NS_IMETHODIMP PresShell::SetSelectionFlags(PRInt16 aInEnable)
|
||||
{
|
||||
mDisplayNonTextSelection = PR_TRUE;
|
||||
mDisplayNonTextSelection = aInEnable;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP PresShell::GetDisplayNonTextSelection(PRBool *aOutEnable)
|
||||
NS_IMETHODIMP PresShell::GetSelectionFlags(PRInt16 *aOutEnable)
|
||||
{
|
||||
if (!aOutEnable)
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
|
|
|
@ -2011,6 +2011,10 @@ nsresult nsTextFrame::GetTextInfoForPainting(nsIPresContext* aPresConte
|
|||
aDisplayingSelection = (aSelectionValue > nsISelectionController::SELECTION_HIDDEN);
|
||||
}
|
||||
|
||||
PRInt16 textSel=0;
|
||||
(*aSelectionController)->GetSelectionFlags(&textSel);
|
||||
if (!(textSel & nsISelectionDisplay::DISPLAY_TEXT))
|
||||
aDisplayingSelection = false;
|
||||
|
||||
// Transform text from content into renderable form
|
||||
// XXX If the text fragment is already Unicode and text text wasn't
|
||||
|
|
|
@ -46,6 +46,7 @@ REQUIRES = xpcom \
|
|||
shistory \
|
||||
xpconnect \
|
||||
accessibility \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -42,6 +42,7 @@ REQUIRES = xpcom \
|
|||
gfx \
|
||||
content \
|
||||
layout_xul \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN
|
||||
|
|
|
@ -52,6 +52,7 @@ REQUIRES = xpcom \
|
|||
xpconnect \
|
||||
unicharutil \
|
||||
pref \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -49,6 +49,7 @@ REQUIRES = xpcom \
|
|||
gfx \
|
||||
content \
|
||||
content_xul \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPP_OBJS= \
|
||||
|
|
|
@ -610,8 +610,8 @@ public:
|
|||
//NSISELECTIONCONTROLLER INTERFACES
|
||||
NS_IMETHOD SetDisplaySelection(PRInt16 toggle);
|
||||
NS_IMETHOD GetDisplaySelection(PRInt16 *_retval);
|
||||
NS_IMETHOD SetDisplayNonTextSelection(PRBool toggle);
|
||||
NS_IMETHOD GetDisplayNonTextSelection(PRBool *_retval);
|
||||
NS_IMETHOD SetSelectionFlags(PRInt16 aInEnable);
|
||||
NS_IMETHOD GetSelectionFlags(PRInt16 *aOutEnable);
|
||||
NS_IMETHOD GetSelection(PRInt16 type, nsISelection **_retval);
|
||||
NS_IMETHOD ScrollSelectionIntoView(PRInt16 type, PRInt16 region);
|
||||
NS_IMETHOD RepaintSelection(PRInt16 type);
|
||||
|
@ -728,13 +728,13 @@ nsTextInputSelectionImpl::GetDisplaySelection(PRInt16 *aToggle)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextInputSelectionImpl::SetDisplayNonTextSelection(PRBool aToggle)
|
||||
nsTextInputSelectionImpl::SetSelectionFlags(PRInt16 aToggle)
|
||||
{
|
||||
return NS_OK;//stub this out. not used in input
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsTextInputSelectionImpl::GetDisplayNonTextSelection(PRBool *aToggle)
|
||||
nsTextInputSelectionImpl::GetSelectionFlags(PRInt16 *aOutEnable)
|
||||
{
|
||||
return NS_OK;//stub this out. not used in input
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ REQUIRES = xpcom \
|
|||
xuldoc \
|
||||
imglib2 \
|
||||
gfx2 \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -44,6 +44,7 @@ REQUIRES = xpcom \
|
|||
!ifdef MOZ_SVG
|
||||
raptor \
|
||||
!endif
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ REQUIRES = xpcom \
|
|||
view \
|
||||
accessibility \
|
||||
necko \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -34,6 +34,7 @@ REQUIRES = xpcom \
|
|||
gfx \
|
||||
content \
|
||||
necko \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ REQUIRES = xpcom \
|
|||
gfx2 \
|
||||
imglib2 \
|
||||
unicharutil \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -36,6 +36,7 @@ REQUIRES = xpcom \
|
|||
locale \
|
||||
view \
|
||||
necko \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -31,6 +31,7 @@ REQUIRES = xpcom \
|
|||
necko \
|
||||
gfx \
|
||||
content \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN
|
||||
|
|
|
@ -45,6 +45,7 @@ REQUIRES = xpcom \
|
|||
gfx \
|
||||
content \
|
||||
layout \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN
|
||||
|
|
|
@ -41,6 +41,7 @@ REQUIRES = xpcom \
|
|||
necko \
|
||||
gfx2 \
|
||||
imglib2 \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -36,6 +36,7 @@ REQUIRES = xpcom \
|
|||
gfx \
|
||||
content \
|
||||
content_xul \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
DEFINES=-D_IMPL_NS_HTML -DWIN32_LEAN_AND_MEAN
|
||||
|
|
|
@ -62,6 +62,7 @@ REQUIRES = xpcom \
|
|||
nkcache \
|
||||
mimetype \
|
||||
windowwatcher \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
|
|
|
@ -55,6 +55,7 @@ REQUIRES = xpcom \
|
|||
mimetype \
|
||||
windowwatcher \
|
||||
content \
|
||||
webBrowser_core \
|
||||
$(NULL)
|
||||
|
||||
include <$(DEPTH)\config\config.mak>
|
||||
|
|
Загрузка…
Ссылка в новой задаче