Mengapa Tombol Gtk Filechooser tidak memilih file apa pun di build flatpak saya?

Saya memiliki tombol pemilih file yang memicu perubahan pada bilah judul setiap kali file dipilih dengannya. Dan sepertinya berfungsi dengan baik di build non-flatpak saya.

import gtk.Application : Application;
import gtk.ApplicationWindow : ApplicationWindow;
import gio.Application : GioApp = Application;
import gtkc.gtktypes : GApplicationFlags, FileChooserAction;
import gtk.FileChooserButton : FileChooserButton;

const string AppID = `org.github.flatfcbtest`;

int main(string[] args)
{
    auto app = new App();
    return app.run(args);
}

public class App : Application
{
public:
    this(const string appID = AppID, const GApplicationFlags flags = GApplicationFlags.FLAGS_NONE)
    {
        super(appID, flags);

        addOnActivate(delegate void(GioApp _) {

            auto pw = new PrimaryWindow(this);
            pw.showAll();
        });
    }
}

class PrimaryWindow : ApplicationWindow
{
    this(Application app)
    {
        super(app);
        setSizeRequest(500, 300);

        auto fcb = new FileChooserButton(`Select file`, FileChooserAction.OPEN);
        fcb.addOnFileSet(delegate void (FileChooserButton _) {
            setTitle(`file set!`);
        });
        add(fcb);

    }
}

(referensi GtkD)

Namun dalam build flatpak saya, file yang dipilih dengan tombol pemilih tidak memilih apa pun dan tetap mengatakan (Tidak Ada). Namun bilah judul saya berubah sehingga saya tahu bahwa sinyalnya dipancarkan oleh tombol pemilih file.

Ini daftar izin flatpak saya:

finish-args:
  - --socket=fallback-x11
  - --share=ipc
  - --filesystem=host
  - --device=all
  - --socket=session-bus

Apa yang menyebabkan hal ini?


person Hossain Adnan    schedule 05.07.2020    source sumber


Jawaban (1)


Biasanya jika Anda mengirimkan flatpak, Anda ingin menghindari --filesystem=host dan cukup gunakan GtkFileChooserNative sebagai gantinya. Kelas ini mendukung portal, memungkinkan pengguna untuk memilih file yang aplikasinya tidak memiliki izin untuk mengaksesnya.

Ini adalah pendekatan yang jauh lebih baik daripada memberikan aplikasi akses sistem file penuh. GtkFileChooserNative akan tetap berfungsi di aplikasi non-flatpak dan Anda tidak akan melihat perbedaan apa pun kecuali Anda melakukan sesuatu yang mewah.

Adapun pertanyaan Anda mengapa GtkFileChooser tidak berfungsi dengan --filesystem=host, saya tidak tahu.

person andy.holmes    schedule 05.07.2020