Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
E.h finders.c ipc.c
Log Message:
Added window id "shortcuts" for use with eesh (based on patch by Mike Frysinger
<[EMAIL PROTECTED]>)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -3 -r1.154 -r1.155
--- E.h 7 Dec 2003 09:18:55 -0000 1.154
+++ E.h 7 Dec 2003 09:54:37 -0000 1.155
@@ -2154,6 +2154,7 @@
EWin *FindEwinByBase(Window win);
EWin *FindEwinByChildren(Window win);
+EWin *FindEwinByPartial(const char *win, int type);
EWin *FindEwinByDecoration(Window win);
Button *FindButton(Window win);
ActionClass *FindActionClass(Window win);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/finders.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- finders.c 7 Dec 2003 09:18:55 -0000 1.19
+++ finders.c 7 Dec 2003 09:54:37 -0000 1.20
@@ -80,6 +80,51 @@
}
EWin *
+FindEwinByPartial(const char *match, int type)
+{
+ EWin *ewin = NULL;
+ EWin **ewins;
+ int i, num, len;
+ char ewinid[FILEPATH_LEN_MAX];
+
+ EDBUG(6, "FindEwinByPartial");
+
+ len = strlen(match);
+ if (len <= 0)
+ goto exit;
+
+ ewins = (EWin **) ListItemType(&num, LIST_TYPE_EWIN);
+ if (ewins == NULL)
+ goto exit;
+
+ for (i = 0; i < num; i++)
+ {
+ if (type == '+')
+ {
+ /* Match start of window ID */
+ sprintf(ewinid, "%x", (unsigned)ewins[i]->client.win);
+ if (strncmp(ewinid, match, len))
+ continue;
+ }
+ else if (type == '=')
+ {
+ /* Match name (substring) */
+ if (!strstr(ewins[i]->client.title, match))
+ continue;
+ }
+ else
+ goto exit;
+
+ ewin = ewins[i];
+ break;
+ }
+ Efree(ewins);
+
+ exit:
+ EDBUG_RETURN(ewin);
+}
+
+EWin *
FindEwinByDecoration(Window win)
{
EWin *ewin;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ipc.c,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -3 -r1.117 -r1.118
--- ipc.c 7 Dec 2003 09:18:55 -0000 1.117
+++ ipc.c 7 Dec 2003 09:54:37 -0000 1.118
@@ -22,6 +22,7 @@
*/
#include "E.h"
#include "timestamp.h"
+#include <ctype.h>
typedef struct _IPCstruct
{
@@ -3621,14 +3622,14 @@
if (params)
{
Esnprintf(buf, sizeof(buf),
- "%8x : %s :: %d : %d %d : %d %d\n",
+ "0x%x : %s :: %d : %d %d : %d %d %dx%d\n",
e->client.win, e->client.title,
(e->sticky) ? -1 : e->desktop, e->area_x, e->area_y,
- e->x, e->y);
+ e->x, e->y, e->w, e->h);
}
else
{
- Esnprintf(buf, sizeof(buf), "%8x : %s\n", e->client.win,
+ Esnprintf(buf, sizeof(buf), "0x%x : %s\n", e->client.win,
e->client.title);
}
if (!ret)
@@ -3735,492 +3736,454 @@
IPC_WinOps(char *params, Client * c)
{
char buf[FILEPATH_LEN_MAX];
+ EWin *ewin;
+ char windowid[FILEPATH_LEN_MAX];
+ char operation[FILEPATH_LEN_MAX];
+ char param1[FILEPATH_LEN_MAX];
+ unsigned int win;
+
+ if (params == NULL)
+ {
+ Esnprintf(buf, sizeof(buf), "Error: no window specified");
+ goto exit;
+ }
+
+ win = 0;
buf[0] = 0;
- if (params)
+ windowid[0] = 0;
+ operation[0] = 0;
+ param1[0] = 0;
+
+ word(params, 1, windowid);
+ if (!strcmp(windowid, "current"))
{
+ ewin = GetFocusEwin();
+ }
+ else if (isdigit(windowid[0]))
+ {
+ sscanf(windowid, "%x", &win);
+ ewin = FindEwinByChildren(win);
+ }
+ else if (windowid[0] == '+')
+ {
+ ewin = FindEwinByPartial(windowid + 1, '+');
+ }
+ else if (windowid[0] == '=')
+ {
+ ewin = FindEwinByPartial(windowid + 1, '=');
+ }
+ else
+ {
+ ewin = FindEwinByPartial(windowid, '=');
+ }
+ if (!ewin)
+ {
+ Esnprintf(buf, sizeof(buf), "Error: no such window: %8x", win);
+ goto exit;
+ }
- char windowid[FILEPATH_LEN_MAX];
- char operation[FILEPATH_LEN_MAX];
- char param1[FILEPATH_LEN_MAX];
- unsigned int win;
+ word(params, 2, operation);
+ if (!operation[0])
+ {
+ Esnprintf(buf, sizeof(buf), "Error: no operation specified");
+ goto exit;
+ }
- windowid[0] = 0;
- operation[0] = 0;
- param1[0] = 0;
- word(params, 1, windowid);
- if (!strcmp(windowid, "current"))
+ if (!strncmp(operation, "close", 2))
+ {
+ ICCCM_Delete(ewin);
+ ApplySclass(FindItem("SOUND_WINDOW_CLOSE", 0, LIST_FINDBY_NAME,
+ LIST_TYPE_SCLASS));
+ }
+ else if (!strncmp(operation, "annihiliate", 2))
+ {
+ EDestroyWindow(disp, ewin->client.win);
+ ApplySclass(FindItem("SOUND_WINDOW_CLOSE", 0, LIST_FINDBY_NAME,
+ LIST_TYPE_SCLASS));
+ }
+ else if (!strncmp(operation, "iconify", 2))
+ {
+ word(params, 3, param1);
+ if (param1[0])
{
- EWin *ewin;
-
- ewin = GetFocusEwin();
- if (ewin)
+ if (!strcmp(param1, "on"))
{
- win = ewin->client.win;
+ if (!ewin->iconified)
+ IconifyEwin(ewin);
+ }
+ else if (!strcmp(param1, "off"))
+ {
+ if (ewin->iconified)
+ DeIconifyEwin(ewin);
+ }
+ else if (!strcmp(param1, "?"))
+ {
+ if (ewin->iconified)
+ Esnprintf(buf, sizeof(buf), "window iconified: yes");
+ else
+ Esnprintf(buf, sizeof(buf), "window iconified: no");
}
else
{
- return;
+ Esnprintf(buf, sizeof(buf), "Error: unknown mode specified");
}
}
else
{
- sscanf(windowid, "%x", &win);
+ if (ewin->iconified)
+ DeIconifyEwin(ewin);
+ else
+ IconifyEwin(ewin);
}
- word(params, 2, operation);
- if (!operation[0])
+ }
+ else if (!strncmp(operation, "shade", 2))
+ {
+ word(params, 3, param1);
+ if (param1[0])
{
- Esnprintf(buf, sizeof(buf), "Error: no operation specified");
+ if (!strcmp(param1, "on"))
+ {
+ if (!ewin->shaded)
+ ShadeEwin(ewin);
+ }
+ else if (!strcmp(param1, "off"))
+ {
+ if (ewin->shaded)
+ UnShadeEwin(ewin);
+ }
+ else if (!strcmp(param1, "?"))
+ {
+ if (ewin->shaded)
+ Esnprintf(buf, sizeof(buf), "window shaded: yes");
+ else
+ Esnprintf(buf, sizeof(buf), "window shaded: no");
+ }
+ else
+ {
+ Esnprintf(buf, sizeof(buf), "Error: unknown mode specified");
+ }
}
else
{
- EWin *ewin;
-
- ewin = FindEwinByChildren(win);
- if (!ewin)
+ if (ewin->shaded)
+ UnShadeEwin(ewin);
+ else
+ ShadeEwin(ewin);
+ }
+ }
+ else if (!strncmp(operation, "stick", 2))
+ {
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ if (!strcmp(param1, "on"))
{
- Esnprintf(buf, sizeof(buf), "Error: no such window: %8x",
- win);
+ if (!ewin->sticky)
+ MakeWindowSticky(ewin);
+ }
+ else if (!strcmp(param1, "off"))
+ {
+ if (ewin->sticky)
+ MakeWindowUnSticky(ewin);
+ }
+ else if (!strcmp(param1, "?"))
+ {
+ if (ewin->sticky)
+ Esnprintf(buf, sizeof(buf), "window sticky: yes");
+ else
+ Esnprintf(buf, sizeof(buf), "window sticky: no");
}
else
{
- if (!strcmp(operation, "close"))
- {
- ICCCM_Delete(ewin);
- ApplySclass(FindItem
- ("SOUND_WINDOW_CLOSE", 0, LIST_FINDBY_NAME,
- LIST_TYPE_SCLASS));
- }
- else if (!strcmp(operation, "annihiliate"))
- {
- EDestroyWindow(disp, ewin->client.win);
- ApplySclass(FindItem
- ("SOUND_WINDOW_CLOSE", 0, LIST_FINDBY_NAME,
- LIST_TYPE_SCLASS));
- }
- else if (!strcmp(operation, "iconify"))
- {
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "on"))
- {
- if (!ewin->iconified)
- IconifyEwin(ewin);
- }
- else if (!strcmp(param1, "off"))
- {
- if (ewin->iconified)
- DeIconifyEwin(ewin);
- }
- else if (!strcmp(param1, "?"))
- {
- if (ewin->iconified)
- Esnprintf(buf, sizeof(buf),
- "window iconified: yes");
- else
- Esnprintf(buf, sizeof(buf),
- "window iconified: no");
- }
- else
- {
- Esnprintf(buf, sizeof(buf),
- "Error: unknown mode specified");
- }
- }
- else
- {
- if (ewin->iconified)
- DeIconifyEwin(ewin);
- else
- IconifyEwin(ewin);
- }
- }
- else if (!strcmp(operation, "shade"))
- {
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "on"))
- {
- if (!ewin->shaded)
- ShadeEwin(ewin);
- }
- else if (!strcmp(param1, "off"))
- {
- if (ewin->shaded)
- UnShadeEwin(ewin);
- }
- else if (!strcmp(param1, "?"))
- {
- if (ewin->shaded)
- Esnprintf(buf, sizeof(buf),
- "window shaded: yes");
- else
- Esnprintf(buf, sizeof(buf),
- "window shaded: no");
- }
- else
- {
- Esnprintf(buf, sizeof(buf),
- "Error: unknown mode specified");
- }
- }
- else
- {
- if (ewin->shaded)
- UnShadeEwin(ewin);
- else
- ShadeEwin(ewin);
- }
- }
- else if (!strcmp(operation, "stick"))
- {
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "on"))
- {
- if (!ewin->sticky)
- MakeWindowSticky(ewin);
- }
- else if (!strcmp(param1, "off"))
- {
- if (ewin->sticky)
- MakeWindowUnSticky(ewin);
- }
- else if (!strcmp(param1, "?"))
- {
- if (ewin->sticky)
- Esnprintf(buf, sizeof(buf),
- "window sticky: yes");
- else
- Esnprintf(buf, sizeof(buf),
- "window sticky: no");
- }
- else
- {
- Esnprintf(buf, sizeof(buf),
- "Error: unknown mode specified");
- }
- }
- else
- {
- if (ewin->sticky)
- MakeWindowUnSticky(ewin);
- else
- MakeWindowSticky(ewin);
- }
- }
- else if (!strcmp(operation, "title"))
- {
- char *ptr = strstr(params, "title");
+ Esnprintf(buf, sizeof(buf), "Error: unknown mode specified");
+ }
+ }
+ else
+ {
+ if (ewin->sticky)
+ MakeWindowUnSticky(ewin);
+ else
+ MakeWindowSticky(ewin);
+ }
+ }
+ else if (!strncmp(operation, "title", 2))
+ {
+ char *ptr = strstr(params, "title");
- if (ptr)
- ptr += strlen("title");
- if (ptr)
- {
- while (*ptr == ' ')
- ptr++;
- if (strlen(ptr))
- {
- if (!strncmp(ptr, "?", 1))
- {
- /* return the window title */
- Esnprintf(buf, sizeof(buf),
- "window title: %s",
- ewin->client.title);
- }
- else
- {
- /* set the new title */
- if (ewin->client.title)
- Efree(ewin->client.title);
- ewin->client.title =
- Emalloc((strlen(ptr) + 1) *
- sizeof(char));
-
- strcpy(ewin->client.title, ptr);
- XStoreName(disp, ewin->client.win,
- ewin->client.title);
- DrawEwin(ewin);
- }
- }
- else
- {
- /* error */
- Esnprintf(buf, sizeof(buf),
- "Error: no title specified");
- }
- }
- }
- else if (!strcmp(operation, "toggle_width"))
- {
- word(params, 3, param1);
- MaxWidth(ewin, param1);
- }
- else if (!strcmp(operation, "toggle_height"))
- {
- word(params, 3, param1);
- MaxHeight(ewin, param1);
- }
- else if (!strcmp(operation, "toggle_size"))
- {
- word(params, 3, param1);
- MaxSize(ewin, param1);
- }
- else if (!strcmp(operation, "raise"))
- {
- RaiseEwin(ewin);
- }
- else if (!strcmp(operation, "lower"))
- {
- LowerEwin(ewin);
- }
- else if (!strcmp(operation, "layer"))
+ if (ptr)
+ ptr += strlen("title");
+ if (ptr)
+ {
+ while (*ptr == ' ')
+ ptr++;
+ if (strlen(ptr))
+ {
+ if (!strncmp(ptr, "?", 1))
{
- word(params, 3, param1);
- if (!strcmp(param1, "?"))
- {
- Esnprintf(buf, sizeof(buf),
- "window layer: %d", ewin->layer);
- }
- else
- {
- ewin->layer = atoi(param1);
- RaiseEwin(ewin);
- RememberImportantInfoForEwin(ewin);
- }
+ /* return the window title */
+ Esnprintf(buf, sizeof(buf),
+ "window title: %s", ewin->client.title);
}
- else if (!strcmp(operation, "border"))
+ else
{
- Border *b;
+ /* set the new title */
+ if (ewin->client.title)
+ Efree(ewin->client.title);
+ ewin->client.title =
+ Emalloc((strlen(ptr) + 1) * sizeof(char));
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "?"))
- {
- if (ewin->border)
- {
- if (ewin->border->name)
- {
- Esnprintf(buf, sizeof(buf),
- "window border: %s",
- ewin->border->name);
- }
- }
- }
- else
- {
- b = (Border *) FindItem(param1, 0,
- LIST_FINDBY_NAME,
- LIST_TYPE_BORDER);
- if ((b) && (b != ewin->border))
- {
- ewin->border_new = 1;
- SetEwinToBorder(ewin, b);
- ICCCM_MatchSize(ewin);
- MoveResizeEwin(ewin, ewin->x, ewin->y,
- ewin->client.w,
- ewin->client.h);
- }
- }
- }
- else
- {
- Esnprintf(buf, sizeof(buf),
- "Error: no border specified");
- }
- }
- else if (!strcmp(operation, "desk"))
- {
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "next"))
- {
- MoveEwinToDesktop(ewin, ewin->desktop + 1);
- RaiseEwin(ewin);
- ICCCM_Configure(ewin);
- ewin->sticky = 0;
- }
- else if (!strcmp(param1, "prev"))
- {
- MoveEwinToDesktop(ewin, ewin->desktop - 1);
- RaiseEwin(ewin);
- ICCCM_Configure(ewin);
- ewin->sticky = 0;
- }
- else if (!strcmp(param1, "?"))
- {
- Esnprintf(buf, sizeof(buf), "window desk: %d",
- ewin->desktop);
- }
- else
- {
- MoveEwinToDesktop(ewin, atoi(param1));
- RaiseEwin(ewin);
- ICCCM_Configure(ewin);
- ewin->sticky = 0;
- }
- }
- else
- {
- Esnprintf(buf, sizeof(buf),
- "Error: no desktop supplied");
- }
+ strcpy(ewin->client.title, ptr);
+ XStoreName(disp, ewin->client.win, ewin->client.title);
+ DrawEwin(ewin);
}
- else if (!strcmp(operation, "area"))
- {
- int a, b;
+ }
+ else
+ {
+ /* error */
+ Esnprintf(buf, sizeof(buf), "Error: no title specified");
+ }
+ }
+ }
+ else if (!strcmp(operation, "toggle_width") || !strcmp(operation, "tw"))
+ {
+ word(params, 3, param1);
+ MaxWidth(ewin, param1);
+ }
+ else if (!strcmp(operation, "toggle_height") || !strcmp(operation, "th"))
+ {
+ word(params, 3, param1);
+ MaxHeight(ewin, param1);
+ }
+ else if (!strcmp(operation, "toggle_size") || !strcmp(operation, "ts"))
+ {
+ word(params, 3, param1);
+ MaxSize(ewin, param1);
+ }
+ else if (!strncmp(operation, "raise", 2))
+ {
+ RaiseEwin(ewin);
+ }
+ else if (!strncmp(operation, "lower", 2))
+ {
+ LowerEwin(ewin);
+ }
+ else if (!strncmp(operation, "layer", 2))
+ {
+ word(params, 3, param1);
+ if (!strcmp(param1, "?"))
+ {
+ Esnprintf(buf, sizeof(buf), "window layer: %d", ewin->layer);
+ }
+ else
+ {
+ ewin->layer = atoi(param1);
+ RaiseEwin(ewin);
+ RememberImportantInfoForEwin(ewin);
+ }
+ }
+ else if (!strncmp(operation, "border", 2))
+ {
+ Border *b;
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "?"))
- {
- Esnprintf(buf, sizeof(buf),
- "window area: %d %d", ewin->area_x,
- ewin->area_y);
- }
- else
- {
- sscanf(params, "%*s %*s %i %i", &a, &b);
- MoveEwinToArea(ewin, a, b);
- }
- }
- else
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ if (!strcmp(param1, "?"))
+ {
+ if (ewin->border)
+ {
+ if (ewin->border->name)
{
Esnprintf(buf, sizeof(buf),
- "Error: no area supplied");
+ "window border: %s", ewin->border->name);
}
}
- else if (!strcmp(operation, "raise"))
- {
- RaiseEwin(ewin);
- }
- else if (!strcmp(operation, "lower"))
+ }
+ else
+ {
+ b = (Border *) FindItem(param1, 0,
+ LIST_FINDBY_NAME, LIST_TYPE_BORDER);
+ if ((b) && (b != ewin->border))
{
- LowerEwin(ewin);
+ ewin->border_new = 1;
+ SetEwinToBorder(ewin, b);
+ ICCCM_MatchSize(ewin);
+ MoveResizeEwin(ewin, ewin->x, ewin->y,
+ ewin->client.w, ewin->client.h);
}
- else if (!strcmp(operation, "move"))
- {
- int a, b;
+ }
+ }
+ else
+ {
+ Esnprintf(buf, sizeof(buf), "Error: no border specified");
+ }
+ }
+ else if (!strncmp(operation, "desk", 2))
+ {
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ if (!strncmp(param1, "next", 1))
+ {
+ MoveEwinToDesktop(ewin, ewin->desktop + 1);
+ RaiseEwin(ewin);
+ ICCCM_Configure(ewin);
+ ewin->sticky = 0;
+ }
+ else if (!strncmp(param1, "prev", 1))
+ {
+ MoveEwinToDesktop(ewin, ewin->desktop - 1);
+ RaiseEwin(ewin);
+ ICCCM_Configure(ewin);
+ ewin->sticky = 0;
+ }
+ else if (!strcmp(param1, "?"))
+ {
+ Esnprintf(buf, sizeof(buf), "window desk: %d", ewin->desktop);
+ }
+ else
+ {
+ MoveEwinToDesktop(ewin, atoi(param1));
+ RaiseEwin(ewin);
+ ICCCM_Configure(ewin);
+ ewin->sticky = 0;
+ }
+ }
+ else
+ {
+ Esnprintf(buf, sizeof(buf), "Error: no desktop supplied");
+ }
+ }
+ else if (!strncmp(operation, "area", 2))
+ {
+ int a, b;
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "?"))
- {
- Esnprintf(buf, sizeof(buf),
- "window location: %d %d", ewin->x,
- ewin->y);
- }
- else if (!strcmp(param1, "??"))
- {
- Esnprintf(buf, sizeof(buf),
- "client location: %d %d",
- ewin->x + ewin->border->border.left,
- ewin->y + ewin->border->border.top);
- }
- else
- {
- sscanf(params, "%*s %*s %i %i", &a, &b);
- MoveResizeEwin(ewin, a, b, ewin->client.w,
- ewin->client.h);
- }
- }
- else
- {
- Esnprintf(buf, sizeof(buf),
- "Error: no coords supplied");
- }
- }
- else if (!strcmp(operation, "resize"))
- {
- int a, b;
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ if (!strcmp(param1, "?"))
+ {
+ Esnprintf(buf, sizeof(buf),
+ "window area: %d %d", ewin->area_x, ewin->area_y);
+ }
+ else
+ {
+ sscanf(params, "%*s %*s %i %i", &a, &b);
+ MoveEwinToArea(ewin, a, b);
+ }
+ }
+ else
+ {
+ Esnprintf(buf, sizeof(buf), "Error: no area supplied");
+ }
+ }
+ else if (!strncmp(operation, "move", 2))
+ {
+ int a, b;
- word(params, 3, param1);
- if (param1[0])
- {
- if (!strcmp(param1, "?"))
- {
- Esnprintf(buf, sizeof(buf),
- "window size: %d %d", ewin->client.w,
- ewin->client.h);
- }
- else if (!strcmp(param1, "??"))
- {
- Esnprintf(buf, sizeof(buf),
- "frame size: %d %d", ewin->w,
- ewin->h);
- }
- else
- {
- sscanf(params, "%*s %*s %i %i", &a, &b);
- MoveResizeEwin(ewin, ewin->x, ewin->y, a, b);
- }
- }
- }
- else if (!strcmp(operation, "move_relative"))
- {
- int a, b;
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ if (!strcmp(param1, "?"))
+ {
+ Esnprintf(buf, sizeof(buf),
+ "window location: %d %d", ewin->x, ewin->y);
+ }
+ else if (!strcmp(param1, "??"))
+ {
+ Esnprintf(buf, sizeof(buf),
+ "client location: %d %d",
+ ewin->x + ewin->border->border.left,
+ ewin->y + ewin->border->border.top);
+ }
+ else
+ {
+ sscanf(params, "%*s %*s %i %i", &a, &b);
+ MoveResizeEwin(ewin, a, b, ewin->client.w, ewin->client.h);
+ }
+ }
+ else
+ {
+ Esnprintf(buf, sizeof(buf), "Error: no coords supplied");
+ }
+ }
+ else if (!strcmp(operation, "resize") || !strcmp(operation, "sz"))
+ {
+ int a, b;
- word(params, 3, param1);
- if (param1[0])
- {
- sscanf(params, "%*s %*s %i %i", &a, &b);
- a += ewin->x;
- b += ewin->y;
- MoveResizeEwin(ewin, a, b, ewin->client.w,
- ewin->client.h);
- }
- }
- else if (!strcmp(operation, "resize_relative"))
- {
- int a, b;
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ if (!strcmp(param1, "?"))
+ {
+ Esnprintf(buf, sizeof(buf),
+ "window size: %d %d", ewin->client.w,
+ ewin->client.h);
+ }
+ else if (!strcmp(param1, "??"))
+ {
+ Esnprintf(buf, sizeof(buf),
+ "frame size: %d %d", ewin->w, ewin->h);
+ }
+ else
+ {
+ sscanf(params, "%*s %*s %i %i", &a, &b);
+ MoveResizeEwin(ewin, ewin->x, ewin->y, a, b);
+ }
+ }
+ }
+ else if (!strcmp(operation, "move_relative") || !strcmp(operation, "mr"))
+ {
+ int a, b;
- word(params, 3, param1);
- if (param1[0])
- {
- sscanf(params, "%*s %*s %i %i", &a, &b);
- a += ewin->client.w;
- b += ewin->client.h;
- MoveResizeEwin(ewin, ewin->x, ewin->y, a, b);
- }
- }
- else if (!strcmp(operation, "focus"))
- {
- word(params, 3, param1);
- if (!strcmp(param1, "?"))
- {
- if (ewin == GetFocusEwin())
- {
- Esnprintf(buf, sizeof(buf), "focused: yes");
- }
- else
- {
- Esnprintf(buf, sizeof(buf), "focused: no");
- }
- }
- else
- {
- FocusToEWin(ewin);
- }
- }
- else
- {
- Esnprintf(buf, sizeof(buf), "Error: unknown operation");
- }
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ sscanf(params, "%*s %*s %i %i", &a, &b);
+ a += ewin->x;
+ b += ewin->y;
+ MoveResizeEwin(ewin, a, b, ewin->client.w, ewin->client.h);
+ }
+ }
+ else if (!strcmp(operation, "resize_relative") || !strcmp(operation, "sr"))
+ {
+ int a, b;
+
+ word(params, 3, param1);
+ if (param1[0])
+ {
+ sscanf(params, "%*s %*s %i %i", &a, &b);
+ a += ewin->client.w;
+ b += ewin->client.h;
+ MoveResizeEwin(ewin, ewin->x, ewin->y, a, b);
+ }
+ }
+ else if (!strncmp(operation, "focus", 2))
+ {
+ word(params, 3, param1);
+ if (!strcmp(param1, "?"))
+ {
+ if (ewin == GetFocusEwin())
+ {
+ Esnprintf(buf, sizeof(buf), "focused: yes");
+ }
+ else
+ {
+ Esnprintf(buf, sizeof(buf), "focused: no");
}
}
+ else
+ {
+ FocusToEWin(ewin);
+ }
}
else
{
- Esnprintf(buf, sizeof(buf), "Error: no window specified");
+ Esnprintf(buf, sizeof(buf), "Error: unknown operation");
}
+ exit:
if (buf[0])
CommsSend(c, buf);
}
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for IBM's
Free Linux Tutorials. Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs