diff --git a/ChangeLog b/ChangeLog index 054b6fb52..c3efab9d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2013-05-29 Mike Blumenkrantz * added e_border_inset utility functions + * new winlist config option for moving selected window to current desk 2013-05-29 Mike Blumenkrantz diff --git a/NEWS b/NEWS index 4b6ff2de7..2a5fefdde 100644 --- a/NEWS +++ b/NEWS @@ -53,6 +53,7 @@ Additions: * Added support for systemd user session * Added support for systemd hibernate and suspend * added support for systemd halt and poweroff + * new winlist config option for moving selected window to current desk Changes: Modules: diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 2db11e399..3a5519ec0 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -505,6 +505,7 @@ _e_config_edd_init(Eina_Bool old) E_CONFIG_VAL(D, T, winlist_list_jump_desk_while_selecting, INT); /**/ E_CONFIG_VAL(D, T, winlist_list_focus_while_selecting, INT); /**/ E_CONFIG_VAL(D, T, winlist_list_raise_while_selecting, INT); /**/ + E_CONFIG_VAL(D, T, winlist_list_move_after_select, INT); /**/ E_CONFIG_VAL(D, T, winlist_pos_align_x, DOUBLE); /**/ E_CONFIG_VAL(D, T, winlist_pos_align_y, DOUBLE); /**/ E_CONFIG_VAL(D, T, winlist_pos_size_w, DOUBLE); /**/ diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 2369bd34f..562bfa038 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -140,6 +140,7 @@ struct _E_Config int winlist_list_jump_desk_while_selecting; // GUI int winlist_list_focus_while_selecting; // GUI int winlist_list_raise_while_selecting; // GUI + int winlist_list_move_after_select; // GUI double winlist_pos_align_x; // GUI double winlist_pos_align_y; // GUI double winlist_pos_size_w; // GUI diff --git a/src/modules/winlist/e_int_config_winlist.c b/src/modules/winlist/e_int_config_winlist.c index 6c3b444f5..be1df80fc 100644 --- a/src/modules/winlist/e_int_config_winlist.c +++ b/src/modules/winlist/e_int_config_winlist.c @@ -21,6 +21,7 @@ struct _E_Config_Dialog_Data int warp_at_end; int no_warp_on_direction; int jump_desk; + int move_after_select; int scroll_animate; double scroll_speed; @@ -62,6 +63,7 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->raise = e_config->winlist_list_raise_while_selecting; cfdata->uncover = e_config->winlist_list_uncover_while_selecting; cfdata->jump_desk = e_config->winlist_list_jump_desk_while_selecting; + cfdata->move_after_select = e_config->winlist_list_move_after_select; cfdata->windows_other_desks = e_config->winlist_list_show_other_desk_windows; @@ -119,6 +121,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) DO(list_show_other_screen_windows, windows_other_screens); DO(list_uncover_while_selecting, uncover); DO(list_jump_desk_while_selecting, jump_desk); + DO(list_move_after_select, move_after_select); DO(warp_while_selecting, warp_while_selecting); DO(warp_at_end, warp_at_end); DO(no_warp_on_direction, no_warp_on_direction); @@ -152,6 +155,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda DO(list_show_other_screen_windows, windows_other_screens); DO(list_uncover_while_selecting, uncover); DO(list_jump_desk_while_selecting, jump_desk); + DO(list_move_after_select, move_after_select); DO(warp_while_selecting, warp_while_selecting); DO(warp_at_end, warp_at_end); DO(no_warp_on_direction, no_warp_on_direction); @@ -173,7 +177,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda static Evas_Object * _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata) { - Evas_Object *otb, *ol, *ob, *iconified, *scroll_animate; + Evas_Object *otb, *ol, *ob, *iconified, *scroll_animate, *ck; otb = e_widget_toolbook_add(evas, (48 * e_scale), (48 * e_scale)); @@ -216,7 +220,11 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data &(cfdata->no_warp_on_direction)); e_widget_disabled_set(ob, e_config->disable_all_pointer_warps); e_widget_list_object_append(ol, ob, 1, 0, 0.0); - ob = e_widget_check_add(evas, _("Jump to desk"), &(cfdata->jump_desk)); + ck = ob = e_widget_check_add(evas, _("Jump to desk"), &(cfdata->jump_desk)); + e_widget_list_object_append(ol, ob, 1, 0, 0.0); + ob = e_widget_check_add(evas, _("Move to current desk after switch"), &(cfdata->move_after_select)); + e_widget_check_widget_disable_on_checked_add(ck, ob); + e_widget_check_widget_disable_on_checked_add(ob, ck); e_widget_list_object_append(ol, ob, 1, 0, 0.0); e_widget_toolbook_page_append(otb, NULL, _("Selecting"), ol, 0, 0, 1, 0, 0.5, 0.0); diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c index c88a9a83a..7eb824079 100644 --- a/src/modules/winlist/e_winlist.c +++ b/src/modules/winlist/e_winlist.c @@ -269,6 +269,11 @@ e_winlist_hide(void) if (!bd->lock_user_shade) e_border_unshade(bd, bd->shade.dir); } + if (e_config->winlist_list_move_after_select) + { + e_border_zone_set(bd, e_zone_current_get(e_util_container_current_get())); + e_border_desk_set(bd, e_desk_current_get(bd->zone)); + } else if (bd->desk) { if (!bd->sticky) e_desk_show(bd->desk);