Надежно представить окно GTK пользователю из свернутого на панель задач - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь изменить это приложение / исходный файл:

https://github.com/mank319/Go-For-It/blob/master/src/view/MainWindow.vala

Это приложение делает то, что по истечении времени таймера оно показывает уведомление GTK. То, что я хотел бы сделать, это выскочить из свернутого и представить окно пользователю.

Я изменил это так:

        try {
            this.deiconify();
            this.present();
            notification.show ();
        } catch (GLib.Error err){
            GLib.stderr.printf(
                "Error in notify! (break_active notification)\n");
        }
    }
    break_previously_active = break_active;
}

private void display_almost_over_notification (DateTime remaining_time) {
    int64 secs = remaining_time.to_unix ();
    Notify.Notification notification = new Notify.Notification (
        _("Prepare for your break"),
        _("You have %s seconds left").printf (secs.to_string ()), GOFI.EXEC_NAME);
    try {
        this.deiconify();
        this.present();
        notification.show ();
    } catch (GLib.Error err){
        GLib.stderr.printf(
            "Error in notify! (remaining_time notification)\n");
    }
}

т.е.. Я добавил

this.deiconify();
this.present();

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

Как я могу заставить его всплыть независимо от того, какое другое окно приложения отображается в главном окне?

GUI: KDE Plasma. ОС: Debian 9.7.

...