forked from enlightenment/enlightenment
add MISC client property event to be manually triggered whenever misc props change
there's too many properties to create flags/events for all of them, so just use this if it's one of the many misc props currently only used for skip_{pager,taskbar,winlist}
This commit is contained in:
parent
bda9bfb8c0
commit
2b984e68b9
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue