diff --git a/configure.ac b/configure.ac index 6c27aa9ba..d15db8eab 100644 --- a/configure.ac +++ b/configure.ac @@ -865,7 +865,7 @@ AM_CONDITIONAL([HAVE_WL_FB], [test "x${WL_FB}" = "xtrue"]) define([CHECK_MODULE_WL_DRM], [ - if test "x${have_wayland}" = "xyes" && test "x${e_cv_want_wayland_only}" = "xyes"; then + if test "x${have_wayland}" = "xyes" ; then AC_E_CHECK_PKG(WL_DRM, [ ecore-drm >= $efl_version ecore >= $efl_version eina >= $efl_version ], [WL_DRM=true], [WL_DRM=false]) else WL_DRM=false diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c index cdf252194..d57d0a123 100644 --- a/src/bin/e_backlight.c +++ b/src/bin/e_backlight.c @@ -48,7 +48,7 @@ e_backlight_init(void) #endif #ifndef HAVE_WAYLAND_ONLY - if (e_comp_get(NULL)->man->root) + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) xbl_avail = ecore_x_randr_output_backlight_available(); #endif e_backlight_update(); diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 0667e4f9c..1607725a3 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1115,7 +1115,6 @@ e_comp_init(void) actions = eina_list_append(actions, act); } -#ifdef HAVE_WAYLAND_ONLY { const char *eng; @@ -1126,18 +1125,18 @@ e_comp_init(void) snprintf(buf, sizeof(buf), "wl_%s", eng); if (e_module_enable(e_module_new(buf))) - return EINA_TRUE; + goto out; } } -#endif #ifndef HAVE_WAYLAND_ONLY - if (!e_comp_x_init()) return EINA_FALSE; + e_comp_x_init(); #endif #if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY) - if (!e_comp_wl_init()) return EINA_FALSE; + e_comp_wl_init(); #endif - + if (!compositors) return EINA_FALSE; +out: E_LIST_HANDLER_APPEND(handlers, E_EVENT_SCREENSAVER_ON, _e_comp_screensaver_on, NULL); E_LIST_HANDLER_APPEND(handlers, E_EVENT_SCREENSAVER_OFF, _e_comp_screensaver_off, NULL); diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 3da060ea5..f6bc71079 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -5060,7 +5060,6 @@ e_comp_x_init(void) if (!ecore_x_init(NULL)) { - _e_comp_x_print_win(0); e_error_message_show(_("Enlightenment cannot initialize Ecore_X!\n")); return EINA_FALSE; } @@ -5069,6 +5068,8 @@ e_comp_x_init(void) if (!ecore_x_composite_query()) { + _e_comp_x_print_win(0); + ecore_x_shutdown(); e_error_message_show (_("Your display server does not support XComposite, " "or Ecore-X was built without XComposite support. " diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c index 6c42ec378..db3175c7a 100644 --- a/src/bin/e_dnd.c +++ b/src/bin/e_dnd.c @@ -111,7 +111,8 @@ e_dnd_init(void) _type_text_x_moz_url = eina_stringshare_add("text/x-moz-url"); _type_enlightenment_x_file = eina_stringshare_add("enlightenment/x-file"); #ifndef HAVE_WAYLAND_ONLY - _text_atom = ecore_x_atom_get("text/plain"); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + _text_atom = ecore_x_atom_get("text/plain"); #endif _drop_win_hash = eina_hash_int32_new(NULL); @@ -121,6 +122,7 @@ e_dnd_init(void) E_LIST_HANDLER_APPEND(_event_handlers, ECORE_EVENT_MOUSE_MOVE, _e_dnd_cb_mouse_move, NULL); E_LIST_HANDLER_APPEND(_event_handlers, ECORE_EVENT_KEY_DOWN, _e_dnd_cb_key_down, NULL); E_LIST_HANDLER_APPEND(_event_handlers, ECORE_EVENT_KEY_UP, _e_dnd_cb_key_up, NULL); + if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) return 1; #ifndef HAVE_WAYLAND_ONLY E_LIST_HANDLER_APPEND(_event_handlers, ECORE_X_EVENT_XDND_ENTER, _e_dnd_cb_event_dnd_enter, NULL); E_LIST_HANDLER_APPEND(_event_handlers, ECORE_X_EVENT_XDND_LEAVE, _e_dnd_cb_event_dnd_leave, NULL); @@ -130,12 +132,10 @@ e_dnd_init(void) E_LIST_HANDLER_APPEND(_event_handlers, ECORE_X_EVENT_XDND_DROP, _e_dnd_cb_event_dnd_drop, NULL); E_LIST_HANDLER_APPEND(_event_handlers, ECORE_X_EVENT_SELECTION_NOTIFY, _e_dnd_cb_event_dnd_selection, NULL); E_LIST_HANDLER_APPEND(_event_handlers, ECORE_X_EVENT_WINDOW_HIDE, _e_dnd_cb_event_hide, NULL); -#endif EINA_LIST_FOREACH(e_comp_list(), l, c) e_drop_xdnd_register_set(c->ee_win, 1); -#ifndef HAVE_WAYLAND_ONLY _action = ECORE_X_ATOM_XDND_ACTION_PRIVATE; #endif return 1; @@ -343,6 +343,7 @@ e_drag_xdnd_start(E_Drag *drag, int x, int y) if (_drag_win) return 0; #ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(drag)->comp_type != E_PIXMAP_TYPE_X) return 0; _drag_win = ecore_x_window_input_new(drag->comp->win, drag->comp->man->x, drag->comp->man->y, drag->comp->man->w, drag->comp->man->h); @@ -414,6 +415,7 @@ e_drop_xds_update(Eina_Bool enable, const char *value) int size; size_t len; + if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) return; enable = !!enable; xwin = ecore_x_selection_owner_get(ECORE_X_ATOM_SELECTION_XDND); @@ -522,6 +524,7 @@ e_drop_handler_del(E_Drop_Handler *handler) EAPI int e_drop_xdnd_register_set(Ecore_Window win, int reg) { + if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) return 0; if (reg) { if (!eina_hash_find(_drop_win_hash, &win)) diff --git a/src/bin/e_dpms.c b/src/bin/e_dpms.c index ff6104565..ec443928d 100644 --- a/src/bin/e_dpms.c +++ b/src/bin/e_dpms.c @@ -29,7 +29,8 @@ e_dpms_update(void) { _e_dpms_enabled = enabled; #ifndef HAVE_WAYLAND_ONLY - ecore_x_dpms_enabled_set(enabled); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + ecore_x_dpms_enabled_set(enabled); #endif } if (!enabled) return; @@ -57,7 +58,10 @@ e_dpms_update(void) changed = EINA_TRUE; } #ifndef HAVE_WAYLAND_ONLY - if (changed) ecore_x_dpms_timeouts_set(standby, suspend, off); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + if (changed) ecore_x_dpms_timeouts_set(standby, suspend, off); + } #endif } @@ -70,7 +74,8 @@ e_dpms_force_update(void) enabled = ((e_config->screensaver_enable) && (!e_config->mode.presentation)); #ifndef HAVE_WAYLAND_ONLY - ecore_x_dpms_enabled_set(enabled); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + ecore_x_dpms_enabled_set(enabled); #endif if (!enabled) return; @@ -82,6 +87,7 @@ e_dpms_force_update(void) off += 7; } #ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) return; ecore_x_dpms_timeouts_set(standby + 10, suspend + 10, off + 10); ecore_x_dpms_timeouts_set(standby, suspend, off); #endif @@ -143,9 +149,12 @@ e_dpms_init(void) (E_EVENT_DESK_SHOW, _e_dpms_handler_desk_show_cb, NULL); #ifndef HAVE_WAYLAND_ONLY - _e_dpms_enabled = ecore_x_dpms_enabled_get(); - ecore_x_dpms_timeouts_get - (&_e_dpms_timeout_standby, &_e_dpms_timeout_suspend, &_e_dpms_timeout_off); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + _e_dpms_enabled = ecore_x_dpms_enabled_get(); + ecore_x_dpms_timeouts_get + (&_e_dpms_timeout_standby, &_e_dpms_timeout_suspend, &_e_dpms_timeout_off); + } #endif e_dpms_force_update(); diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 336acda6e..22023cf7b 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -611,6 +611,7 @@ main(int argc, char **argv) } TS("Screens Init Done"); _e_main_shutdown_push(_e_main_screens_shutdown); + e_screensaver_force_update(); TS("E_Pointer Init"); if (!e_pointer_init()) @@ -1708,7 +1709,8 @@ _e_main_cb_x_flusher(void *data __UNUSED__) { eet_clearcache(); #ifndef HAVE_WAYLAND_ONLY - ecore_x_flush(); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + ecore_x_flush(); #endif return ECORE_CALLBACK_RENEW; } diff --git a/src/bin/e_module.c b/src/bin/e_module.c index 330650944..56a49d321 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -495,7 +495,7 @@ e_module_enable(E_Module *m) break; } } - if (!_e_modules_initting) + if (_e_modules_hash && (!_e_modules_initting)) _e_module_whitelist_check(); return 1; } @@ -973,17 +973,20 @@ _e_module_whitelist_check(void) } #ifndef HAVE_WAYLAND_ONLY - { - Ecore_X_Atom _x_tainted; - char *state; - unsigned int _e_tainted; + { + const char *state; state = badl ? "YES" : "NO"; - _e_tainted = badl ? 1 : 0; - _x_tainted = ecore_x_atom_get("_E_TAINTED"); - ecore_x_window_prop_card32_set(ecore_x_window_root_first_get(), - _x_tainted, &_e_tainted, 1); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + Ecore_X_Atom _x_tainted; + unsigned int _e_tainted = badl ? 1 : 0; + + _x_tainted = ecore_x_atom_get("_E_TAINTED"); + ecore_x_window_prop_card32_set(ecore_x_window_root_first_get(), + _x_tainted, &_e_tainted, 1); + } e_env_set("E19_TAINTED", state); } diff --git a/src/bin/e_mouse.c b/src/bin/e_mouse.c index 1074b7703..2990c243a 100644 --- a/src/bin/e_mouse.c +++ b/src/bin/e_mouse.c @@ -7,12 +7,15 @@ e_mouse_update(void) int n; #ifndef HAVE_WAYLAND_ONLY - if (!ecore_x_pointer_control_set(e_config->mouse_accel_numerator, - e_config->mouse_accel_denominator, - e_config->mouse_accel_threshold)) - return 0; + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + if (!ecore_x_pointer_control_set(e_config->mouse_accel_numerator, + e_config->mouse_accel_denominator, + e_config->mouse_accel_threshold)) + return 0; - if (!ecore_x_pointer_mapping_get(map, 256)) return 0; + if (!ecore_x_pointer_mapping_get(map, 256)) return 0; + } #endif for (n = 0; n < 256; n++) @@ -38,7 +41,8 @@ e_mouse_update(void) } #ifndef HAVE_WAYLAND_ONLY - if (!ecore_x_pointer_mapping_set(map, n)) return 0; + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + if (!ecore_x_pointer_mapping_set(map, n)) return 0; #endif return 1; diff --git a/src/bin/e_scale.c b/src/bin/e_scale.c index b5d5e268a..bdcc38d02 100644 --- a/src/bin/e_scale.c +++ b/src/bin/e_scale.c @@ -24,9 +24,12 @@ e_scale_update(void) if (e_config->scale.use_dpi) { #ifndef HAVE_WAYLAND_ONLY - dpi = ecore_x_dpi_get(); + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + dpi = ecore_x_dpi_get(); + e_scale = (double)dpi / (double)e_config->scale.base_dpi; + } #endif - e_scale = (double)dpi / (double)e_config->scale.base_dpi; if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; diff --git a/src/bin/e_screensaver.c b/src/bin/e_screensaver.c index 8964ed790..a969267e6 100644 --- a/src/bin/e_screensaver.c +++ b/src/bin/e_screensaver.c @@ -82,10 +82,13 @@ e_screensaver_update(void) changed = EINA_TRUE; } -#ifdef HAVE_WAYLAND_ONLY +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + if (changed) + ecore_x_screensaver_set(timeout, interval, blanking, expose); + } #else - if (changed) - ecore_x_screensaver_set(timeout, interval, blanking, expose); #endif } @@ -93,19 +96,21 @@ EAPI void e_screensaver_force_update(void) { int timeout = e_screensaver_timeout_get(EINA_TRUE); -#ifdef HAVE_WAYLAND_ONLY +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X) + { + ecore_x_screensaver_set(timeout + 10, + 0, + // e_config->screensaver_interval, + !e_config->screensaver_blanking, + !e_config->screensaver_expose); + ecore_x_screensaver_set(timeout, + 0, + // e_config->screensaver_interval, + e_config->screensaver_blanking, + e_config->screensaver_expose); + } #else - if (!getenv("DISPLAY")) return; - ecore_x_screensaver_set(timeout + 10, - 0, -// e_config->screensaver_interval, - !e_config->screensaver_blanking, - !e_config->screensaver_expose); - ecore_x_screensaver_set(timeout, - 0, -// e_config->screensaver_interval, - e_config->screensaver_blanking, - e_config->screensaver_expose); #endif } @@ -336,8 +341,6 @@ e_screensaver_init(void) _e_screensaver_handler_powersave = ecore_event_handler_add (E_EVENT_POWERSAVE_UPDATE, _e_screensaver_handler_powersave_cb, NULL); - e_screensaver_force_update(); - return 1; } diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index a2bbd5ad8..5065fb038 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -59,6 +59,7 @@ e_xkb_update(int cur_group) if (e_config->xkb.dont_touch_my_damn_keyboard) return; if ((!e_config->xkb.used_layouts) && (!e_config->xkb.used_options) && (!e_config->xkb.default_model)) return; + if (!getenv("DISPLAY")) return; if (cur_group != -1) { _e_xkb_cur_group = cur_group; diff --git a/src/modules/Makefile_everything.mk b/src/modules/Makefile_everything.mk index 6c252e8c0..8143eabf1 100644 --- a/src/modules/Makefile_everything.mk +++ b/src/modules/Makefile_everything.mk @@ -30,7 +30,6 @@ src_modules_everything_module_la_SOURCES = $(EVRYHEADERS) \ src/modules/everything/evry_view.c \ src/modules/everything/evry_view_tabs.c \ src/modules/everything/evry_view_help.c \ - src/modules/everything/evry_plug_clipboard.c \ src/modules/everything/evry_plug_text.c \ src/modules/everything/evry_plug_collection.c \ src/modules/everything/evry_gadget.c \ @@ -42,6 +41,10 @@ src_modules_everything_module_la_SOURCES = $(EVRYHEADERS) \ src/modules/everything/evry_plug_settings.c \ src/modules/everything/evry_plug_calc.c +if ! HAVE_WAYLAND_ONLY +src_modules_everything_module_la_SOURCES += src/modules/everything/evry_plug_clipboard.c +endif + everything_headersdir = $(pkgincludedir) dist_everything_headers_DATA = $(EVRYHEADERS) diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index 5cf151e6d..27bc77701 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -64,7 +64,7 @@ static void _evry_view_hide(Evry_Window *win, Evry_View *v, int slide) static void _evry_item_desel(Evry_State *s); static void _evry_item_sel(Evry_State *s, Evry_Item *it); -static Eina_Bool _evry_cb_show(Evry_Window *win, int type __UNUSED__, Ecore_X_Event_Window_Show *ev); +static void _evry_cb_show(Evry_Window *win, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); static Eina_Bool _evry_cb_key_down(void *data, int type, void *event); static Eina_Bool _evry_cb_selection_notify(void *data, int type, void *event); static Eina_Bool _evry_cb_mouse(void *data, int type, void *event); @@ -178,10 +178,11 @@ evry_show(E_Zone *zone, E_Zone_Edge edge, const char *params, Eina_Bool popup) if (popup) { - //e_win_layer_set(win->ewin, E_WIN_LAYER_ABOVE); - ecore_x_netwm_window_type_set(win->ewin->evas_win, - ECORE_X_WINDOW_TYPE_UTILITY); - +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(win->ewin)->comp_type == E_PIXMAP_TYPE_X) + ecore_x_netwm_window_type_set(win->ewin->evas_win, + ECORE_X_WINDOW_TYPE_UTILITY); +#endif ecore_evas_name_class_set(win->ewin->ecore_evas, "E", "everything"); e_win_show(win->ewin); @@ -204,9 +205,11 @@ evry_show(E_Zone *zone, E_Zone_Edge edge, const char *params, Eina_Bool popup) _evry_selector_new(win, EVRY_PLUGIN_OBJECT); E_LIST_HANDLER_APPEND(win->handlers, ECORE_EVENT_KEY_DOWN, _evry_cb_key_down, win); - +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(win->ewin)->comp_type == E_PIXMAP_TYPE_X) E_LIST_HANDLER_APPEND(win->handlers, ECORE_X_EVENT_SELECTION_NOTIFY, _evry_cb_selection_notify, win); - E_LIST_HANDLER_APPEND(win->handlers, ECORE_X_EVENT_WINDOW_SHOW, _evry_cb_show, win); +#endif + evas_object_event_callback_add(win->ewin->client->frame, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_evry_cb_show, win); E_LIST_HANDLER_APPEND(win->handlers, EVRY_EVENT_ITEM_CHANGED, _evry_cb_item_changed, win); @@ -860,9 +863,8 @@ _evry_window_new(E_Zone *zone, E_Zone_Edge edge) evas_object_resize(o, mw, mh); evas_object_show(o); - evas_event_feed_mouse_in(win->evas, ecore_x_current_time_get(), NULL); - evas_event_feed_mouse_move(win->evas, -1000000, -1000000, - ecore_x_current_time_get(), NULL); + evas_event_feed_mouse_in(win->evas, 0, NULL); + evas_event_feed_mouse_move(win->evas, -1000000, -1000000, 0, NULL); e_win_delete_callback_set(win->ewin, _evry_cb_win_delete); e_win_resize_callback_set(win->ewin, _evry_cb_win_resize); @@ -1921,8 +1923,11 @@ _evry_cb_key_down(void *data, int type __UNUSED__, void *event) e_grabinput_release(ewin->evas_win, ewin->evas_win); evas_object_layer_set(ewin->client->frame, E_LAYER_CLIENT_NORMAL); - ecore_x_netwm_window_type_set(ewin->evas_win, - ECORE_X_WINDOW_TYPE_DIALOG); +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(ewin)->comp_type == E_PIXMAP_TYPE_X) + ecore_x_netwm_window_type_set(ewin->evas_win, + ECORE_X_WINDOW_TYPE_DIALOG); +#endif EC_CHANGED(ewin->client); ewin->client->netwm.fetch.type = 1; ewin->client->netwm.state.skip_taskbar = 0; @@ -2109,9 +2114,14 @@ _evry_cb_key_down(void *data, int type __UNUSED__, void *event) _evry_plugin_action(sel, 0); else if (!strcmp(ev->key, "v")) { - win->request_selection = EINA_TRUE; - ecore_x_selection_primary_request - (win->ewin->evas_win, ECORE_X_SELECTION_TARGET_UTF8_STRING); +#ifndef HAVE_WAYLAND_ONLY + if (e_comp_get(win->ewin)->comp_type == E_PIXMAP_TYPE_X) + { + win->request_selection = EINA_TRUE; + ecore_x_selection_primary_request + (win->ewin->evas_win, ECORE_X_SELECTION_TARGET_UTF8_STRING); + } +#endif } else { @@ -3017,15 +3027,14 @@ _evry_plugin_list_insert(Evry_State *s, Evry_Plugin *p) s->cur_plugins = eina_list_append(s->cur_plugins, p); } -static Eina_Bool -_evry_cb_show(Evry_Window *win, int type __UNUSED__, Ecore_X_Event_Window_Show *ev) +static void +_evry_cb_show(Evry_Window *win, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - if (win->ewin->evas_win != ev->event_win) return ECORE_CALLBACK_RENEW; if (win->grab) e_grabinput_get(win->ewin->evas_win, 0, win->ewin->evas_win); - return ECORE_CALLBACK_RENEW; } +#ifndef HAVE_WAYLAND_ONLY static Eina_Bool _evry_cb_selection_notify(void *data, int type __UNUSED__, void *event) { @@ -3055,6 +3064,7 @@ _evry_cb_selection_notify(void *data, int type __UNUSED__, void *event) return ECORE_CALLBACK_PASS_ON; } +#endif void evry_item_app_free(Evry_Item_App *app) diff --git a/src/modules/everything/evry_plug_clipboard.c b/src/modules/everything/evry_plug_clipboard.c index 63d287ae8..0ca31e130 100644 --- a/src/modules/everything/evry_plug_clipboard.c +++ b/src/modules/everything/evry_plug_clipboard.c @@ -8,6 +8,8 @@ _action(Evry_Action *action) { const Evry_Item *it = action->it1.item; + if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) return 0; + ecore_x_selection_primary_set(clipboard_win, it->label, strlen(it->label)); ecore_x_selection_clipboard_set(clipboard_win, it->label, strlen(it->label)); @@ -23,10 +25,14 @@ _check_item(Evry_Action *action __UNUSED__, const Evry_Item *it) Eina_Bool evry_plug_clipboard_init(void) { + Ecore_X_Window win; + if (!evry_api_version_check(EVRY_API_VERSION)) return EINA_FALSE; - Ecore_X_Window win = ecore_x_window_input_new(0, 0, 0, 1, 1); + if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) + return EINA_FALSE; + win = ecore_x_window_input_new(0, 0, 0, 1, 1); if (!win) return EINA_FALSE; ecore_x_icccm_name_class_set(win, "evry", "clipboard"); e_comp_ignore_win_add(E_PIXMAP_TYPE_X, win); @@ -47,6 +53,7 @@ evry_plug_clipboard_init(void) void evry_plug_clipboard_shutdown(void) { + if (e_comp_get(NULL)->comp_type != E_PIXMAP_TYPE_X) return; ecore_x_window_free(clipboard_win); evry_action_free(act); }