Kivy: SDL_dropfile tidak berfungsi dengan izin yang lebih tinggi

Dibuat pada 18 Feb 2017  ·  5Komentar  ·  Sumber: kivy/kivy

Versi

  • OS: Windows
  • SDL: 2.0.5

Keterangan

Meskipun ini hanya masalah SDL2 saja, setidaknya kami perlu menyebutkannya di dokumen. Saya tidak dapat menemukan masalah terkait di pelacak bug mereka, jadi jika seseorang sudah terdaftar di sana, mungkin berguna untuk menyodok mereka, atau memeriksa apakah itu tidak diperbaiki dengan cabang master/trunk mereka.

Kode dan Log

from kivy.app import runTouchApp
from kivy.core.window import Window

def _drop(window, file_path):
    print(file_path)

Window.bind(on_dropfile=_drop)
runTouchApp()

Contoh SDL2

#include <SDL2/SDL.h>

int main() {
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Window *window = SDL_CreateWindow(
        "Drag-and-Drop",
        SDL_WINDOWPOS_UNDEFINED,
        SDL_WINDOWPOS_UNDEFINED,
        800, 600, SDL_WINDOW_SHOWN
    );

    int running = 1;
    while (running) {
        SDL_Event event;
        while (SDL_PollEvent(&event)) {
            switch (event.type) {
            case SDL_DROPFILE:
                printf("Dropped file: %s\n", event.drop.file);
                break;
            case SDL_QUIT:
                running = 0;
                break;
            }
        }
    }

    SDL_DestroyWindow(window);
    SDL_Quit();
}
upstream

Komentar yang paling membantu

Kami mungkin harus mendokumentasikan masalah ini dan kemudian menutupnya.

Semua 5 komentar

Tetapi apakah Anda juga menjatuhkan file dari jendela izin yang lebih tinggi? Untuk memastikan itu ada masalah; Saya akan membuka windows explorer/browser file dalam izin yang lebih tinggi juga; seperti yang saya bayangkan Linux akan menampilkan perilaku yang sama. Saya pikir itu sebenarnya hal OS yang umumnya mencoba untuk mencegah pertukaran konteks seperti itu; dengan satu-satunya pengecualian yang saya yakini adalah buffer salin dan tempel.

Saya percaya itu hanya Windows, tetapi saya belum mengujinya misalnya pada Ubuntu, jadi Anda dipersilakan untuk mencoba sudo python multiple_dropfile.py dari contoh, atau salah satu blok kode di atas.

Tentang izin yang ditingkatkan, saya yakin cmd /c explorer diluncurkan sebagai admin harus cukup untuk mendapatkan izin yang ditingkatkan, tetapi meskipun demikian tidak ada situasi jalan dan tidak ada yang dikembalikan dari acara tersebut.

Jadi benar-benar; ini mungkin bukan domain Kivy untuk diperbaiki; dan sebenarnya mungkin di luar SDL. Itu kecuali kami berencana untuk mengekspos cara untuk mengubah filter lewat pesan per tingkat MIC pada Windows; tetapi saya juga yakin Anda akan memiliki masalah serupa di Linux; karena mereka juga mulai memiliki pemisahan proses sudo yang lebih dalam; walaupun dijalankan sebagai user yang sama, tapi pasti ada perbedaan antara proses sudo dan non-sudo. Jadi perbaikan untuk Linux juga harus ditemukan dan kemungkinan diekspos juga; tapi saya pikir detail seperti itu harus diserahkan kepada programmer untuk diimplementasikan sesuai kebutuhan untuk domain masalah mereka. Itu hanya 2 sen saya.

Kami mungkin harus mendokumentasikan masalah ini dan kemudian menutupnya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat