X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions.h;h=7a09a665509072b58a6ef740957d6e6d45f0d3b7;hb=7e47a57027e043d4fe908d5f0acb7882d4f9330f;hp=8e3154b89cd7f98555d352992495591dfbe30751;hpb=fbc7607fbd1a380428a53094e727ac7631871bd4;p=chaz%2Fopenbox diff --git a/openbox/actions.h b/openbox/actions.h index 8e3154b8..7a09a665 100644 --- a/openbox/actions.h +++ b/openbox/actions.h @@ -18,7 +18,8 @@ #include "misc.h" #include "frame.h" -#include "parser/parse.h" +#include "obt/parse.h" + #include #include @@ -30,8 +31,7 @@ typedef struct _ObActionsGlobalData ObActionsGlobalData; typedef struct _ObActionsClientData ObActionsClientData; typedef struct _ObActionsSelectorData ObActionsSelectorData; -typedef gpointer (*ObActionsDataSetupFunc)(ObParseInst *i, - xmlDocPtr doc, xmlNodePtr node); +typedef gpointer (*ObActionsDataSetupFunc)(xmlNodePtr node); typedef void (*ObActionsDataFreeFunc)(gpointer options); typedef gboolean (*ObActionsRunFunc)(ObActionsData *data, gpointer options); @@ -46,6 +46,7 @@ struct _ObActionsData { guint state; gint x; gint y; + gint button; struct _ObClient *client; ObFrameContext context; @@ -63,9 +64,7 @@ gboolean actions_register(const gchar *name, ObActionsInteractiveInputFunc i_input, ObActionsInteractiveCancelFunc i_cancel); -ObActionsAct* actions_parse(ObParseInst *i, - xmlDocPtr doc, - xmlNodePtr node); +ObActionsAct* actions_parse(xmlNodePtr node); ObActionsAct* actions_parse_string(const gchar *name); gboolean actions_act_is_interactive(ObActionsAct *act); @@ -73,18 +72,29 @@ gboolean actions_act_is_interactive(ObActionsAct *act); void actions_act_ref(ObActionsAct *act); void actions_act_unref(ObActionsAct *act); -/*! Pass in a GSList of ObActionsAct's to be run. - @return TRUE if an action is in interactive state, FALSE is none are +/*! When this is true, an XAllowEvents with ReplayPointer will be called + if an action is going to maybe try moving windows around on screen (or + map/unmap windows) */ +void actions_set_need_pointer_replay_before_move(gboolean replay); +/*! Returns if a ReplayPointer is still needed. If it was called while running + actions then this will be false */ +gboolean actions_get_need_pointer_replay_before_move(void); + +/*! Pass in a GSList of ObActionsAct's to be run. */ void actions_run_acts(GSList *acts, ObUserAction uact, guint state, gint x, gint y, + gint button, ObFrameContext con, struct _ObClient *client); -gboolean actions_interactive_act_running(); -void actions_interactive_cancel_act(); +gboolean actions_interactive_act_running(void); +void actions_interactive_cancel_act(void); gboolean actions_interactive_input_event(XEvent *e); + +/*! Function for actions to call when they are moving a client around */ +void actions_client_move(ObActionsData *data, gboolean start);