Lines 35-42
Link Here
|
35 |
int lastMouseMoveX, lastMouseMoveY; |
35 |
int lastMouseMoveX, lastMouseMoveY; |
36 |
|
36 |
|
37 |
static boolean SilenceInternalNavigate; |
37 |
static boolean SilenceInternalNavigate; |
|
|
38 |
static int IEVersion; |
38 |
static String ProgId = "Shell.Explorer"; //$NON-NLS-1$ |
39 |
static String ProgId = "Shell.Explorer"; //$NON-NLS-1$ |
39 |
|
40 |
|
|
|
41 |
static final int navNoReadFromCache = 0x4; |
40 |
static final int BeforeNavigate2 = 0xfa; |
42 |
static final int BeforeNavigate2 = 0xfa; |
41 |
static final int CommandStateChange = 0x69; |
43 |
static final int CommandStateChange = 0x69; |
42 |
static final int DocumentComplete = 0x103; |
44 |
static final int DocumentComplete = 0x103; |
Lines 146-158
Link Here
|
146 |
int index = versionString.indexOf ("."); //$NON-NLS-1$ |
148 |
int index = versionString.indexOf ("."); //$NON-NLS-1$ |
147 |
if (index != -1) { |
149 |
if (index != -1) { |
148 |
String majorString = versionString.substring (0, index); |
150 |
String majorString = versionString.substring (0, index); |
149 |
int major = 0; |
|
|
150 |
try { |
151 |
try { |
151 |
major = Integer.valueOf (majorString).intValue (); |
152 |
IEVersion = Integer.valueOf (majorString).intValue (); |
152 |
} catch (NumberFormatException e) { |
153 |
} catch (NumberFormatException e) { |
153 |
/* just continue, version-specific features will not be enabled */ |
154 |
/* just continue, version-specific features will not be enabled */ |
154 |
} |
155 |
} |
155 |
if (major >= 7) { |
156 |
if (IEVersion >= 7) { |
156 |
SilenceInternalNavigate = true; |
157 |
SilenceInternalNavigate = true; |
157 |
} |
158 |
} |
158 |
} |
159 |
} |
Lines 904-917
Link Here
|
904 |
auto.invoke(rgdispid[0]); |
905 |
auto.invoke(rgdispid[0]); |
905 |
} |
906 |
} |
906 |
|
907 |
|
907 |
int[] rgdispid = auto.getIDsOfNames(new String[] { "Navigate", "URL" }); //$NON-NLS-1$ //$NON-NLS-2$ |
908 |
int[] rgdispid = auto.getIDsOfNames(new String[] { "Navigate", "URL", "Flags" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
908 |
navigate = true; |
909 |
navigate = true; |
909 |
Variant[] rgvarg = new Variant[1]; |
910 |
Variant[] rgvarg; |
910 |
rgvarg[0] = new Variant(url); |
911 |
int[] rgdispidNamedArgs; |
911 |
int[] rgdispidNamedArgs = new int[1]; |
912 |
/* |
912 |
rgdispidNamedArgs[0] = rgdispid[1]; |
913 |
* Feature in Internet Explorer 8. Browser caches web pages and for the |
|
|
914 |
* same address display always the same page until not refreshed. Setting |
915 |
* flag navNoReadFromCache solves this problem. See bug #298822 |
916 |
*/ |
917 |
if (IEVersion >= 8) { |
918 |
rgvarg = new Variant[2]; |
919 |
rgvarg[0] = new Variant(url); |
920 |
rgdispidNamedArgs = new int[2]; |
921 |
rgdispidNamedArgs[0] = rgdispid[1]; |
922 |
rgvarg[1] = new Variant(navNoReadFromCache); |
923 |
rgdispidNamedArgs[1] = rgdispid[2]; |
924 |
} else { |
925 |
rgvarg = new Variant[1]; |
926 |
rgvarg[0] = new Variant(url); |
927 |
rgdispidNamedArgs = new int[1]; |
928 |
rgdispidNamedArgs[0] = rgdispid[1]; |
929 |
} |
913 |
Variant pVarResult = auto.invoke(rgdispid[0], rgvarg, rgdispidNamedArgs); |
930 |
Variant pVarResult = auto.invoke(rgdispid[0], rgvarg, rgdispidNamedArgs); |
914 |
rgvarg[0].dispose(); |
931 |
for (int i = 0; i < rgvarg.length; i++) { |
|
|
932 |
rgvarg[i].dispose(); |
933 |
} |
915 |
if (pVarResult == null) return false; |
934 |
if (pVarResult == null) return false; |
916 |
boolean result = pVarResult.getType() == OLE.VT_EMPTY; |
935 |
boolean result = pVarResult.getType() == OLE.VT_EMPTY; |
917 |
pVarResult.dispose(); |
936 |
pVarResult.dispose(); |