static E_Quick_Access_Entry * _e_qa_entry_find_border(const E_Client *ec) { E_Quick_Access_Entry *entry; const Eina_List *n; EINA_LIST_FOREACH(qa_config->transient_entries, n, entry) if ((ec->pixmap && (entry->win == e_client_util_win_get(ec))) || (entry->client == ec)) return entry; EINA_LIST_FOREACH(qa_config->entries, n, entry) if (entry->client == ec) return entry; return NULL; }
static void _create_data(E_Dialog *cfd, E_Client *ec) { E_Config_Dialog_Data *cfdata; char buf[4096]; cfdata = E_NEW(E_Config_Dialog_Data, 1); cfdata->client = ec; ec->border_prop_dialog = cfd; #define IFDUP(prop, dest) \ if (cfdata->client->prop) \ cfdata->dest = strdup(cfdata->client->prop) IFDUP(icccm.title, icccm.title); IFDUP(icccm.name, icccm.name); IFDUP(icccm.class, icccm.class); IFDUP(icccm.icon_name, icccm.icon_name); IFDUP(icccm.machine, icccm.machine); IFDUP(icccm.window_role, icccm.role); if (cfdata->client->icccm.min_w >= 0) { snprintf(buf, sizeof(buf), _("%i×%i"), cfdata->client->icccm.min_w, cfdata->client->icccm.min_h); cfdata->icccm.min = strdup(buf); } if (cfdata->client->icccm.max_w >= 0) { snprintf(buf, sizeof(buf), _("%i×%i"), cfdata->client->icccm.max_w, cfdata->client->icccm.max_h); cfdata->icccm.max = strdup(buf); } if (cfdata->client->icccm.base_w >= 0) { snprintf(buf, sizeof(buf), _("%i×%i"), cfdata->client->icccm.base_w, cfdata->client->icccm.base_h); cfdata->icccm.base = strdup(buf); } if (cfdata->client->icccm.step_w >= 0) { snprintf(buf, sizeof(buf), _("%i,%i"), cfdata->client->icccm.step_w, cfdata->client->icccm.step_h); cfdata->icccm.step = strdup(buf); } if ((cfdata->client->icccm.min_aspect > 0.0) && (cfdata->client->icccm.max_aspect > 0.0)) { if (EINA_DBL_EQ(cfdata->client->icccm.min_aspect, cfdata->client->icccm.max_aspect)) snprintf(buf, sizeof(buf), _("%1.3f"), cfdata->client->icccm.min_aspect); else snprintf(buf, sizeof(buf), _("%1.3f–%1.3f"), cfdata->client->icccm.min_aspect, cfdata->client->icccm.max_aspect); cfdata->icccm.aspect = strdup(buf); } #ifndef HAVE_WAYLAND_ONLY if (cfdata->client->icccm.initial_state != ECORE_X_WINDOW_STATE_HINT_NONE) { switch (cfdata->client->icccm.initial_state) { case ECORE_X_WINDOW_STATE_HINT_WITHDRAWN: snprintf(buf, sizeof(buf), _("Withdrawn")); break; case ECORE_X_WINDOW_STATE_HINT_NORMAL: snprintf(buf, sizeof(buf), _("Normal")); break; case ECORE_X_WINDOW_STATE_HINT_ICONIC: snprintf(buf, sizeof(buf), _("Iconic")); break; default: buf[0] = 0; break; } cfdata->icccm.initial_state = strdup(buf); } if (cfdata->client->icccm.state != ECORE_X_WINDOW_STATE_HINT_NONE) { switch (cfdata->client->icccm.state) { case ECORE_X_WINDOW_STATE_HINT_WITHDRAWN: snprintf(buf, sizeof(buf), _("Withdrawn")); break; case ECORE_X_WINDOW_STATE_HINT_NORMAL: snprintf(buf, sizeof(buf), _("Normal")); break; case ECORE_X_WINDOW_STATE_HINT_ICONIC: snprintf(buf, sizeof(buf), _("Iconic")); break; default: buf[0] = 0; break; } cfdata->icccm.state = strdup(buf); } #endif snprintf(buf, sizeof(buf), "0x%08x", (unsigned int)e_client_util_win_get(cfdata->client)); cfdata->icccm.window_id = strdup(buf); if (cfdata->client->icccm.window_group != 0) { snprintf(buf, sizeof(buf), "0x%08x", (unsigned int)cfdata->client->icccm.window_group); cfdata->icccm.window_group = strdup(buf); } if (cfdata->client->icccm.transient_for != 0) { snprintf(buf, sizeof(buf), "0x%08x", (unsigned int)cfdata->client->icccm.transient_for); cfdata->icccm.transient_for = strdup(buf); } if (cfdata->client->icccm.client_leader != 0) { snprintf(buf, sizeof(buf), "0x%08x", (unsigned int)cfdata->client->icccm.client_leader); cfdata->icccm.client_leader = strdup(buf); } #ifndef HAVE_WAYLAND_ONLY switch (cfdata->client->icccm.gravity) { case ECORE_X_GRAVITY_FORGET: snprintf(buf, sizeof(buf), _("Forget/Unmap")); break; case ECORE_X_GRAVITY_NW: snprintf(buf, sizeof(buf), _("Northwest")); break; case ECORE_X_GRAVITY_N: snprintf(buf, sizeof(buf), _("North")); break; case ECORE_X_GRAVITY_NE: snprintf(buf, sizeof(buf), _("Northeast")); break; case ECORE_X_GRAVITY_W: snprintf(buf, sizeof(buf), _("West")); break; case ECORE_X_GRAVITY_CENTER: snprintf(buf, sizeof(buf), _("Center")); break; case ECORE_X_GRAVITY_E: snprintf(buf, sizeof(buf), _("East")); break; case ECORE_X_GRAVITY_SW: snprintf(buf, sizeof(buf), _("Southwest")); break; case ECORE_X_GRAVITY_S: snprintf(buf, sizeof(buf), _("South")); break; case ECORE_X_GRAVITY_SE: snprintf(buf, sizeof(buf), _("Southeast")); break; case ECORE_X_GRAVITY_STATIC: snprintf(buf, sizeof(buf), _("Static")); break; default: buf[0] = 0; break; } cfdata->icccm.gravity = strdup(buf); #endif if (cfdata->client->icccm.command.argv) { int i; buf[0] = 0; for (i = 0; i < cfdata->client->icccm.command.argc; i++) { if ((sizeof(buf) - strlen(buf)) < (strlen(cfdata->client->icccm.command.argv[i]) - 2)) break; strcat(buf, cfdata->client->icccm.command.argv[i]); strcat(buf, " "); } cfdata->icccm.command = strdup(buf); } cfdata->icccm.take_focus = cfdata->client->icccm.take_focus; cfdata->icccm.accepts_focus = cfdata->client->icccm.accepts_focus; cfdata->icccm.urgent = cfdata->client->icccm.urgent; cfdata->icccm.delete_request = cfdata->client->icccm.delete_request; cfdata->icccm.request_pos = cfdata->client->icccm.request_pos; IFDUP(netwm.name, netwm.name); IFDUP(netwm.icon_name, netwm.icon_name); cfdata->netwm.modal = cfdata->client->netwm.state.modal; cfdata->netwm.sticky = cfdata->client->netwm.state.sticky; cfdata->netwm.shaded = cfdata->client->netwm.state.shaded; cfdata->netwm.skip_taskbar = cfdata->client->netwm.state.skip_taskbar; cfdata->netwm.skip_pager = cfdata->client->netwm.state.skip_pager; cfdata->netwm.hidden = cfdata->client->netwm.state.hidden; cfdata->netwm.fullscreen = cfdata->client->netwm.state.fullscreen; switch (cfdata->client->netwm.state.stacking) { case 0: cfdata->netwm.stacking = strdup(_("None")); break; case 1: cfdata->netwm.stacking = strdup(_("Above")); break; case 2: cfdata->netwm.stacking = strdup(_("Below")); break; } cfd->data = cfdata; }