Hi,
here is a little patch to add the remember taskbar in the window menu.
It also add them to the remember possibilities. And the skip window list is
modified to trigger a E_EVENT_BORDER_PROPERTY when changed.
lok
Index: src/bin/e_border.c
===
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.629
diff -u -r1.629 e_border.c
--- src/bin/e_border.c 7 Mar 2008 11:51:31 - 1.629
+++ src/bin/e_border.c 7 Mar 2008 12:19:29 -
@@ -5204,7 +5204,6 @@
if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK)
{
- /* TODO: Make this user options */
if (!bd->client.netwm.state.skip_pager)
{
bd->client.netwm.state.skip_pager = 1;
@@ -5837,6 +5836,10 @@
}
if (rem->apply & E_REMEMBER_APPLY_SKIP_WINLIST)
bd->user_skip_winlist = rem->prop.skip_winlist;
+ if (rem->apply & E_REMEMBER_APPLY_SKIP_PAGER)
+ bd->client.netwm.state.skip_pager = rem->prop.skip_pager;
+ if (rem->apply & E_REMEMBER_APPLY_SKIP_TASKBAR)
+ bd->client.netwm.state.skip_taskbar = rem->prop.skip_taskbar;
if (rem->apply & E_REMEMBER_APPLY_ICON_PREF)
bd->icon_preference = rem->prop.icon_preference;
if (rem->apply & E_REMEMBER_SET_FOCUS_ON_START)
Index: src/bin/e_remember.c
===
RCS file: /cvs/e/e17/apps/e/src/bin/e_remember.c,v
retrieving revision 1.24
diff -u -r1.24 e_remember.c
--- src/bin/e_remember.c 15 Jul 2007 08:28:03 - 1.24
+++ src/bin/e_remember.c 7 Mar 2008 12:19:34 -
@@ -288,6 +288,8 @@
rem->prop.shaded = 50 + bd->shade.dir;
rem->prop.skip_winlist = bd->user_skip_winlist;
+ rem->prop.skip_pager = bd->client.netwm.state.skip_pager;
+ rem->prop.skip_taskbar = bd->client.netwm.state.skip_taskbar;
rem->prop.icon_preference = bd->icon_preference;
e_desk_xy_get(bd->desk, &rem->prop.desk_x, &rem->prop.desk_y);
Index: src/bin/e_remember.h
===
RCS file: /cvs/e/e17/apps/e/src/bin/e_remember.h,v
retrieving revision 1.12
diff -u -r1.12 e_remember.h
--- src/bin/e_remember.h 28 Dec 2007 03:18:37 - 1.12
+++ src/bin/e_remember.h 7 Mar 2008 12:19:34 -
@@ -23,8 +23,10 @@
#define E_REMEMBER_APPLY_ZONE (1 << 8)
#define E_REMEMBER_APPLY_RUN (1 << 9)
#define E_REMEMBER_APPLY_SKIP_WINLIST (1 << 10)
-#define E_REMEMBER_APPLY_ICON_PREF (1 << 11)
-#define E_REMEMBER_SET_FOCUS_ON_START (1 << 12)
+#define E_REMEMBER_APPLY_SKIP_PAGER (1 << 11)
+#define E_REMEMBER_APPLY_SKIP_TASKBAR (1 << 12)
+#define E_REMEMBER_APPLY_ICON_PREF (1 << 13)
+#define E_REMEMBER_SET_FOCUS_ON_START (1 << 14)
#else
#ifndef E_REMEMBER_H
@@ -81,6 +83,8 @@
unsigned char sticky;
unsigned char shaded;
unsigned char skip_winlist;
+ unsigned char skip_pager;
+ unsigned char skip_taskbar;
unsigned char icon_preference;
int desk_x, desk_y;
Index: src/bin/e_int_border_menu.c
===
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_border_menu.c,v
retrieving revision 1.78
diff -u -r1.78 e_int_border_menu.c
--- src/bin/e_int_border_menu.c 12 Jan 2008 07:58:18 - 1.78
+++ src/bin/e_int_border_menu.c 7 Mar 2008 12:19:36 -
@@ -24,6 +24,7 @@
static void _e_border_menu_cb_fullscreen(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_skip_winlist(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_skip_pager(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_border_menu_cb_skip_taskbar(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_sendto(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_border_menu_cb_pin(void *data, E_Menu *m, E_Menu_Item *mi);
@@ -660,6 +661,7 @@
bd->user_skip_winlist = e_menu_item_toggle_get(mi);
else
bd->user_skip_winlist = 0;
+ bd->changed = 1;
if (bd->remember) e_remember_update(bd->remember, bd);
}
@@ -680,6 +682,22 @@
}
static void
+_e_border_menu_cb_skip_taskbar(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+ E_Border *bd;
+
+ bd = data;
+ if (!bd) return;
+
+ if ((bd->client.icccm.accepts_focus) || (bd->client.icccm.take_focus))
+ bd->client.netwm.state.skip_taskbar = e_menu_item_toggle_get(mi);
+ else
+ bd->client.netwm.state.skip_taskbar = 0;
+ bd->changed = 1;
+ if (bd->remember) e_remember_update(bd->remember, bd);
+}
+
+static void
_e_border_menu_cb_sendto_pre(void *data, E_Menu *m, E_Menu_Item *mi)
{
E_Menu *subm;
@@ -985,6 +1003,16 @@
e_theme_edje_file_get("base/theme/borders",
"e/widgets/border/default/skip_pager"),
"e/widgets/border/default/skip_pager");
+
+ submi = e_menu_item_new(subm);
+ e_menu_item_label_set(submi, _("Taskbar"));
+ e_menu_item_check_set(submi, 1);
+ e_menu_it