all repos — openbox @ c828154886a40fa48b0545fd5d22e277f6d210e9

openbox fork - make it a bit more like ryudo

Revert all commits for the Hooks feature to move it to a topic branch.

This reverts commit fd2f617be7ff57fcb187daa737f66d243544c8cd.
This reverts commit a47d0a53652a96ca1df96fc9268757df1431ae55.
This reverts commit a1908e076736e1a618bd305c5963dbfecaa30497.
This reverts commit dc2e6f6bf7143a56de360a393b33906735e63625.
This reverts commit 985e7dadf9a3ebf4bd265d955c3198e96405e5d2.
This reverts commit db781556d63d1a50bd1b1b4b6b5423ef703bf2c7.
This reverts commit feec8f663f0a11546c2da87575fecc8a88d97ca1.
Dana Jansens danakj@orodu.net
commit

c828154886a40fa48b0545fd5d22e277f6d210e9

parent

fa0ae17adbc8f73b707c33836d37841e81b9303a

M Makefile.amMakefile.am

@@ -241,8 +241,6 @@ openbox/grab.c \

openbox/grab.h \ openbox/group.c \ openbox/group.h \ - openbox/hooks.c \ - openbox/hooks.h \ openbox/keyboard.c \ openbox/keyboard.h \ openbox/keytree.c \
M openbox/client.copenbox/client.c

@@ -33,7 +33,6 @@ #include "prompt.h"

#include "focus.h" #include "stacking.h" #include "openbox.h" -#include "hooks.h" #include "group.h" #include "config.h" #include "menuframe.h"

@@ -585,8 +584,6 @@ g_free(settings);

ob_debug("Managed window 0x%lx plate 0x%x (%s)", window, self->frame->window, self->class); - - hooks_queue(OB_HOOK_WIN_NEW, self); } ObClient *client_fake_manage(Window window)

@@ -660,9 +657,6 @@ /* remove the window from our save set, unless we are managing an internal

ObPrompt window */ if (!self->prompt) XChangeSaveSet(obt_display, self->window, SetModeDelete); - - /* this can't be queued to run later */ - hooks_run(OB_HOOK_WIN_CLOSE, self); /* update the focus lists */ focus_order_remove(self);

@@ -2546,8 +2540,6 @@ it needs to be in IconicState. This includes when it is on another

desktop! */ client_change_wm_state(self); - - hooks_queue(OB_HOOK_WIN_VISIBLE, self); } return show; }

@@ -2586,8 +2578,6 @@ it needs to be in IconicState. This includes when it is on another

desktop! */ client_change_wm_state(self); - - hooks_queue(OB_HOOK_WIN_INVISIBLE, self); } return hide; }

@@ -3181,9 +3171,6 @@ if (config_animate_iconify && !hide_animation)

frame_begin_iconify_animation(self->frame, iconic); /* do this after starting the animation so it doesn't flash */ client_showhide(self); - - hooks_queue((iconic ? OB_HOOK_WIN_ICONIC : OB_HOOK_WIN_UNICONIC), - self); } /* iconify all direct transients, and deiconify all transients

@@ -3271,8 +3258,6 @@ client_change_state(self); /* change the state hints on the client */

client_setup_decor_and_functions(self, FALSE); client_move_resize(self, x, y, w, h); - - hooks_queue((max ? OB_HOOK_WIN_MAX : OB_HOOK_WIN_UNMAX), self); } void client_shade(ObClient *self, gboolean shade)

@@ -3286,8 +3271,6 @@ client_change_state(self);

client_change_wm_state(self); /* the window is being hidden/shown */ /* resize the frame to just the titlebar */ frame_adjust_area(self->frame, FALSE, TRUE, FALSE); - - hooks_queue((shade ? OB_HOOK_WIN_SHADE : OB_HOOK_WIN_UNSHADE), self); } static void client_ping_event(ObClient *self, gboolean dead)

@@ -3499,9 +3482,6 @@ else

/* the new desktop's geometry may be different, so we may need to resize, for example if we are maximized */ client_reconfigure(self, FALSE); - - if (old != self->desktop) - hooks_queue(OB_HOOK_WIN_DESK_CHANGE, self); } /* move all transients */

@@ -3928,9 +3908,6 @@ {

self->undecorated = undecorated; client_setup_decor_and_functions(self, TRUE); client_change_state(self); /* reflect this in the state hints */ - - hooks_queue((undecorated ? - OB_HOOK_WIN_UNDECORATED : OB_HOOK_WIN_DECORATED), self); } }
M openbox/config.copenbox/config.c

@@ -22,7 +22,6 @@ #include "keyboard.h"

#include "mouse.h" #include "actions.h" #include "translate.h" -#include "hooks.h" #include "client.h" #include "screen.h" #include "openbox.h"

@@ -343,47 +342,6 @@ }

app = obt_parse_find_node(app->next, "application"); } -} - -static void parse_hook(xmlNodePtr node, gpointer d) -{ - gchar *name; - ObHook hook; - xmlNodePtr n; - - - if (!obt_parse_attr_string(node, "name", &name)) { - g_message(_("Hook in config file is missing a name")); - return; - } - - hook = hooks_hook_from_name(name); - if (!hook) - g_message(_("Unknown hook \"%s\" in config file"), name); - else { - if ((n = obt_parse_find_node(node->children, "action"))) - while (n) { - ObActionsAct *action; - - action = actions_parse(n); - if (action) - hooks_add(hook, action); - n = obt_parse_find_node(n->next, "action"); - } - } - - g_free(name); -} - -static void parse_hooks(xmlNodePtr node, gpointer d) -{ - xmlNodePtr n; - - if ((n = obt_parse_find_node(node->children, "hook"))) - while (n) { - parse_hook(n, NULL); - n = obt_parse_find_node(n->next, "hook"); - } } /*

@@ -1038,8 +996,6 @@ config_menu_manage_desktops = TRUE;

config_menu_files = NULL; obt_parse_register(i, "menu", parse_menu, NULL); - - obt_parse_register(i, "hooks", parse_hooks, NULL); config_per_app_settings = NULL;
M openbox/event.copenbox/event.c

@@ -33,7 +33,6 @@ #include "prompt.h"

#include "menuframe.h" #include "keyboard.h" #include "mouse.h" -#include "hooks.h" #include "focus.h" #include "focus_cycle.h" #include "moveresize.h"

@@ -742,11 +741,6 @@ }

else if (e->type == KeyPress || e->type == KeyRelease || e->type == MotionNotify) event_handle_user_input(client, e); - - XFlush(obt_display); - - /* run all the hooks at once */ - hooks_run_queue(); /* if something happens and it's not from an XEvent, then we don't know the time */

@@ -1916,14 +1910,9 @@ in the case where it is animating before disappearing */

if (!client || !frame_iconify_animating(client->frame)) mouse_event(client, e); } else - keyboard_event(event_target_client(client), e); + keyboard_event((focus_cycle_target ? focus_cycle_target : + (client ? client : focus_client)), e); } -} - -ObClient* event_target_client(ObClient *client) -{ - return (focus_cycle_target ? focus_cycle_target : - (client ? client : focus_client)); } static void focus_delay_dest(gpointer data)
M openbox/event.hopenbox/event.h

@@ -64,8 +64,4 @@ gboolean event_time_after(guint32 t1, guint32 t2);

Time event_get_server_time(void); -/*! Given a possible target client, returns what the target client really - should be for actions */ -struct _ObClient* event_target_client(struct _ObClient *client); - #endif
M openbox/focus.copenbox/focus.c

@@ -27,7 +27,6 @@ #include "group.h"

#include "focus_cycle.h" #include "screen.h" #include "keyboard.h" -#include "hooks.h" #include "focus.h" #include "stacking.h" #include "obt/prop.h"

@@ -73,7 +72,6 @@

void focus_set_client(ObClient *client) { Window active; - ObClient *old; ob_debug_type(OB_DEBUG_FOCUS, "focus_set_client 0x%lx", client ? client->window : 0);

@@ -89,7 +87,6 @@ /* in the middle of cycling..? kill it. */

focus_cycle_stop(focus_client); focus_cycle_stop(client); - old = focus_client; focus_client = client; if (client != NULL) {

@@ -104,9 +101,6 @@ if (ob_state() != OB_STATE_EXITING) {

active = client ? client->window : None; OBT_PROP_SET32(obt_root(ob_screen), NET_ACTIVE_WINDOW, WINDOW, active); } - - hooks_queue(OB_HOOK_WIN_UNFOCUS, old); - hooks_queue(OB_HOOK_WIN_FOCUS, client); } static ObClient* focus_fallback_target(gboolean allow_refocus,
D openbox/hooks.c

@@ -1,118 +0,0 @@

-#include "hooks.h" -#include "actions.h" -#include "client.h" -#include "focus.h" -#include "debug.h" -#include "obt/display.h" - -#include <glib.h> - -static GSList *hooks[OB_NUM_HOOKS]; -static const gchar *names[OB_NUM_HOOKS]; - -typedef struct { - ObHook hook; - struct _ObClient *client; -} ObHookQueue; - -#define QUEUE_SIZE 20 -ObHookQueue run_queue[QUEUE_SIZE]; -gint queue_size; - -void hooks_startup(gboolean reconfig) -{ - gint i; - - for (i = 0; i < OB_NUM_HOOKS; ++i) - hooks[i] = NULL; - - queue_size = 0; - - names[OB_HOOK_WIN_NEW] = "WindowNew"; - names[OB_HOOK_WIN_CLOSE] = "WindowClosed"; - names[OB_HOOK_WIN_VISIBLE] = "WindowVisible"; - names[OB_HOOK_WIN_INVISIBLE] = "WindowInvisible"; - names[OB_HOOK_WIN_ICONIC] = "WindowIconified"; - names[OB_HOOK_WIN_UNICONIC] = "WindowUniconified"; - names[OB_HOOK_WIN_MAX] = "WindowMaximized"; - names[OB_HOOK_WIN_UNMAX] = "WindowUnmaximized"; - names[OB_HOOK_WIN_SHADE] = "WindowShaded"; - names[OB_HOOK_WIN_UNSHADE] = "WindowUnshaded"; - names[OB_HOOK_WIN_FOCUS] = "WindowFocused"; - names[OB_HOOK_WIN_UNFOCUS] = "WindowUnfocused"; - names[OB_HOOK_WIN_DESK_CHANGE] = "WindowOnNewDesktop"; - names[OB_HOOK_WIN_DECORATED] = "WindowDecorated"; - names[OB_HOOK_WIN_UNDECORATED] = "WindowUndecorated"; - names[OB_HOOK_SCREEN_DESK_CHANGE] = "DesktopChanged"; -} - -void hooks_shutdown(gboolean reconfig) -{ - gint i; - - for (i = 0; i < OB_NUM_HOOKS; ++i) - while (hooks[i]) { - actions_act_unref(hooks[i]->data); - hooks[i] = g_slist_delete_link(hooks[i], hooks[i]); - } -} - -ObHook hooks_hook_from_name(const gchar *n) -{ - gint i; - - for (i = 1; i < OB_NUM_HOOKS; ++i) - if (!g_ascii_strcasecmp(n, names[i])) - return (ObHook)i; - return OB_HOOK_INVALID; -} - -void hooks_queue(ObHook hook, struct _ObClient *client) -{ - ObHookQueue *q; - - g_assert(hook < OB_NUM_HOOKS && hook > OB_HOOK_INVALID); - - //ob_debug("Queing hook %s for client 0x%x", names[hook], - // (client ? client->window : 0)); - q = &run_queue[queue_size++]; - q->hook = hook; - q->client = client; - - if (queue_size == QUEUE_SIZE) - /* queue is full */ - hooks_run_queue(); -} - -void hooks_run(ObHook hook, struct _ObClient *c) -{ - hooks_queue(hook, c); - hooks_run_queue(); -} - -void hooks_add(ObHook hook, struct _ObActionsAct *act) -{ - g_assert(hook < OB_NUM_HOOKS && hook > OB_HOOK_INVALID); - - /* append so they are executed in the same order as they appear in the - config file */ - hooks[hook] = g_slist_append(hooks[hook], act); -} - -void hooks_run_queue(void) -{ - gint i; - - for (i = 0; i < queue_size; ++i) { - const ObHookQueue *q = &run_queue[i]; - - //ob_debug("Running hook %s for client 0x%x", names[q->hook], - // (q->client ? q->client->window : 0)); - actions_run_acts(hooks[q->hook], - OB_USER_ACTION_HOOK, - 0, -1, -1, 0, - OB_FRAME_CONTEXT_NONE, - q->client); - } - queue_size = 0; -}
D openbox/hooks.h

@@ -1,42 +0,0 @@

-#ifndef ob__hooks_h -#define ob__hooks_h - -#include <glib.h> - -struct _ObActionsAct; -struct _ObClient; - -typedef enum { - OB_HOOK_INVALID, - OB_HOOK_WIN_NEW, - OB_HOOK_WIN_CLOSE, - OB_HOOK_WIN_VISIBLE, - OB_HOOK_WIN_INVISIBLE, - OB_HOOK_WIN_ICONIC, - OB_HOOK_WIN_UNICONIC, - OB_HOOK_WIN_MAX, - OB_HOOK_WIN_UNMAX, - OB_HOOK_WIN_SHADE, - OB_HOOK_WIN_UNSHADE, - OB_HOOK_WIN_FOCUS, - OB_HOOK_WIN_UNFOCUS, - OB_HOOK_WIN_DESK_CHANGE, - OB_HOOK_WIN_DECORATED, - OB_HOOK_WIN_UNDECORATED, - OB_HOOK_SCREEN_DESK_CHANGE, - OB_NUM_HOOKS -} ObHook; - -void hooks_startup(gboolean reconfig); -void hooks_shutdown(gboolean reconfig); - -ObHook hooks_hook_from_name(const gchar *n); - -void hooks_queue(ObHook hook, struct _ObClient *c); -void hooks_run(ObHook hook, struct _ObClient *c); - -void hooks_add(ObHook hook, struct _ObActionsAct *act); - -void hooks_run_queue(void); - -#endif
M openbox/misc.hopenbox/misc.h

@@ -108,7 +108,6 @@ OB_USER_ACTION_MOUSE_CLICK,

OB_USER_ACTION_MOUSE_DOUBLE_CLICK, OB_USER_ACTION_MOUSE_MOTION, OB_USER_ACTION_MENU_SELECTION, - OB_USER_ACTION_HOOK, OB_NUM_USER_ACTIONS } ObUserAction;
M openbox/openbox.copenbox/openbox.c

@@ -42,7 +42,6 @@ #include "group.h"

#include "config.h" #include "ping.h" #include "prompt.h" -#include "hooks.h" #include "gettext.h" #include "render/render.h" #include "render/theme.h"

@@ -235,7 +234,6 @@ i = obt_parse_instance_new();

/* register all the available actions */ actions_startup(reconfigure); - hooks_startup(reconfigure); /* start up config which sets up with the parser */ config_startup(i);

@@ -401,7 +399,6 @@ window_shutdown(reconfigure);

sn_shutdown(reconfigure); event_shutdown(reconfigure); config_shutdown(); - hooks_shutdown(reconfigure); actions_shutdown(reconfigure); } while (reconfigure); }
M openbox/screen.copenbox/screen.c

@@ -31,7 +31,6 @@ #include "frame.h"

#include "event.h" #include "focus.h" #include "popup.h" -#include "hooks.h" #include "render/render.h" #include "gettext.h" #include "obt/display.h"

@@ -719,8 +718,6 @@ event_end_ignore_all_enters(ignore_start);

if (event_curtime != CurrentTime) screen_desktop_user_time = event_curtime; - - hooks_queue(OB_HOOK_SCREEN_DESK_CHANGE, NULL); } void screen_add_desktop(gboolean current)