PasteboardWayland::~PasteboardWayland() { if (m_dataDeviceData.data_offer) wl_data_offer_destroy(m_dataDeviceData.data_offer); m_dataDeviceData.dataTypes.clear(); wl_data_device_destroy(m_dataDevice); }
void _ecore_wl_input_del(Ecore_Wl_Input *input) { if (!input) return; if (input->drag_source) _ecore_wl_dnd_del(input->drag_source); input->drag_source = NULL; if (input->selection_source) _ecore_wl_dnd_del(input->selection_source); input->selection_source = NULL; if (input->data_device) wl_data_device_destroy(input->data_device); if (input->input_device) wl_input_device_destroy(input->input_device); wl_list_remove(&input->link); free(input); }
void _ecore_wl_input_del(Ecore_Wl_Input *input) { if (!input) return; _pointer_update_stop(input); if (input->cursor_name) eina_stringshare_del(input->cursor_name); input->cursor_name = NULL; if (input->touch_focus) { input->touch_focus = NULL; } if (input->pointer_focus) { Ecore_Wl_Window *win = NULL; if ((win = input->pointer_focus)) win->pointer_device = NULL; input->pointer_focus = NULL; } if (input->keyboard_focus) { Ecore_Wl_Window *win = NULL; if ((win = input->keyboard_focus)) win->keyboard_device = NULL; input->keyboard_focus = NULL; } if (input->data_types.data) { char **t; wl_array_for_each(t, &input->data_types) free(*t); wl_array_release(&input->data_types); } if (input->data_source) wl_data_source_destroy(input->data_source); input->data_source = NULL; if (input->drag_source) _ecore_wl_dnd_del(input->drag_source); input->drag_source = NULL; if (input->selection_source) _ecore_wl_dnd_del(input->selection_source); input->selection_source = NULL; if (input->data_device) wl_data_device_destroy(input->data_device); if (input->xkb.state) xkb_state_unref(input->xkb.state); if (input->xkb.keymap) xkb_map_unref(input->xkb.keymap); if (input->cursor_surface) wl_surface_destroy(input->cursor_surface); _ecore_wl_disp->inputs = eina_inlist_remove (_ecore_wl_disp->inputs, EINA_INLIST_GET(input)); if (input->seat) wl_seat_destroy(input->seat); if (input->repeat.tmr) ecore_timer_del(input->repeat.tmr); input->repeat.tmr = NULL; free(input); }
void _glfwPlatformTerminate(void) { #ifdef __linux__ _glfwTerminateJoysticksLinux(); #endif _glfwTerminateEGL(); if (_glfw.wl.egl.handle) { _glfw_dlclose(_glfw.wl.egl.handle); _glfw.wl.egl.handle = NULL; } #ifdef HAVE_XKBCOMMON_COMPOSE_H if (_glfw.wl.xkb.composeState) xkb_compose_state_unref(_glfw.wl.xkb.composeState); #endif if (_glfw.wl.xkb.keymap) xkb_keymap_unref(_glfw.wl.xkb.keymap); if (_glfw.wl.xkb.state) xkb_state_unref(_glfw.wl.xkb.state); if (_glfw.wl.xkb.context) xkb_context_unref(_glfw.wl.xkb.context); if (_glfw.wl.xkb.handle) { _glfw_dlclose(_glfw.wl.xkb.handle); _glfw.wl.xkb.handle = NULL; } if (_glfw.wl.cursorTheme) wl_cursor_theme_destroy(_glfw.wl.cursorTheme); if (_glfw.wl.cursorThemeHiDPI) wl_cursor_theme_destroy(_glfw.wl.cursorThemeHiDPI); if (_glfw.wl.cursor.handle) { _glfw_dlclose(_glfw.wl.cursor.handle); _glfw.wl.cursor.handle = NULL; } if (_glfw.wl.cursorSurface) wl_surface_destroy(_glfw.wl.cursorSurface); if (_glfw.wl.subcompositor) wl_subcompositor_destroy(_glfw.wl.subcompositor); if (_glfw.wl.compositor) wl_compositor_destroy(_glfw.wl.compositor); if (_glfw.wl.shm) wl_shm_destroy(_glfw.wl.shm); if (_glfw.wl.shell) wl_shell_destroy(_glfw.wl.shell); if (_glfw.wl.viewporter) wp_viewporter_destroy(_glfw.wl.viewporter); if (_glfw.wl.decorationManager) zxdg_decoration_manager_v1_destroy(_glfw.wl.decorationManager); if (_glfw.wl.wmBase) xdg_wm_base_destroy(_glfw.wl.wmBase); if (_glfw.wl.dataSource) wl_data_source_destroy(_glfw.wl.dataSource); if (_glfw.wl.dataDevice) wl_data_device_destroy(_glfw.wl.dataDevice); if (_glfw.wl.dataOffer) wl_data_offer_destroy(_glfw.wl.dataOffer); if (_glfw.wl.dataDeviceManager) wl_data_device_manager_destroy(_glfw.wl.dataDeviceManager); if (_glfw.wl.pointer) wl_pointer_destroy(_glfw.wl.pointer); if (_glfw.wl.keyboard) wl_keyboard_destroy(_glfw.wl.keyboard); if (_glfw.wl.seat) wl_seat_destroy(_glfw.wl.seat); if (_glfw.wl.relativePointerManager) zwp_relative_pointer_manager_v1_destroy(_glfw.wl.relativePointerManager); if (_glfw.wl.pointerConstraints) zwp_pointer_constraints_v1_destroy(_glfw.wl.pointerConstraints); if (_glfw.wl.idleInhibitManager) zwp_idle_inhibit_manager_v1_destroy(_glfw.wl.idleInhibitManager); if (_glfw.wl.registry) wl_registry_destroy(_glfw.wl.registry); if (_glfw.wl.display) { wl_display_flush(_glfw.wl.display); wl_display_disconnect(_glfw.wl.display); } if (_glfw.wl.timerfd >= 0) close(_glfw.wl.timerfd); if (_glfw.wl.cursorTimerfd >= 0) close(_glfw.wl.cursorTimerfd); if (_glfw.wl.clipboardString) free(_glfw.wl.clipboardString); if (_glfw.wl.clipboardSendString) free(_glfw.wl.clipboardSendString); }