JfxDev Ответов: 0

Eclipse блокировка рабочего стола linux mint cinnamon при отладке java приложения


У меня есть воспроизводимая проблема с блокировкой рабочего стола Mint Cinnamon при попадании в точку останова отладки с помощью Eclipse. Когда я говорю, что он блокируется, я имею в виду, что щелчки мыши полностью неработоспособны (даже на панели Mint). Alt-Tab выглядит так, как будто он работает, но выбор другого окна не фокусирует и не активирует окно (работает только селектор Alt-Tab).

Отладка и точки останова работают нормально везде, насколько я могу судить кроме когда точка останова находится внутри внутреннего класса anon или лямбды.

Публичное РЕПО git с довольно простым примером проекта, вызывающего это:
Оба

Linux Mint 17.3
Затмение Неон 4.6.0
Java 8 (1.8.0_92) (Использование JavaFX)

Код ниже (вам придется захватить файлы проекта, чтобы запустить его):
package application;
	
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Main extends Application {
	@Override
	public void start(Stage primaryStage) {
		try {
			BorderPane root = (BorderPane)FXMLLoader.load(getClass().getResource("Sample.fxml"));
			Scene scene = new Scene(root,400,400);
			scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
			primaryStage.setScene(scene);
			primaryStage.show();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		launch(args);
	}
}

package application;

import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;

public class SampleController {
	
	@FXML
	private TabPane tabPane;
	
	public void createTab() {
		
		Tab tab = new Tab("New tab");//Breakpoint here does NOT freeze desktop
		
//		tab.setOnCloseRequest(e -> {
//			System.out.println("bleh");//Breakpoint here, freezes desktop
//		});
		tab.setOnCloseRequest(new EventHandler<Event>(){
		    @Override public void handle(Event e){
		    	System.out.println("bleh");//Breakpoint here, also freezes desktop
		    }
		});
		
		tabPane.getTabs().add(tab);//Breakpoint here does NOT freeze desktop
		int index = tabPane.getTabs().size() - 1;
		tabPane.getSelectionModel().select(index);
	}
}


Что я уже пробовал:

Ctrl-Alt-ESC перезапускает Cinnamon, и после этого все идет нормально. Я пробовал использовать лямбды и использовать внутренний класс anon, и то, и другое вызывает у меня эту проблему.

0 Ответов