diff --git a/mozilla/extensions/xmlterm/base/mozXMLTerminal.cpp b/mozilla/extensions/xmlterm/base/mozXMLTerminal.cpp index 3a32e453cc0..b21be4795f4 100644 --- a/mozilla/extensions/xmlterm/base/mozXMLTerminal.cpp +++ b/mozilla/extensions/xmlterm/base/mozXMLTerminal.cpp @@ -52,6 +52,7 @@ #include "nsFont.h" #include "nsIFontMetrics.h" +#include "nsILookAndFeel.h" #include "mozXMLT.h" #include "mozXMLTermUtils.h" @@ -67,6 +68,7 @@ static NS_DEFINE_IID(kXMLTerminalCID, MOZXMLTERMINAL_CID); static NS_DEFINE_CID(kCClipboardCID, NS_CLIPBOARD_CID); static NS_DEFINE_CID(kCTransferableCID, NS_TRANSFERABLE_CID); +static NS_DEFINE_CID(kLookAndFeelCID, NS_LOOKANDFEEL_CID); ///////////////////////////////////////////////////////////////////////// // mozXMLTerminal factory @@ -715,20 +717,37 @@ NS_IMETHODIMP mozXMLTerminal::ShowCaret(void) if (!mPresShell) return NS_ERROR_FAILURE; - //mPresShell->SetCaretEnabled(PR_TRUE); + nsCOMPtr selCon = do_QueryInterface(mPresShell); + + if (!selCon) { + return NS_ERROR_FAILURE; + XMLT_WARNING("mozXMLTerminal::ShowCaret: Warning - Failed to get SelectionController\n"); + } + + PRInt32 pixelWidth; + nsresult result; + + NS_WITH_SERVICE(nsILookAndFeel, look, kLookAndFeelCID, &result); + + if (NS_SUCCEEDED(result) && look) { + look->GetMetric(nsILookAndFeel::eMetric_SingleLineCaretWidth, pixelWidth); + + selCon->SetCaretWidth(pixelWidth); + } + + selCon->SetCaretEnabled(PR_TRUE); + selCon->SetCaretReadOnly(PR_FALSE); nsCOMPtr caret; if (NS_SUCCEEDED(mPresShell->GetCaret(getter_AddRefs(caret)))) { - nsCOMPtr selCon = do_QueryInterface(mPresShell); - if (selCon) - { - nsCOMPtr sel; - if (NS_SUCCEEDED(selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(sel))) && sel) - { - caret->SetCaretDOMSelection(sel); - caret->SetCaretVisible(PR_TRUE); - caret->SetCaretReadOnly(PR_FALSE); - } + + caret->SetCaretVisible(PR_TRUE); + caret->SetCaretReadOnly(PR_FALSE); + + nsCOMPtr sel; + + if (NS_SUCCEEDED(selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(sel))) && sel) { + caret->SetCaretDOMSelection(sel); } } diff --git a/mozilla/extensions/xmlterm/jar.mn b/mozilla/extensions/xmlterm/jar.mn index 7dd4643baef..cf8fa934761 100644 --- a/mozilla/extensions/xmlterm/jar.mn +++ b/mozilla/extensions/xmlterm/jar.mn @@ -1,15 +1,17 @@ packages/xmlterm.jar: - xmlterm/content/xmlterm.xul (xul/content/xmlterm.xul) - xmlterm/content/XMLTermOverlay.xul (xul/contentXMLTermOverlay.xul) - xmlterm/content/XMLTermChrome.js (xul/contentXMLTermChrome.js) - xmlterm/content/XMLTermCommands.js (xul/contentXMLTermCommands.js) - xmlterm/content/XMLTermOverlay.js (xul/contentXMLTermOverlay.js) - xmlterm/content/xmlterm.html (xul/content/xmlterm.html) - xmlterm/content/xmltermAbout.html (xul/content/xmltermAbout.html) - xmlterm/content/xmltermTips.html (xul/content/xmltermTips.html) + xmlterm/content/xmlterm.xul (ui/content/xmlterm.xul) + xmlterm/content/xmltermOverlay.xul (ui/content/xmltermOverlay.xul) + xmlterm/content/xmltermOverlay.js (ui/content/xmltermOverlay.js) + xmlterm/content/xmlterm.html (ui/content/xmlterm.html) + xmlterm/content/xmltermAbout.html (ui/content/xmltermAbout.html) + xmlterm/content/xmltermTips.html (ui/content/xmltermTips.html) + xmlterm/content/XMLTermChrome.js (ui/contentXMLTermChrome.js) + xmlterm/content/XMLTermCommands.js (ui/contentXMLTermCommands.js) - xmlterm/skin/xmlterm.css (xul/skin/xmlterm.css) - xmlterm/skin/xmltpage.css (xul/skin/xmltpage.css) - xmlterm/skin/wheel.gif (xul/skin/wheel.gif) + xmlterm/skin/xmlterm.css (ui/skin/xmlterm.css) + xmlterm/skin/xmltpage.css (ui/skin/xmltpage.css) + xmlterm/skin/wheel.gif (ui/skin/wheel.gif) - manifest.rdf (xul/manifest.rdf) + xmlterm/locale/xmltermOverlay.dtd (ui/locale/en-US/xmltermOverlay.dtd) + + manifest.rdf (ui/manifest.rdf) diff --git a/mozilla/extensions/xmlterm/ui/Makefile.in b/mozilla/extensions/xmlterm/ui/Makefile.in index a07d4f67b6d..8308623a49e 100644 --- a/mozilla/extensions/xmlterm/ui/Makefile.in +++ b/mozilla/extensions/xmlterm/ui/Makefile.in @@ -39,11 +39,11 @@ VPATH = @srcdir@ srcdir = @srcdir@ include $(DEPTH)/config/autoconf.mk -DIRS = content skin +DIRS = content skin locale CHROME_DIR = packages/xmlterm -CHROME_TYPE = content skin +CHROME_TYPE = content skin locale CHROME_MISC_DIR = . CHROME_MISC = \ manifest.rdf \ diff --git a/mozilla/extensions/xmlterm/ui/manifest.rdf b/mozilla/extensions/xmlterm/ui/manifest.rdf index ceed20bde1e..6649052e745 100644 --- a/mozilla/extensions/xmlterm/ui/manifest.rdf +++ b/mozilla/extensions/xmlterm/ui/manifest.rdf @@ -9,6 +9,9 @@ + + + chrome://xmlterm/content/xmltermOverlay.xul + + + + + + + + + +