12#include "functions_defs.h"
13#include "functions_deferral.h"
29#include "functions_dispatch_execution.h"
161 dc =
Scr->SelectCursor;
209 case F_WARPTOICONMGR:
216 XGrabPointer(
dpy,
Scr->Root, True,
217 ButtonPressMask | ButtonReleaseMask,
218 GrabModeAsync, GrabModeAsync,
219 Scr->Root,
Scr->WaitCursor, CurrentTime);
260 fprintf(stderr,
"%s: couldn't find function \"%s\"\n",
270 for(mitem = mroot->
first; mitem != NULL; mitem = mitem->
next) {
272 tmp_win, eventp, context, pulldown);
289 if(func >= 0 && func < num_f_dis && func_dispatch[func] != NULL) {
290 (*func_dispatch[func])(
EF_ARGS);
299 fprintf(stderr,
"Internal error: no handler for function %d\n",
322 XUngrabPointer(
dpy, CurrentTime);
347 XGrabPointer(
dpy,
Scr->Root, True,
348 ButtonPressMask | ButtonReleaseMask,
349 GrabModeAsync, GrabModeAsync,
369 Window confine_to =
Scr->Root;
371 if(func == F_ADOPTWINDOW) {
381 ButtonPressMask | ButtonReleaseMask,
416 if(func < 0 || func >= fdef_table_max) {
420 if(fdef_table[func] != DC_NONE) {
430 if(func < 0 || func >= fdef_table_max) {
434 switch(fdef_table[func]) {
436 return Scr->SelectCursor;
438 return Scr->MoveCursor;
440 return Scr->DestroyCursor;
470 for(mitem =
root->first; mitem != NULL; mitem = mitem->
next) {
474 return Scr->SelectCursor;
498 fprintf(stderr,
"%s(): Shouldn't get here.\n", __func__);
504 fprintf(stderr,
"%s(): Shouldn't get here.\n", __func__);
510 fprintf(stderr,
"%s(): Shouldn't get here.\n", __func__);
518 fprintf(stderr,
"%s(): Shouldn't get here.\n", __func__);
524 fprintf(stderr,
"%s(): Shouldn't get here.\n", __func__);
void ExecuteFunction(int func, void *action, Window w, TwmWindow *tmp_win, XEvent *eventp, int context, bool pulldown)
static bool DeferExecution(int context, int func, Cursor cursor)
static bool should_defer(int func)
static bool EF_main(int func, void *action, Window w, TwmWindow *tmp_win, XEvent *eventp, int context, bool pulldown)
static Cursor NeedToDefer(MenuRoot *root)
static Cursor defer_cursor(int func)