Здравствуйте,
Пытаюсь заставить свою программу работать под wayland. Добрался до реализации Drag & Drop (буфер обмена уже заработал). Когда происходит Drag & Drop над моим окном, я получаю обратные вызовы enter (мышь заходит в окно) и motion (мышь двигается по окну). На них я реагирую через
wl_data_offer_accept(data_offer, serial, mime);
И если в mime я передаю NULL, то я ожидаю, что курсор станет disabled. И так и есть, но только в момент enter, а в момент motion курсор уже не меняется. Выглядит это очень нелепо, потому что получается так, что смена курсора возможна только когда мышь впервые попадает в окно.
Я вижу, что моя функция обратного вызова motion не имеет параметра serial (я его сейчас беру из функции enter), но вроде бы в новых версиях wayland этот serial уже должен быть. Попытки обновить wayland натыкаются на сообщение типа «у вас и так всё прекрасно». При этом я вижу, что, например, Code::Blocks, которым я пользуюсь, запросто меняет курсор во время Drag & Drop, когда этот курсор над его окном. Может я что-то не понимаю ? Просто у меня особых идей уже нет. Ну, неужели разработчики wayland могли сделать так, чтобы во время перемещения курсор в Drag & Drop не менялся ? Там же даже своих компонентов нет, т.е. GUI целиком пользовательский, а значит пользователь должен этот курсор менять как ему нужно.
Fedora/Gnome/Wayland