This is an automated email from the git hooks/post-receive script.
git pushed a commit to reference refs/pull/116/head
in repository enlightenment.
View the commit online.
commit 290d5a618f5a77ab02498fc1b496fe9037705f4d
Author: Swagtoy <m...@ow.swag.toys>
AuthorDate: Tue Jun 24 22:58:12 2025 -0400
ibar: Allow for activating windows on click
Makes clicking an instance feel more 'traditional' in the sense that it won't launch a new instance on each left click.
Doesn't know anything about the last used window yet and could use some more tuneups
---
src/modules/ibar/e_mod_config.c | 5 +++++
src/modules/ibar/e_mod_main.c | 15 +++++++++++----
src/modules/ibar/e_mod_main.h | 1 +
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/modules/ibar/e_mod_config.c b/src/modules/ibar/e_mod_config.c
index d8c4c5a5b..b384af0ac 100644
--- a/src/modules/ibar/e_mod_config.c
+++ b/src/modules/ibar/e_mod_config.c
@@ -9,6 +9,7 @@ struct _E_Config_Dialog_Data
int track_launch;
int dont_add_nonorder;
int icon_menu_mouseover;
+ int activate_click;
Evas_Object *tlist;
Evas_Object *radio_name;
@@ -71,6 +72,7 @@ _fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
cfdata->lock_move = ci->lock_move;
cfdata->dont_add_nonorder = ci->dont_add_nonorder;
cfdata->track_launch = !ci->dont_track_launch;
+ cfdata->activate_click = ci->activate_click;
cfdata->icon_menu_mouseover = !ci->dont_icon_menu_mouseover;
}
@@ -148,6 +150,8 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dia
of = e_widget_framelist_add(evas, _("Misc"), 0);
ob = e_widget_check_add(evas, _("Lock icon move"), &(cfdata->lock_move));
e_widget_framelist_object_append(of, ob);
+ ob = e_widget_check_add(evas, _("Activate window on click"), &(cfdata->activate_click));
+ e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Don't show active windows"), &(cfdata->dont_add_nonorder));
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Track launch"), &(cfdata->track_launch));
@@ -174,6 +178,7 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
ci->lock_move = cfdata->lock_move;
ci->dont_add_nonorder = cfdata->dont_add_nonorder;
ci->dont_track_launch = !cfdata->track_launch;
+ ci->activate_click = cfdata->activate_click;
ci->dont_icon_menu_mouseover = !cfdata->icon_menu_mouseover;
_ibar_config_update(ci);
e_config_save_queue();
diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 38581484a..a348738e6 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -1797,7 +1797,7 @@ _ibar_instance_watch(void *data, E_Exec_Instance *inst, E_Exec_Watch_Type type)
static void
_ibar_icon_go(IBar_Icon *ic, Eina_Bool keep_going)
{
- if (ic->not_in_order)
+ if (ic->not_in_order || ic->ibar->inst->ci->activate_click)
{
Eina_List *l, *ll;
E_Exec_Instance *exe;
@@ -1809,7 +1809,7 @@ _ibar_icon_go(IBar_Icon *ic, Eina_Bool keep_going)
EINA_LIST_FOREACH(exe->clients, ll, ec)
{
count++;
- if (count > 1)
+ if (count > 1 && !ic->ibar->inst->ci->activate_click)
{
ecore_job_add((Ecore_Cb)_ibar_cb_icon_menu_job_cb, ic);
return;
@@ -1818,8 +1818,14 @@ _ibar_icon_go(IBar_Icon *ic, Eina_Bool keep_going)
}
}
if (eclast)
- e_client_activate(eclast, 1);
- return;
+ {
+ if (e_client_focused_get() == eclast)
+ e_client_iconify(eclast);
+ else
+ e_client_activate(eclast, 1);
+ }
+ if (! ic->ibar->inst->ci->activate_click || eclast)
+ return;
}
if (ic->app->type == EFREET_DESKTOP_TYPE_APPLICATION)
{
@@ -2882,6 +2888,7 @@ e_modapi_init(E_Module *m)
E_CONFIG_VAL(D, T, lock_move, INT);
E_CONFIG_VAL(D, T, dont_add_nonorder, INT);
E_CONFIG_VAL(D, T, dont_track_launch, UCHAR);
+ E_CONFIG_VAL(D, T, activate_click, UCHAR);
E_CONFIG_VAL(D, T, dont_icon_menu_mouseover, UCHAR);
conf_edd = E_CONFIG_DD_NEW("IBar_Config", Config);
diff --git a/src/modules/ibar/e_mod_main.h b/src/modules/ibar/e_mod_main.h
index 5f587e75b..6c065ca4d 100644
--- a/src/modules/ibar/e_mod_main.h
+++ b/src/modules/ibar/e_mod_main.h
@@ -23,6 +23,7 @@ struct _Config_Item
int eap_label;
int lock_move;
int dont_add_nonorder;
+ unsigned char activate_click;
unsigned char dont_track_launch;
unsigned char dont_icon_menu_mouseover;
};
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.