diff --git a/src/bin/e_client.c b/src/bin/e_client.c index f8a4b70c8..d9619f29b 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -4775,6 +4775,13 @@ e_client_pinned_set(E_Client *ec, Eina_Bool set) EC_CHANGED(ec); } +E_API void +e_client_prop_misc_changed(E_Client *ec) +{ + EINA_SAFETY_ON_NULL_RETURN(ec); + _e_client_event_property(ec, E_CLIENT_PROPERTY_MISC); +} + /////////////////////////////////////// E_API Eina_Bool diff --git a/src/bin/e_client.h b/src/bin/e_client.h index 5bc50fa5d..c2a7e0cae 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -134,6 +134,7 @@ typedef enum E_Client_Property E_CLIENT_PROPERTY_GRAVITY = (1 << 5), E_CLIENT_PROPERTY_NETWM_STATE = (1 << 6), E_CLIENT_PROPERTY_STICKY = (1 << 7), + E_CLIENT_PROPERTY_MISC = (1 << 31), } E_Client_Property; typedef struct E_Client E_Client; @@ -820,6 +821,7 @@ E_API void e_client_urgent_set(E_Client *ec, Eina_Bool urgent); E_API void e_client_stick(E_Client *ec); E_API void e_client_unstick(E_Client *ec); E_API void e_client_pinned_set(E_Client *ec, Eina_Bool set); +E_API void e_client_prop_misc_changed(E_Client *ec); E_API void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden); E_API Eina_Bool e_client_border_set(E_Client *ec, const char *name); E_API void e_client_act_move_keyboard(E_Client *ec); diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c index 6b1fff4c2..f42219c56 100644 --- a/src/bin/e_hints.c +++ b/src/bin/e_hints.c @@ -859,6 +859,7 @@ e_hints_window_state_update(E_Client *ec, int state, int action) ec->netwm.state.skip_taskbar = 0; ec->netwm.update.state = 1; EC_CHANGED(ec); + e_client_prop_misc_changed(ec); } break; @@ -868,6 +869,7 @@ e_hints_window_state_update(E_Client *ec, int state, int action) ec->netwm.state.skip_taskbar = 1; ec->netwm.update.state = 1; EC_CHANGED(ec); + e_client_prop_misc_changed(ec); } break; @@ -875,6 +877,7 @@ e_hints_window_state_update(E_Client *ec, int state, int action) ec->netwm.state.skip_taskbar = !ec->netwm.state.skip_taskbar; ec->netwm.update.state = 1; EC_CHANGED(ec); + e_client_prop_misc_changed(ec); break; } break; @@ -888,6 +891,7 @@ e_hints_window_state_update(E_Client *ec, int state, int action) ec->netwm.state.skip_pager = 0; ec->netwm.update.state = 1; EC_CHANGED(ec); + e_client_prop_misc_changed(ec); } break; @@ -897,6 +901,7 @@ e_hints_window_state_update(E_Client *ec, int state, int action) ec->netwm.state.skip_pager = 1; ec->netwm.update.state = 1; EC_CHANGED(ec); + e_client_prop_misc_changed(ec); } break; @@ -904,6 +909,7 @@ e_hints_window_state_update(E_Client *ec, int state, int action) ec->netwm.state.skip_pager = !ec->netwm.state.skip_pager; ec->netwm.update.state = 1; EC_CHANGED(ec); + e_client_prop_misc_changed(ec); break; } break; diff --git a/src/bin/e_int_client_menu.c b/src/bin/e_int_client_menu.c index f66aaa4b2..c64795978 100644 --- a/src/bin/e_int_client_menu.c +++ b/src/bin/e_int_client_menu.c @@ -949,7 +949,10 @@ _e_client_menu_cb_skip_winlist(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *m if (((ec->icccm.accepts_focus) || (ec->icccm.take_focus)) && (!ec->netwm.state.skip_taskbar)) - ec->user_skip_winlist = e_menu_item_toggle_get(mi); + { + ec->user_skip_winlist = e_menu_item_toggle_get(mi); + e_client_prop_misc_changed(ec); + } else ec->user_skip_winlist = 0; EC_CHANGED(ec); @@ -964,7 +967,10 @@ _e_client_menu_cb_skip_pager(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi) if (!(ec = data)) return; if ((ec->icccm.accepts_focus) || (ec->icccm.take_focus)) - ec->netwm.state.skip_pager = e_menu_item_toggle_get(mi); + { + ec->netwm.state.skip_pager = e_menu_item_toggle_get(mi); + e_client_prop_misc_changed(ec); + } else ec->netwm.state.skip_pager = 0; EC_CHANGED(ec); @@ -979,7 +985,10 @@ _e_client_menu_cb_skip_taskbar(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *m if (!(ec = data)) return; if ((ec->icccm.accepts_focus) || (ec->icccm.take_focus)) - ec->netwm.state.skip_taskbar = e_menu_item_toggle_get(mi); + { + ec->netwm.state.skip_taskbar = e_menu_item_toggle_get(mi); + e_client_prop_misc_changed(ec); + } else ec->netwm.state.skip_taskbar = 0; EC_CHANGED(ec);