Невозможно переместить Hdy.Окно приложения, перетащив Hdy.Хедербар в Вале

#gtk #gtk3 #vala #elementary

Вопрос:

Пытаюсь использовать libhandy и Hdy.ApplicationWindow вместо Gtk.ApplicationWindow этого в моем приложении на основе vala, созданном для элементарной ОС.


моя проблема

  • При использовании Hdy.ApplicationWindow и Hdy.HeaderBar вместо Gtk.ApplicationWindow и Gtk.HeaderBar я не могу заставить окно приложения перемещаться , перетаскивая HeaderBar .
  • Я могу переместить окно в своем рабочем пространстве, перетащив Gtk.HeaderBar , но не в случае Hdy.HeaderBar
  • В Hdy.HeaderBar я вынужден нажать super клавишу и перетащить, чтобы окно переместилось.

Исходный код приложения

 public class Application : Gtk.Application {
    protected override void activate () {   
        //Gtk.ApplicationWindow app_window = new Gtk.ApplicationWindow (this);
             
        var gtk_settings = Gtk.Settings.get_default ();
        var hdy_window = new Hdy.ApplicationWindow ();
        var header_bar = new Hdy.HeaderBar ();
        var overlaybar = new Granite.Widgets.OverlayBar ();
        
        hdy_window.application = this;

        var dark_mode_switch = new Granite.ModeSwitch.from_icon_name (
            "display-brightness-symbolic",
            "weather-clear-night-symbolic"
        );
        
        //New Document
        var welcome_page = new Granite.Widgets.Welcome ("Ordne", "A simple Pomodoro Timer.");
        welcome_page.append ("document-open-recent", "Start Working", "Begin the Working Countdown.");
        welcome_page.append ("preferences-system", "Pomodoro Preferences", "Change Break and Working Duration");
        
        var grid_welcome = new Gtk.Grid () {
            orientation = Gtk.Orientation.VERTICAL
        };  

        dark_mode_switch.primary_icon_tooltip_text = ("Light background");
        dark_mode_switch.secondary_icon_tooltip_text = ("Dark background");
        dark_mode_switch.valign = Gtk.Align.CENTER;
        dark_mode_switch.bind_property ("active", gtk_settings, "gtk-application-prefer-dark-theme", GLib.BindingFlags.BIDIRECTIONAL);

        header_bar.show_close_button = true;
        header_bar.title = "Ordne";
        header_bar.pack_end(dark_mode_switch);  
        
        grid_welcome.add(header_bar);
        grid_welcome.add(welcome_page);       
        
        hdy_window.window_position = Gtk.WindowPosition.CENTER;
        hdy_window.set_default_size(1200, 700);
        hdy_window.add(grid_welcome);
        //main_window.set_titlebar(header_bar);
        //main_window.add(grid_welcome); //Adds the welcome grid to the window
        
        //hdy_window.add (main_window);
        hdy_window.show_all();
        //main_window.show_all();
    }

    public static int main (string[] args) {
        return new Application ().run (args);
    }    
}
 

Как это выглядит?

Как выглядит мое приложение?


Что я пытался сделать?

  • Ссылаясь на документацию Vala, больше сосредоточьтесь на документах, связанных с Hdy.HeaderBar и Hdy.ApplicationWindow
  • Понимание того, как libhandy был использован способ реализации закругленных углов в элементарной ОС, путем ссылки на —
  1. За всеми углами в проекте Elementary OS
  2. Понимание изменений кода в запросах на извлечение, связанных с закруглением углов (реализация LibHandy) в центре приложений Elementary OS, Камере и календаре

С нетерпением ждем возможности опубликовать это приложение с лицензией MIT в центре приложений Elementary. Репозиторий GitHub этого приложения находится по адресу https://github.com/candiedoperation/ordne

Я сделал Электронную Пусковую Установку Для Linux (Например, macOS Spotlight). Несмотря на то, что он электронный, он очень хорошо интегрируется и соответствует элементарным рекомендациям по человеческому интерфейсу ОС. Вы можете узнать больше по адресу https://gitlab.com/candiedoperation/fliger

Флигер в GitLab

P.S. AppCenter публикует только собственные приложения, не имея возможности поделиться ими с сообществом элементарных ОС.

Комментарии:

1. Перенесен в элементарную сеть обмена ОС StackExchange по адресу elementaryos.stackexchange.com/questions/28014/…