Compare commits

...

11 Commits

Author SHA1 Message Date
Carsten Haitzler 8167d4e02d acpi - delay missing acpid dialog until after we've started up 3 years ago
Carsten Haitzler 4852760c8e win stacking - fix stacking transients if there are multiple 3 years ago
Carsten Haitzler d40788bc7b backlight - update timer on power plug/unplug 3 years ago
Riccardo Calixte 25ec83f91a Updating Meson build Wayland conditional to match Makefile 3 years ago
Davide Andreoli 2cdc51f866 PackageKit: fix count of available updates on fedora 3 years ago
Carsten Haitzler 6b2eb17c57 e randr - fix plug/unplug of external screen 3 years ago
Carsten Haitzler 0e0141484a release 0.23.1 3 years ago
Carsten Haitzler 6623bd2d1b mixer - try not to create notifications for no change in volume 3 years ago
Carsten Haitzler 19309a3e3a e build fix - make uuid an explicit dep of gadget loader 3 years ago
Carsten Haitzler c97ea9f1c0 e - fix up resize/move by kbd to work again 3 years ago
Carsten Haitzler af199f6c0f e comp object - fix null comp win access on move begin 3 years ago
  1. 8
      data/session/meson.build
  2. 2
      meson.build
  3. 18
      src/bin/e_acpi.c
  4. 41
      src/bin/e_actions.c
  5. 131
      src/bin/e_client.c
  6. 18
      src/bin/e_comp_object.c
  7. 35
      src/bin/e_randr2.c
  8. 2
      src/bin/e_screensaver.c
  9. 34
      src/bin/e_utils.c
  10. 10
      src/bin/e_utils.h
  11. 3
      src/bin/meson.build
  12. 20
      src/modules/mixer/gadget/backend.c
  13. 1
      src/modules/packagekit/e_mod_packagekit.c

@ -6,12 +6,12 @@ e_desktop = configure_file(input : 'enlightenment.desktop.in',
configuration: desktop_config
)
if config_h.has('HAVE_WAYLAND_ONLY') == false
if config_h.has('HAVE_WAYLAND') == true
install_data(e_desktop,
install_dir : join_paths(dir_data, 'xsessions'))
install_dir : join_paths(dir_data, 'wayland-sessions'))
endif
if config_h.has('HAVE_WAYLAND') == false
if config_h.has('HAVE_WAYLAND_ONLY') == false
install_data(e_desktop,
install_dir : join_paths(dir_data, 'wayland-sessions'))
install_dir : join_paths(dir_data, 'xsessions'))
endif

@ -1,6 +1,6 @@
##### project
project('enlightenment', 'c',
version : '0.23.0',
version : '0.23.1',
license : 'BSD 2 clause',
default_options: [ 'buildtype=release', 'c_std=gnu99', 'warning_level=2' ],
meson_version : '>= 0.47.0')

@ -125,6 +125,18 @@ static E_ACPI_Device_Multiplexed _devices_multiplexed[] =
/* public variables */
E_API int E_EVENT_ACPI = 0;
static Eina_Bool
_acpi_error_cb(void *data EINA_UNUSED)
{
e_util_dialog_show
(_("ACPI Error"),
_("You seem to have an ACPI based system, but<br>"
"<hilight>acpid</hilight> does not seem to be running or<br>"
"contactable. Perhaps enable the <hilight>acpid</hilight><br>"
"service on your system?"));
return EINA_FALSE;
}
/* public functions */
EINTERN int
e_acpi_init(void)
@ -135,11 +147,7 @@ e_acpi_init(void)
if (!ecore_file_exists("/var/run/acpid.socket"))
{
if (ecore_file_exists("/proc/acpi"))
e_util_dialog_show(_("Error"),
_("You seem to have an ACPI based system, but<br>"
"<hilight>acpid</hilight> does not seem to be running or<br>"
"contactable. Perhaps enable the <hilight>acpid</hilight><br>"
"service on your system?"));
ecore_timer_add(5.0, _acpi_error_cb, NULL);
return 1;
}

@ -103,7 +103,8 @@ ACT_FN_GO(window_move, EINA_UNUSED)
ACT_FN_GO_MOUSE(window_move, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return EINA_FALSE;
if (obj->type != E_CLIENT_TYPE) return EINA_FALSE;
e_client_act_move_begin((E_Client *)(void *)obj, ev);
@ -112,7 +113,8 @@ ACT_FN_GO_MOUSE(window_move, EINA_UNUSED)
ACT_FN_GO_SIGNAL(window_move, )
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (obj->type != E_CLIENT_TYPE) return;
if (!((E_Client *)(void *)obj)->lock_user_location)
@ -129,7 +131,8 @@ ACT_FN_GO_SIGNAL(window_move, )
ACT_FN_END(window_move, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (obj->type != E_CLIENT_TYPE) return;
e_client_act_move_end((E_Client *)(void *)obj, NULL);
@ -137,7 +140,8 @@ ACT_FN_END(window_move, EINA_UNUSED)
ACT_FN_END_MOUSE(window_move, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return EINA_FALSE;
if (obj->type != E_CLIENT_TYPE) return EINA_FALSE;
e_client_act_move_end((E_Client *)(void *)obj, ev);
@ -146,7 +150,8 @@ ACT_FN_END_MOUSE(window_move, EINA_UNUSED)
ACT_FN_GO_KEY(window_move, EINA_UNUSED, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (!((E_Client *)(void *)obj)->lock_user_location)
e_client_act_move_keyboard((E_Client *)(void *)obj);
@ -164,7 +169,8 @@ ACT_FN_GO(window_resize, EINA_UNUSED)
ACT_FN_GO_MOUSE(window_resize, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return EINA_FALSE;
if (obj->type != E_CLIENT_TYPE) return EINA_FALSE;
if (!((E_Client *)(void *)obj)->lock_user_size)
@ -174,7 +180,8 @@ ACT_FN_GO_MOUSE(window_resize, EINA_UNUSED)
ACT_FN_GO_SIGNAL(window_resize, )
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (obj->type != E_CLIENT_TYPE) return;
if (!((E_Client *)(void *)obj)->lock_user_size)
@ -194,7 +201,8 @@ ACT_FN_GO_SIGNAL(window_resize, )
ACT_FN_END(window_resize, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (obj->type != E_CLIENT_TYPE) return;
e_client_act_resize_end((E_Client *)(void *)obj, NULL);
@ -202,7 +210,8 @@ ACT_FN_END(window_resize, EINA_UNUSED)
ACT_FN_END_MOUSE(window_resize, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return EINA_FALSE;
if (obj->type != E_CLIENT_TYPE) return EINA_FALSE;
e_client_act_resize_end((E_Client *)(void *)obj, ev);
@ -211,7 +220,8 @@ ACT_FN_END_MOUSE(window_resize, EINA_UNUSED)
ACT_FN_GO_KEY(window_resize, EINA_UNUSED, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (obj->type != E_CLIENT_TYPE)
{
@ -233,7 +243,8 @@ ACT_FN_GO(window_menu, EINA_UNUSED)
ACT_FN_GO_MOUSE(window_menu, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return EINA_FALSE;
if (obj->type != E_CLIENT_TYPE)
{
@ -246,7 +257,8 @@ ACT_FN_GO_MOUSE(window_menu, EINA_UNUSED)
ACT_FN_GO_KEY(window_menu, EINA_UNUSED, EINA_UNUSED)
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (obj->type != E_CLIENT_TYPE)
{
@ -833,7 +845,8 @@ ACT_FN_GO(window_pinned_toggle, EINA_UNUSED)
/***************************************************************************/
ACT_FN_GO(window_move_by, )
{
if (!obj) obj = E_OBJECT(e_client_focused_get());
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
if (obj->type != E_CLIENT_TYPE)
{
@ -912,9 +925,9 @@ ACT_FN_GO(window_quick_tile_to_quadrant, )
{
E_Client *ec;
int x, y, zx, zy, zw, zh;
if ((!obj) || (obj->type != E_CLIENT_TYPE))
obj = E_OBJECT(e_client_focused_get());
if (!obj) return;
ec = (E_Client *)(void *)obj;

@ -820,15 +820,12 @@ _e_client_action_restore_orig(E_Client *ec)
static int
_e_client_key_down_modifier_apply(int modifier, int value)
{
if (modifier & ECORE_EVENT_MODIFIER_CTRL)
return value * 2;
if (modifier & ECORE_EVENT_MODIFIER_CTRL) return value * 5;
else if (modifier & ECORE_EVENT_MODIFIER_ALT)
{
value /= 2;
if (value)
return value;
else
return 1;
value /= 5;
if (value) return value;
else return 1;
}
return value;
@ -897,16 +894,17 @@ _e_client_action_move_timeout(void *data EINA_UNUSED)
static void
_e_client_action_move_timeout_add(void)
{
double timeout = e_config->border_keyboard.timeout;
E_FREE_FUNC(action_timer, ecore_timer_del);
if (EINA_DBL_NONZERO(e_config->border_keyboard.timeout))
action_timer = ecore_timer_loop_add(e_config->border_keyboard.timeout, _e_client_action_move_timeout, NULL);
if (!EINA_DBL_NONZERO(timeout)) timeout = 5.0;
action_timer = ecore_timer_loop_add(timeout, _e_client_action_move_timeout, NULL);
}
static Eina_Bool
_e_client_move_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
{
Ecore_Event_Key *ev = event;
int x, y;
int x, y, dx, dy;
if (!comp_grabbed) return ECORE_CALLBACK_RENEW;
if (!action_client)
@ -918,27 +916,28 @@ _e_client_move_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, void *even
x = action_client->x;
y = action_client->y;
if ((strcmp(ev->key, "Up") == 0) || (strcmp(ev->key, "k") == 0))
y -= _e_client_key_down_modifier_apply(ev->modifiers, MAX(e_config->border_keyboard.move.dy, 1));
else if ((strcmp(ev->key, "Down") == 0) || (strcmp(ev->key, "j") == 0))
y += _e_client_key_down_modifier_apply(ev->modifiers, MAX(e_config->border_keyboard.move.dy, 1));
else if ((strcmp(ev->key, "Left") == 0) || (strcmp(ev->key, "h") == 0))
x -= _e_client_key_down_modifier_apply(ev->modifiers, MAX(e_config->border_keyboard.move.dx, 1));
else if ((strcmp(ev->key, "Right") == 0) || (strcmp(ev->key, "l") == 0))
x += _e_client_key_down_modifier_apply(ev->modifiers, MAX(e_config->border_keyboard.move.dx, 1));
else if (strcmp(ev->key, "Return") == 0)
goto stop;
else if (strcmp(ev->key, "Escape") == 0)
dx = e_config->border_keyboard.move.dx;
dx = _e_client_key_down_modifier_apply(ev->modifiers, dx);
dy = e_config->border_keyboard.move.dy;
dy = _e_client_key_down_modifier_apply(ev->modifiers, dy);
switch (e_util_key_geometry_action_get(ev->key, &x, &y, dx, dy))
{
case E_UTIL_ACTION_DONE:
goto stop;
break;
case E_UTIL_ACTION_ABORT:
_e_client_action_restore_orig(action_client);
goto stop;
break;
case E_UTIL_ACTION_DO:
evas_object_move(action_client->frame, x, y);
_e_client_action_move_timeout_add();
break;
case E_UTIL_ACTION_NONE:
default:
break;
}
else if ((strncmp(ev->key, "Control", sizeof("Control") - 1) != 0) &&
(strncmp(ev->key, "Alt", sizeof("Alt") - 1) != 0))
goto stop;
evas_object_move(action_client->frame, x, y);
_e_client_action_move_timeout_add();
return ECORE_CALLBACK_PASS_ON;
@ -1118,9 +1117,10 @@ _e_client_action_resize_timeout(void *data EINA_UNUSED)
static void
_e_client_action_resize_timeout_add(void)
{
double timeout = e_config->border_keyboard.timeout;
E_FREE_FUNC(action_timer, ecore_timer_del);
if (EINA_DBL_NONZERO(e_config->border_keyboard.timeout))
action_timer = ecore_timer_loop_add(e_config->border_keyboard.timeout, _e_client_action_resize_timeout, NULL);
if (!EINA_DBL_NONZERO(timeout)) timeout = 5.0;
action_timer = ecore_timer_loop_add(timeout, _e_client_action_resize_timeout, NULL);
}
static Eina_Bool
@ -1140,48 +1140,41 @@ _e_client_resize_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev
h = action_client->h;
dx = e_config->border_keyboard.resize.dx;
if (dx < action_client->icccm.step_w)
dx = action_client->icccm.step_w;
if (dx < action_client->icccm.step_w) dx = action_client->icccm.step_w;
dx = _e_client_key_down_modifier_apply(ev->modifiers, dx);
if (dx < action_client->icccm.step_w)
dx = action_client->icccm.step_w;
if (dx < action_client->icccm.step_w) dx = action_client->icccm.step_w;
dy = e_config->border_keyboard.resize.dy;
if (dy < action_client->icccm.step_h)
dy = action_client->icccm.step_h;
if (dy < action_client->icccm.step_h) dy = action_client->icccm.step_h;
dy = _e_client_key_down_modifier_apply(ev->modifiers, dy);
if (dy < action_client->icccm.step_h)
dy = action_client->icccm.step_h;
if ((strcmp(ev->key, "Up") == 0) || (strcmp(ev->key, "k") == 0))
h -= dy;
else if ((strcmp(ev->key, "Down") == 0) || (strcmp(ev->key, "j") == 0))
h += dy;
else if ((strcmp(ev->key, "Left") == 0) || (strcmp(ev->key, "h") == 0))
w -= dx;
else if ((strcmp(ev->key, "Right") == 0) || (strcmp(ev->key, "l") == 0))
w += dx;
else if (strcmp(ev->key, "Return") == 0)
goto stop;
else if (strcmp(ev->key, "Escape") == 0)
if (dy < action_client->icccm.step_h) dy = action_client->icccm.step_h;
switch (e_util_key_geometry_action_get(ev->key, &w, &h, dx, dy))
{
case E_UTIL_ACTION_DONE:
goto stop;
break;
case E_UTIL_ACTION_ABORT:
_e_client_action_restore_orig(action_client);
goto stop;
}
else if ((strncmp(ev->key, "Control", sizeof("Control") - 1) != 0) &&
(strncmp(ev->key, "Alt", sizeof("Alt") - 1) != 0))
goto stop;
if (e_config->screen_limits == E_CLIENT_OFFSCREEN_LIMIT_ALLOW_NONE)
{
if (action_client->zone)
break;
case E_UTIL_ACTION_DO:
if (e_config->screen_limits == E_CLIENT_OFFSCREEN_LIMIT_ALLOW_NONE)
{
w = MIN(w, action_client->zone->w);
h = MIN(h, action_client->zone->h);
if (action_client->zone)
{
w = MIN(w, action_client->zone->w);
h = MIN(h, action_client->zone->h);
}
}
e_client_resize_limit(action_client, &w, &h);
evas_object_resize(action_client->frame, w, h);
_e_client_action_resize_timeout_add();
break;
case E_UTIL_ACTION_NONE:
default:
break;
}
e_client_resize_limit(action_client, &w, &h);
evas_object_resize(action_client->frame, w, h);
_e_client_action_resize_timeout_add();
return ECORE_CALLBACK_PASS_ON;
@ -2427,7 +2420,6 @@ e_client_idler_before(void)
if ((!eina_hash_population(clients_hash[0])) && (!eina_hash_population(clients_hash[1]))) return;
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
Eina_Stringshare *title;
@ -4870,17 +4862,15 @@ e_client_act_move_keyboard(E_Client *ec)
if (!_e_client_move_begin(ec))
return;
_e_client_action_init(ec);
_e_client_action_move_timeout_add();
if (!_e_client_hook_call(E_CLIENT_HOOK_MOVE_UPDATE, ec)) return;
evas_object_freeze_events_set(ec->frame, 1);
if (!action_handler_key)
action_handler_key = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _e_client_move_key_down, NULL);
if (!action_handler_mouse)
action_handler_mouse = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, _e_client_move_mouse_down, NULL);
_e_client_action_move_timeout_add();
}
E_API void
@ -4896,16 +4886,14 @@ e_client_act_resize_keyboard(E_Client *ec)
ec->keyboard_resizing = 0;
return;
}
_e_client_action_init(ec);
_e_client_action_resize_timeout_add();
evas_object_freeze_events_set(ec->frame, 1);
if (!action_handler_key)
action_handler_key = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _e_client_resize_key_down, NULL);
if (!action_handler_mouse)
action_handler_mouse = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, _e_client_resize_mouse_down, NULL);
_e_client_action_resize_timeout_add();
}
E_API void
@ -5727,11 +5715,10 @@ e_client_transients_restack(E_Client *ec)
if (!ec->transients) return;
list = eina_list_clone(ec->transients);
E_LIST_REVERSE_FREE(list, child)
EINA_LIST_FREE(list, child)
{
/* Don't stack iconic transients. If the user wants these shown,
* that's another option.
*/
// Don't stack iconic transients. If the user wants these shown,
// that's another option.
if (child->iconic) continue;
if (below)
{

@ -292,10 +292,18 @@ _e_comp_object_layers_add(E_Comp_Object *cw, E_Comp_Object *above, E_Comp_Object
if (!cw->ec) return;
*/
if (above)
e_comp->layers[above->layer].clients = eina_inlist_append_relative(e_comp->layers[above->layer].clients, EINA_INLIST_GET(cw->ec), EINA_INLIST_GET(above->ec));
{
cw->layer = above->layer;
e_comp->layers[above->layer].clients = eina_inlist_append_relative(e_comp->layers[above->layer].clients, EINA_INLIST_GET(cw->ec), EINA_INLIST_GET(above->ec));
e_comp->layers[above->layer].clients_count++;
}
else if (below)
e_comp->layers[below->layer].clients = eina_inlist_prepend_relative(e_comp->layers[below->layer].clients, EINA_INLIST_GET(cw->ec), EINA_INLIST_GET(below->ec));
if ((!above) && (!below))
{
cw->layer = below->layer;
e_comp->layers[below->layer].clients = eina_inlist_prepend_relative(e_comp->layers[below->layer].clients, EINA_INLIST_GET(cw->ec), EINA_INLIST_GET(below->ec));
e_comp->layers[below->layer].clients_count++;
}
else
{
if (prepend)
e_comp->layers[cw->layer].clients = eina_inlist_prepend(e_comp->layers[cw->layer].clients, EINA_INLIST_GET(cw->ec));
@ -303,8 +311,8 @@ _e_comp_object_layers_add(E_Comp_Object *cw, E_Comp_Object *above, E_Comp_Object
e_comp->layers[cw->layer].clients = eina_inlist_prepend_relative(e_comp->layers[cw->layer].clients, EINA_INLIST_GET(cw->ec), EINA_INLIST_GET(layer_cw->ec));
else //this is either the layer object or a tough actin tinactin^W^W^Wfast stacking client
e_comp->layers[cw->layer].clients = eina_inlist_append(e_comp->layers[cw->layer].clients, EINA_INLIST_GET(cw->ec));
e_comp->layers[cw->layer].clients_count++;
}
e_comp->layers[cw->layer].clients_count++;
#ifndef E_RELEASE_BUILD
if (layer_cw)
{
@ -2631,6 +2639,7 @@ _e_comp_object_move_end(void *d EINA_UNUSED, E_Client *ec)
Evas_Object *rect;
Eina_Array_Iterator it;
if (!cw) return;
if (!cw->input_objs) return;
EINA_ARRAY_ITER_NEXT(cw->input_objs, i, rect, it)
@ -2645,6 +2654,7 @@ _e_comp_object_move_begin(void *d EINA_UNUSED, E_Client *ec)
Evas_Object *rect;
Eina_Array_Iterator it;
if (!cw) return;
if (!cw->input_objs) return;
EINA_ARRAY_ITER_NEXT(cw->input_objs, i, rect, it)

@ -720,6 +720,7 @@ _cb_screen_change_delay(void *data EINA_UNUSED)
int lid_screens = 0;
int close_lid_screens = 0;
int external_screens = 0;
int prev_external_screens = 0;
E_Randr2 *rtemp;
printf("RRR: reconfigure screens due to event...\n");
@ -738,19 +739,41 @@ _cb_screen_change_delay(void *data EINA_UNUSED)
}
EINA_LIST_FOREACH(rtemp->screens, l, s)
{
printf("RRR: scr: %s lid=%i conn=%i\n", s->id, s->info.is_lid, s->info.connected);
// if (!s->id) continue;
if (s->info.is_lid)
{
printf("RRR: is lid, lid++\n");
lid_screens++;
if (s->info.lid_closed) close_lid_screens++;
if (s->info.lid_closed)
{
printf("RRR: is lid, is closed, closed++\n");
close_lid_screens++;
}
}
else
{
if ((s->info.connected) && (s->config.enabled))
external_screens++;
if (s->info.connected)
{
printf("RRR: is not lid, is connected, ext++\n");
external_screens++;
}
else
{
printf("RRR: is not lid, is not connected\n");
}
}
}
EINA_LIST_FOREACH(e_randr2->screens, l, s)
{
printf("RRR: prev_scr: %s lid=%i conn=%i\n", s->id, s->info.is_lid, s->info.connected);
// if (!s->id) continue;
if (!s->info.is_lid)
{
if (s->info.connected) prev_external_screens++;
}
}
printf("RRR: lids=%i closed=%i ext=%i\n", lid_screens, close_lid_screens, external_screens);
printf("RRR: lids=%i closed=%i ext=%i prev_ext=%i\n", lid_screens, close_lid_screens, external_screens, prev_external_screens);
_info_free(rtemp);
}
printf("RRR: change = %i\n", change);
@ -759,7 +782,7 @@ _cb_screen_change_delay(void *data EINA_UNUSED)
if (change)
{
if ((lid_screens > 0) && (close_lid_screens == lid_screens) &&
(external_screens == 0))
(external_screens == 0) && (external_screens == prev_external_screens))
{
printf("RRR: skip change with all lids closed and no ext\n");
change = EINA_FALSE;
@ -774,7 +797,7 @@ _cb_screen_change_delay(void *data EINA_UNUSED)
// force dpms...
}
if ((lid_screens > 0) && (close_lid_screens < lid_screens) &&
(external_screens == 0))
(external_screens == 0) && (external_screens == prev_external_screens))
{
printf("RRR: skip change with lid screens open and no ext\n");
change = EINA_FALSE;

@ -291,6 +291,8 @@ _e_screensaver_suspend_cb(void *data EINA_UNUSED)
static Eina_Bool
_e_screensaver_handler_powersave_cb(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
{
_e_screensaver_timeout = -1;
e_screensaver_update();
if ((e_config->screensaver_suspend) && (_e_screensaver_on))
{
if (_e_screensaver_suspend_timer)

@ -1506,3 +1506,37 @@ e_util_exe_safe_run(const char *cmd, void *data)
#endif
return ecore_exe_pipe_run(cmd, flags, data);
}
static Eina_Bool
str_matches_one(const char *instr, const char **strset)
{
int i;
if ((!instr) || (!strset)) return EINA_FALSE;
for (i = 0; strset[i]; i++)
{
if (!strcmp(strset[i], instr)) return EINA_TRUE;
}
return EINA_FALSE;
}
E_API E_Util_Action
e_util_key_geometry_action_get(const char *key, int *x, int *y, int dx, int dy)
{
const char *k_up[] = { "Up", "KP_Up", "k", "K", "w", "W", NULL };
const char *k_down[] = { "Down", "KP_Down", "j", "J", "s", "S", NULL };
const char *k_left[] = { "Left", "KP_Left", "h", "H", "a", "A", NULL };
const char *k_right[] = { "Right", "KP_Right", "l", "L", "d", "D", NULL };
const char *k_done[] = { "Return", "KP_Enter", "space", NULL };
const char *k_abort[] = { "Escape", "BackSpace", "Delete", "x", "X", NULL };
if (str_matches_one(key, k_up)) *y -= dy;
else if (str_matches_one(key, k_down)) *y += dy;
else if (str_matches_one(key, k_left)) *x -= dx;
else if (str_matches_one(key, k_right)) *x += dx;
else if (str_matches_one(key, k_done)) return E_UTIL_ACTION_DONE;
else if (str_matches_one(key, k_abort)) return E_UTIL_ACTION_ABORT;
else return E_UTIL_ACTION_NONE;
return E_UTIL_ACTION_DO;
}

@ -70,6 +70,16 @@ E_API Ecore_Exe *e_util_open(const char *exe, void *data);
E_API Ecore_Exe *e_util_exe_safe_run(const char *cmd, void *data);
typedef enum
{
E_UTIL_ACTION_NONE,
E_UTIL_ACTION_DONE,
E_UTIL_ACTION_ABORT,
E_UTIL_ACTION_DO
} E_Util_Action;
E_API E_Util_Action e_util_key_geometry_action_get(const char *key, int *x, int *y, int dx, int dy);
static inline Eina_Bool
isedje(const Evas_Object *obj)
{

@ -577,7 +577,8 @@ if config_h.has('HAVE_WAYLAND') == true
name_prefix: '',
include_directories: include_directories('../..'),
dependencies: [
dep_dl,
dep_dl,
dependency('uuid'),
dependency('elementary'),
dependency('ecore-wl2'),
dependency('wayland-client'),

@ -351,10 +351,8 @@ _sink_event(int type, void *info)
if (sink == _sink_default)
{
l = emix_sinks_get();
if (l)
_sink_default = l->data;
else
_sink_default = NULL;
if (l) _sink_default = l->data;
else _sink_default = NULL;
if (emix_config_save_get()) e_config_save_queue();
_backend_changed();
}
@ -363,15 +361,17 @@ _sink_event(int type, void *info)
{
if (_sink_default == sink)
{
static int prev_vol = -1;
int vol;
_backend_changed();
if (sink->mute || !sink->volume.channel_count)
vol = 0;
else
vol = sink->volume.volumes[0];
_notify(vol);
if (sink->mute || !sink->volume.channel_count) vol = 0;
else vol = sink->volume.volumes[0];
if (vol != prev_vol)
{
_notify(vol);
prev_vol = vol;
}
}
}
else

@ -34,6 +34,7 @@ packagekit_icon_update(E_PackageKit_Module_Context *ctxt,
case PK_INFO_ENUM_BUGFIX:
case PK_INFO_ENUM_IMPORTANT:
case PK_INFO_ENUM_SECURITY:
case PK_INFO_ENUM_AVAILABLE:
count++;
break;
default:

Loading…
Cancel
Save