Handle dragables a bit better. This also removes the config option from the
config dialog for locking. SVN revision: 44517
This commit is contained in:
parent
ae8da17111
commit
f9c88ca73e
|
@ -103,11 +103,17 @@ _gc_id_new(E_Gadcon_Client_Class *cc)
|
|||
static void
|
||||
_btn_cb_click(void *data, void *data2)
|
||||
{
|
||||
if (il_cfg->policy.mode.dual)
|
||||
il_cfg->policy.mode.dual = 0;
|
||||
Ecore_X_Window xwin;
|
||||
Ecore_X_Illume_Mode mode;
|
||||
|
||||
if (il_cfg->policy.mode.dual)
|
||||
mode = ECORE_X_ILLUME_MODE_SINGLE;
|
||||
else
|
||||
il_cfg->policy.mode.dual = 1;
|
||||
e_config_save_queue();
|
||||
mode = ECORE_X_ILLUME_MODE_DUAL;
|
||||
|
||||
xwin = ecore_x_window_root_first_get();
|
||||
ecore_x_e_illume_mode_set(xwin, mode);
|
||||
ecore_x_e_illume_mode_send(xwin, mode);
|
||||
}
|
||||
|
||||
/* public functions */
|
||||
|
|
|
@ -678,6 +678,8 @@ _cb_event_client_message(void *data, int type, void *event)
|
|||
else if (ev->message_type == ECORE_X_ATOM_E_ILLUME_MODE)
|
||||
{
|
||||
Ecore_X_Illume_Mode mode;
|
||||
E_Border *bd;
|
||||
int lock = 1;
|
||||
|
||||
mode = ecore_x_e_illume_mode_get(ev->win);
|
||||
if (mode == ECORE_X_ILLUME_MODE_SINGLE)
|
||||
|
@ -687,6 +689,17 @@ _cb_event_client_message(void *data, int type, void *event)
|
|||
else /* unknown */
|
||||
il_cfg->policy.mode.dual = 0;
|
||||
e_config_save_queue();
|
||||
|
||||
if (mode == ECORE_X_ILLUME_MODE_DUAL)
|
||||
{
|
||||
if (il_cfg->policy.mode.side == 0) lock = 0;
|
||||
}
|
||||
bd = illume_border_top_shelf_get();
|
||||
if (bd)
|
||||
ecore_x_e_illume_drag_locked_set(bd->client.win, lock);
|
||||
bd = illume_border_bottom_panel_get();
|
||||
if (bd)
|
||||
ecore_x_e_illume_drag_locked_set(bd->client.win, lock);
|
||||
}
|
||||
else if (ev->message_type == ECORE_X_ATOM_E_ILLUME_BACK)
|
||||
{
|
||||
|
|
|
@ -78,19 +78,6 @@ _il_config_policy_settings_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_
|
|||
_il_config_policy_settings_changed, NULL);
|
||||
e_widget_list_object_append(list, of, 1, 0, 0.0);
|
||||
|
||||
of = e_widget_framelist_add(evas, _("Drag"), 0);
|
||||
ow = e_widget_check_add(evas, _("Lock Top Shelf Position"),
|
||||
&(il_cfg->policy.indicator.locked));
|
||||
evas_object_smart_callback_add(ow, "changed",
|
||||
_il_config_policy_settings_changed, NULL);
|
||||
e_widget_framelist_object_append(of, ow);
|
||||
ow = e_widget_check_add(evas, _("Lock Bottom Panel Position"),
|
||||
&(il_cfg->policy.softkey.locked));
|
||||
evas_object_smart_callback_add(ow, "changed",
|
||||
_il_config_policy_settings_changed, NULL);
|
||||
e_widget_framelist_object_append(of, ow);
|
||||
e_widget_list_object_append(list, of, 1, 0, 0.0);
|
||||
|
||||
e_widget_disabled_set(o_top, !il_cfg->policy.mode.dual);
|
||||
e_widget_disabled_set(o_left, !il_cfg->policy.mode.dual);
|
||||
|
||||
|
@ -100,17 +87,9 @@ _il_config_policy_settings_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_
|
|||
static void
|
||||
_il_config_policy_settings_changed(void *data, Evas_Object *obj, void *event)
|
||||
{
|
||||
E_Border *bd;
|
||||
|
||||
bd = illume_border_top_shelf_get();
|
||||
if (bd) ecore_x_e_illume_drag_locked_set(bd->client.win,
|
||||
il_cfg->policy.indicator.locked);
|
||||
bd = illume_border_bottom_panel_get();
|
||||
if (bd) ecore_x_e_illume_drag_locked_set(bd->client.win,
|
||||
il_cfg->policy.softkey.locked);
|
||||
|
||||
e_widget_disabled_set(o_top, !il_cfg->policy.mode.dual);
|
||||
e_widget_disabled_set(o_left, !il_cfg->policy.mode.dual);
|
||||
|
||||
if (_ps_change_timer) ecore_timer_del(_ps_change_timer);
|
||||
_ps_change_timer =
|
||||
ecore_timer_add(0.5, _il_config_policy_settings_change_timeout, data);
|
||||
|
@ -119,7 +98,18 @@ _il_config_policy_settings_changed(void *data, Evas_Object *obj, void *event)
|
|||
static int
|
||||
_il_config_policy_settings_change_timeout(void *data)
|
||||
{
|
||||
Ecore_X_Illume_Mode mode;
|
||||
|
||||
e_config_save_queue();
|
||||
_ps_change_timer = NULL;
|
||||
|
||||
if (il_cfg->policy.mode.dual)
|
||||
mode = ECORE_X_ILLUME_MODE_DUAL;
|
||||
else
|
||||
mode = ECORE_X_ILLUME_MODE_SINGLE;
|
||||
|
||||
ecore_x_e_illume_mode_set(ecore_x_window_root_first_get(), mode);
|
||||
ecore_x_e_illume_mode_send(ecore_x_window_root_first_get(), mode);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue