X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ioncore%2Fioncore.c;h=097801d342f2f9c1136c504f423f0846887eb841;hb=ae4260bb64817c11f9a7140324cd3e3ba113e297;hp=62f616b985135b5ccbc94fc2483fccf70cfd7ba6;hpb=803afbc1cd633f6c025bcd9537e9b7e9aedadd0d;p=ion3.git diff --git a/ioncore/ioncore.c b/ioncore/ioncore.c index 62f616b..097801d 100644 --- a/ioncore/ioncore.c +++ b/ioncore/ioncore.c @@ -3,10 +3,7 @@ * * Copyright (c) Tuomo Valkonen 1999-2007. * - * Ion is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. + * See the included file LICENSE for details. */ #include @@ -56,6 +53,10 @@ #include "group-cw.h" #include "group-ws.h" #include "llist.h" +#include "exec.h" +#include "screen-notify.h" +#include "key.h" + #include "../version.h" #include "exports.h" @@ -97,7 +98,7 @@ WHook *ioncore_deinit_hook=NULL; void ioncore_warn_nolog(const char *str) { - fprintf(stderr, "%s: %s\n", prog_execname(), str); + fprintf(stderr, "%s: %s\n", libtu_progname(), str); } @@ -253,12 +254,12 @@ static bool init_messages(const char *localedir) #define INIT_HOOK_(NM) \ NM=mainloop_register_hook(#NM, create_hook()); \ - if(NM==NULL) return FALSE; + if(NM==NULL) return FALSE -#define INIT_HOOK(NM, DFLT) \ - INIT_HOOK_(NM) \ - if(!hook_add(NM, (void (*)())DFLT)) return FALSE; +#define ADD_HOOK_(NM, FN) \ + if(!hook_add(NM, (void (*)())FN)) return FALSE +#define INIT_HOOK(NM, DFLT) INIT_HOOK_(NM); ADD_HOOK_(NM, DFLT) static bool init_hooks() { @@ -270,12 +271,17 @@ static bool init_hooks() INIT_HOOK_(clientwin_mapped_hook); INIT_HOOK_(clientwin_unmapped_hook); INIT_HOOK_(clientwin_property_change_hook); + INIT_HOOK_(ioncore_submap_ungrab_hook); + + INIT_HOOK_(region_notify_hook); + ADD_HOOK_(region_notify_hook, ioncore_frame_quasiactivation_notify); + ADD_HOOK_(region_notify_hook, ioncore_screen_activity_notify); - INIT_HOOK(region_notify_hook, ioncore_frame_quasiactivation_notify); INIT_HOOK(clientwin_do_manage_alt, clientwin_do_manage_default); INIT_HOOK(ioncore_handle_event_alt, ioncore_handle_event); INIT_HOOK(region_do_warp_alt, region_do_warp_default); - + INIT_HOOK(ioncore_exec_environ_hook, ioncore_setup_environ); + mainloop_sigchld_hook=mainloop_register_hook("ioncore_sigchld_hook", create_hook()); mainloop_sigusr2_hook=mainloop_register_hook("ioncore_sigusr2_hook", @@ -321,6 +327,7 @@ static bool init_global() ioncore_g.screens=NULL; ioncore_g.focus_next=NULL; ioncore_g.warp_next=FALSE; + ioncore_g.focus_next_source=IONCORE_FOCUSNEXT_OTHER; ioncore_g.focus_current=NULL; @@ -330,6 +337,9 @@ static bool init_global() ioncore_g.opaque_resize=0; ioncore_g.warp_enabled=TRUE; ioncore_g.switchto_new=TRUE; + ioncore_g.no_mousefocus=FALSE; + ioncore_g.unsqueeze_enabled=TRUE; + ioncore_g.autoraise=TRUE; ioncore_g.enc_utf8=FALSE; ioncore_g.enc_sb=TRUE; @@ -354,6 +364,8 @@ static bool init_global() INITSTR(pseudoinactivated); INITSTR(tag); INITSTR(deinit); + INITSTR(map); + INITSTR(unmap); return TRUE; } @@ -491,6 +503,7 @@ static bool ioncore_init_x(const char *display, int stflags) ioncore_g.atom_wm_window_role=XInternAtom(dpy, "WM_WINDOW_ROLE", False); ioncore_g.atom_checkcode=XInternAtom(dpy, "_ION_CWIN_RESTART_CHECKCODE", False); ioncore_g.atom_selection=XInternAtom(dpy, "_ION_SELECTION_STRING", False); + ioncore_g.atom_dockapp_hack=XInternAtom(dpy, "_ION_DOCKAPP_HACK", False); ioncore_g.atom_mwm_hints=XInternAtom(dpy, "_MOTIF_WM_HINTS", False); ioncore_init_xim();