Is it possible to put wm and gtk into one g_main_loop



Hi gnome-shell developers,

gnome-shell puts wm (gnome-shell-plugin, a libmutter plugin) and gjs into ***only*** one (meta_run) g_main_loop https://git.gnome.org/browse/gnome-shell/tree/src/main.c#n463

So I am considering about is it possible to put wm - inherted from https://git.gnome.org/browse/mutter/tree/src/compositor/plugins/default.c and gtk - just like desktop enviroment`s panel https://github.com/solus-project/budgie-desktop/tree/master/panel

I tried to ***only*** use meta_run g_main_loop https://git.gnome.org/browse/mutter/tree/src/core/main.c#n428

meta_plugin_manager_set_plugin_type(ELSA_TYPE_WM_PLUGIN);
meta_set_wm_name("Elsa shell");

meta_init();
meta_register_with_session();

some GtkWidget new and show, for example, panel

return meta_run();

It ***seems*** to work, but when changed the screen size, for example, by xrandr --output LVDS1 --mode 800x600
it failed to gtk_window_resize the panel on the bottom!

Also I tried to use fork child process to put wm and gtk into separate g_main_loop: meta_run and gtk_main, it worked! but there are several processes, not very clean ;P

So how gnome-shell put wm and gjs together? please someone give me some advice, thanks a lot!

Regards,
Leslie Zhai

--
Regards,
Leslie Zhai





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]