More action source handling bits.

SVN revision: 18487
This commit is contained in:
Kim Woelders 2005-11-15 23:11:17 +00:00
parent 1388595dd7
commit 1c27a1b475
4 changed files with 16 additions and 1 deletions

View File

@ -76,6 +76,7 @@ static const WinOp winops[] = {
{"no_button_grabs", 0, 1, 1, EWIN_OP_NO_BUTTON_GRABS},
{"skiplists", 4, 1, 1, EWIN_OP_SKIP_LISTS},
{"no_app_focus", 0, 1, 1, EWIN_OP_INH_APP_FOCUS},
{"no_app_move", 0, 1, 1, EWIN_OP_INH_APP_MOVE},
{"no_app_size", 0, 1, 1, EWIN_OP_INH_APP_SIZE},
{"no_user_close", 0, 1, 1, EWIN_OP_INH_USER_CLOSE},
@ -1424,6 +1425,9 @@ EwinMoveToArea(EWin * ewin, int ax, int ay)
void
EwinOpActivate(EWin * ewin, int source)
{
if (source == OPSRC_APP && EwinInhGetApp(ewin, focus))
return;
if (!ewin->state.animated && !ewin->state.iconified)
DeskGotoByEwin(ewin);
EwinOpRaise(ewin, source);

View File

@ -63,6 +63,7 @@ typedef enum
EWIN_OP_NO_BUTTON_GRABS,
EWIN_OP_SKIP_LISTS,
EWIN_OP_INH_APP_FOCUS,
EWIN_OP_INH_APP_MOVE,
EWIN_OP_INH_APP_SIZE,
EWIN_OP_INH_USER_CLOSE,

View File

@ -712,6 +712,12 @@ IPC_WinOps(const char *params, Client * c __UNUSED__)
}
break;
case EWIN_OP_INH_APP_FOCUS:
on = EwinInhGetApp(ewin, focus);
SetEwinBoolean(wop->name, &on, param1, 1);
EwinInhSetApp(ewin, focus, on);
break;
case EWIN_OP_INH_APP_MOVE:
on = EwinInhGetApp(ewin, move);
SetEwinBoolean(wop->name, &on, param1, 1);
@ -1409,7 +1415,7 @@ static const IpcItem IPCArray[] = {
" <what>: all, none, border, command, desktop, dialog, group, icon,\n"
" layer, location, opacity, shade, shadow, size, sticky\n"
" win_op <windowid> <focusclick/never_use_area/no_button_grabs/skiplists>\n"
" win_op <windowid> <no_app_move/size>\n"
" win_op <windowid> <no_app_focus/move/size>\n"
" win_op <windowid> <no_user_close/move/size>\n"
" win_op <windowid> <no_wm_focus>\n"
" win_op <windowid> noshadow\n"

View File

@ -750,6 +750,10 @@ WindowMatchEwinOpsAction(EWin * ewin, int op, const char *args)
WINOP_SET_BOOL(ewin->props.no_button_grabs, args);
break;
case EWIN_OP_INH_APP_FOCUS:
WINOP_SET_BOOL(EwinInhGetApp(ewin, focus), args);
break;
case EWIN_OP_INH_APP_MOVE:
WINOP_SET_BOOL(EwinInhGetApp(ewin, move), args);
break;