static void meta_clutter_init (void) { clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); clutter_x11_disable_event_retrieval (); if (CLUTTER_INIT_SUCCESS == clutter_init (NULL, NULL)) { GSource *source = g_source_new (&event_funcs, sizeof (GSource)); g_source_attach (source, NULL); g_source_unref (source); } else { meta_fatal ("Unable to initialize Clutter.\n"); } }
/** * mpl_panel_clutter_init_with_gtk: * @argc: (inout): a pointer to the number of command line arguments * @argv: (array length=argc) (inout) (allow-none): a pointer to the array * of command line arguments * * Initialializes the libdawati-panel library when used in a Clutter-based * panel that also use Gtk (panels that only use Clutter should use * mpl_panel_clutter_init_lib() instead). * * This function calls gtk_init() and clutter_init(). */ void mpl_panel_clutter_init_with_gtk (gint *argc, gchar ***argv) { ClutterStageManager *manager; gtk_init (argc, argv); clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); clutter_x11_disable_event_retrieval (); if (CLUTTER_INIT_SUCCESS != clutter_init (argc, argv)) { g_error ("Unable to initialize Clutter.\n"); } manager = clutter_stage_manager_get_default (); g_signal_connect_after (manager, "stage-added", G_CALLBACK (_stage_added), NULL); mpl_panel_clutter_load_base_style (); }
int main(int argc, char **argv) { GOptionContext *context; ClutterActor *stage; GError *error = NULL; CinnamonGlobal *global; GjsContext *js_context; char *script; const char *filename; char *title; gsize len; int code; gtk_init (&argc, &argv); clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); clutter_x11_disable_event_retrieval (); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; gdk_window_add_filter (NULL, event_filter, NULL); context = g_option_context_new (NULL); /* pass unknown through to the JS script */ g_option_context_set_ignore_unknown_options (context, TRUE); g_option_context_add_main_entries (context, entries, NULL); if (!g_option_context_parse (context, &argc, &argv, &error)) g_error ("option parsing failed: %s", error->message); setlocale (LC_ALL, ""); g_type_init (); _cinnamon_global_init (NULL); global = cinnamon_global_get (); js_context = _cinnamon_global_get_gjs_context (global); /* prepare command line arguments */ if (!gjs_context_define_string_array (js_context, "ARGV", argc - 2, (const char**)argv + 2, &error)) { g_printerr ("Failed to defined ARGV: %s", error->message); exit (1); } if (command != NULL) { script = command; len = strlen (script); filename = "<command line>"; } else if (argc <= 1) { script = g_strdup ("const Console = imports.console; Console.interact();"); len = strlen (script); filename = "<stdin>"; } else /*if (argc >= 2)*/ { error = NULL; if (!g_file_get_contents (argv[1], &script, &len, &error)) { g_printerr ("%s\n", error->message); exit (1); } filename = argv[1]; } stage = clutter_stage_get_default (); title = g_filename_display_basename (filename); clutter_stage_set_title (CLUTTER_STAGE (stage), title); g_free (title); #if HAVE_BLUETOOTH /* The module imports are all so intertwined that if the test * imports anything in js/ui, it will probably eventually end up * pulling in ui/status/bluetooth.js. So we need this. */ g_irepository_prepend_search_path (BLUETOOTH_DIR); #endif /* evaluate the script */ error = NULL; if (!gjs_context_eval (js_context, script, len, filename, &code, &error)) { g_free (script); g_printerr ("%s\n", error->message); exit (1); } g_free (script); exit (code); }
int main(int argc, char **argv) { Display * dpy = NULL; #if MBWM_WANT_DEBUG struct sigaction sa; sigfillset(&sa.sa_mask); sa.sa_handler = signal_handler; sigaction(SIGTERM, &sa, NULL); #endif mb_wm_object_init(); #if USE_GTK printf ("initializing gtk\n"); gtk_init (&argc, &argv); dpy = GDK_DISPLAY(); #endif #if ENABLE_CLUTTER_COMPOSITE_MANAGER /* * If using clutter, we share the display connection, and hook * our xevent handler into the clutter main loop. * * If we are also doing gtk integration, we need to make clutter to * use the gtk display connection. */ if (dpy) clutter_x11_set_display (dpy); #if USE_GTK clutter_x11_disable_event_retrieval (); #endif clutter_init (&argc, &argv); if (!dpy) dpy = clutter_x11_get_default_display (); #endif wm = mb_wm_new_with_dpy (argc, argv, dpy); mb_wm_init (wm); if (wm == NULL) mb_wm_util_fatal_error("OOM?"); mb_wm_keys_binding_add_with_spec (wm, "<alt>d", key_binding_func, NULL, (void*)KEY_ACTION_TOGGLE_DESKTOP); mb_wm_keys_binding_add_with_spec (wm, "<alt>n", key_binding_func, NULL, (void*)KEY_ACTION_PAGE_NEXT); mb_wm_keys_binding_add_with_spec (wm, "<alt>p", key_binding_func, NULL, (void*)KEY_ACTION_PAGE_PREV); mb_wm_main_loop(wm); mb_wm_object_unref (MB_WM_OBJECT (wm)); #if MBWM_WANT_DEBUG mb_wm_object_dump (); #endif return 1; }
int main(int argc, char **argv) { GOptionContext *context; GError *error = NULL; ShellGlobal *global; GjsContext *js_context; char *script; const char *filename; char *title; gsize len; int code; gtk_init (&argc, &argv); clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); clutter_x11_disable_event_retrieval (); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; gdk_window_add_filter (NULL, event_filter, NULL); context = g_option_context_new (NULL); /* pass unknown through to the JS script */ g_option_context_set_ignore_unknown_options (context, TRUE); g_option_context_add_main_entries (context, entries, NULL); if (!g_option_context_parse (context, &argc, &argv, &error)) g_error ("option parsing failed: %s", error->message); setlocale (LC_ALL, ""); _shell_global_init (NULL); global = shell_global_get (); js_context = _shell_global_get_gjs_context (global); /* prepare command line arguments */ if (!gjs_context_define_string_array (js_context, "ARGV", argc - 2, (const char**)argv + 2, &error)) { g_printerr ("Failed to defined ARGV: %s", error->message); exit (1); } if (command != NULL) { script = command; len = strlen (script); filename = "<command line>"; } else if (argc <= 1) { script = g_strdup ("const Console = imports.console; Console.interact();"); len = strlen (script); filename = "<stdin>"; } else /*if (argc >= 2)*/ { error = NULL; if (!g_file_get_contents (argv[1], &script, &len, &error)) { g_printerr ("%s\n", error->message); exit (1); } filename = argv[1]; } title = g_filename_display_basename (filename); g_set_prgname (title); g_free (title); /* evaluate the script */ error = NULL; if (!gjs_context_eval (js_context, script, len, filename, &code, &error)) { g_free (script); g_printerr ("%s\n", error->message); exit (1); } gjs_context_gc (js_context); gjs_context_gc (js_context); g_free (script); exit (code); }