JavaFX WebView: постоянное мерцание с пользовательским курсором - PullRequest
0 голосов
/ 05 апреля 2020

У меня проблемы с изменением курсора с помощью WebView. Каждый раз, когда я перемещаю мышь, курсор мерцает, и иногда курсор по умолчанию отображается в верхней части моего пользовательского курсора в течение доли секунды.

Я нахожусь на JavaFX 10. Вот пример проблемы:

package com.company;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) { launch(args); }

    public void start(Stage primaryStage) {
        // Setup the WebView
        WebView webView = new WebView();
        String cursorUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Pixel_51_icon_cursor_click_top_right.svg/36px-Pixel_51_icon_cursor_click_top_right.svg.png";
        String content = String.format("<body style=\"background-color: coral;cursor: url('%s') 10 10, auto\";>", cursorUrl);
        content = content + "<br>some text<br> a link: <a href='www.google.com'>google</a></body>";
        webView.getEngine().loadContent(content);

        // Prints each time the cursor changes
        webView.cursorProperty().addListener((observable, oldCursor, newCursor) -> {
            if(newCursor == null || oldCursor == null) return;
            System.out.println("Setting " + oldCursor + " to " + newCursor);
        });

        VBox vBox = new VBox(webView);
        Scene scene = new Scene(vBox, 960, 600);

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Я провел несколько тестов, и функция protected javafx.scene.Cursor getCustomCursor(WCImage image, int hotspotX, int hotspotY) в CursorManagerImpl почему-то постоянно вызывается.

Обратите внимание, что эта ошибка не возникает с предустановленными курсорами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...