我正在使用Eclipse 3.7.0进行插件开发,我正在使用Xtext 2.9.2。我的编辑器首选项无法正常工作。
在Windows 7,8,10 上会发生这种情况:
在64位版本中,我无法更改编辑器字体。点击更改按钮不会做任何事情,只需将鼠标更改为忙碌/待机时间一秒钟,然后再返回正常状态。
在32位版本中,一切都按预期工作,并出现Windows字体选择器对话框。
这是我创建首选项页面的方式:
@Override
protected void createFieldEditors() {
// Add show font preference
fontField = new FontFieldEditor(JFaceResources.TEXT_FONT, EDIT_EDITOR_FONT_LABEL, getFieldEditorParent());
addField(fontField);
fontField.setPreferenceStore(getPreferenceStore());
// initialize the font preference with the default resources font if not initialized
String defaultFont = getPreferenceStore().getDefaultString(JFaceResources.TEXT_FONT);
if(defaultFont.isEmpty()) {
font= JFaceResources.getTextFont();
if (font != null) {
FontData[] data= font.getFontData();
if (data != null && data.length > 0) {
PreferenceConverter.setDefault(getPreferenceStore(), JFaceResources.TEXT_FONT, data[0]);
}
}
}
}
.log
文件为空,没有任何有益的信息。
在调试时,我转到org.eclipse.swt.widgets.FontDialog.java
并发现此行始终返回false而不显示对话框。根据我的理解,这个调用应该是阻塞的,只有在X,OK或Cancel按钮关闭对话框时才返回,但它会立即返回false。
/* Open the dialog */
boolean success = OS.ChooseFont (lpcf)
我也尝试过像example一样小的东西,同样的事情发生了。
答案 0 :(得分:0)
几个月过去了,我找出了造成这个问题的原因。
基本上我们有一个JNI
图层,可以加载一些需要dll
的{{1}}。这需要将MSVCR90.dll
清单嵌入到我们MSVCR90.dll
使用的eclipse.exe
中,这是使用RCP
提供的mt.exe
完成的。
虽然构建时我偶然没有嵌入Microsoft Visual Studio
清单,但在加载MSVCR90.dll
期间导致错误导致错误dll
。然而,我注意到树形样式看起来是正确的。
这也是我的另一个问题Eclipse RCP Jface/SWT TreeViewer on Windows 10的答案。清单还影响MSVCR90.dll
外观UI
和treeviews
看起来不像progressbars
提供的外观。