From 2f9a3d0dcbff408ab010081fbcb1f74d91dfc24d Mon Sep 17 00:00:00 2001 From: Alexander Kurtakov Date: Fri, 18 Mar 2016 09:39:34 +0200 Subject: Bug 489902 - unreadable Ruby hover help and Ruby Documentation view Issue is that AbstractDocumentationView passes COLOR_INFO_BACKGROUND as bg color to HTMLPrinter but the method called has #000000 as foreground color. Fixed by passing both bg and fg colors. Change-Id: I03dddf075403aa594e3b46b812a47f6308e1993b Signed-off-by: Alexander Kurtakov --- .../eclipse/dltk/internal/ui/text/HTMLPrinter.java | 28 +++++++++++++++++++--- .../ui/infoviews/AbstractDocumentationView.java | 7 ++++-- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/HTMLPrinter.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/HTMLPrinter.java index 4fc9d1c..77f3f3f 100644 --- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/HTMLPrinter.java +++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/text/HTMLPrinter.java @@ -1,11 +1,10 @@ /******************************************************************************* - * Copyright (c) 2000, 2007 IBM Corporation and others. + * Copyright (c) 2000, 2016 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * - *******************************************************************************/ package org.eclipse.dltk.internal.ui.text; @@ -92,6 +91,28 @@ public class HTMLPrinter { } } + public static void insertPageProlog(StringBuffer buffer, int position, + RGB bgRGB, RGB fgRGB, String styleSheet) { + + if (bgRGB == null) + insertPageProlog(buffer, position, styleSheet); + else { + StringBuffer pageProlog = new StringBuffer(300); + + pageProlog.append(""); //$NON-NLS-1$ + + appendStyleSheetURL(pageProlog, styleSheet); + + pageProlog.append(""); //$NON-NLS-1$ + + buffer.insert(position, pageProlog.toString()); + } + } + public static void insertStyles(StringBuffer buffer, String[] styles) { if (styles == null || styles.length == 0) return; @@ -167,7 +188,8 @@ public class HTMLPrinter { public static void insertPageProlog(StringBuffer buffer, int position, String styleSheet) { - insertPageProlog(buffer, position, HTMLUtils.getBgColor(), styleSheet); + insertPageProlog(buffer, position, HTMLUtils.getBgColor(), + HTMLUtils.getFgColor(), styleSheet); } public static void addPageProlog(StringBuffer buffer) { diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java index 32083f3..55c1b88 100644 --- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java +++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/infoviews/AbstractDocumentationView.java @@ -109,7 +109,7 @@ public abstract class AbstractDocumentationView extends AbstractInfoView { private static String fgStyleSheet; /** The Browser widget */ private boolean fIsUsingBrowserWidget; - private RGB fBackgroundColorRGB; + private RGB fBackgroundColorRGB, fForegroundColorRGB; /** * The Javadoc view's select all action. @@ -339,6 +339,7 @@ public abstract class AbstractDocumentationView extends AbstractInfoView { @Override protected void setForeground(Color color) { getControl().setForeground(color); + fForegroundColorRGB = color.getRGB(); } /* @@ -347,8 +348,9 @@ public abstract class AbstractDocumentationView extends AbstractInfoView { // Apply style sheet fBackgroundColorRGB = color.getRGB(); if (getInput() == null) { - StringBuffer buffer = new StringBuffer(""); //$NON-NLS-1$ + StringBuffer buffer = new StringBuffer(); HTMLPrinter.insertPageProlog(buffer, 0, fBackgroundColorRGB, + fForegroundColorRGB, fgStyleSheet); setInput(buffer.toString()); } else { @@ -548,6 +550,7 @@ public abstract class AbstractDocumentationView extends AbstractInfoView { private String addPrologeEpilog(StringBuffer buffer) { if (buffer.length() > 0) { HTMLPrinter.insertPageProlog(buffer, 0, fBackgroundColorRGB, + fForegroundColorRGB, fgStyleSheet); HTMLPrinter.addPageEpilog(buffer); return buffer.toString(); -- cgit v0.11.2-4-g4a35