evas_object_size_hint_weight_set(popup.get(), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_smart_callback_add(popup.get(), "dismissed", popupDismissedCb, this);
menu = Singleton<MenuBuilder>::instance().build(getCompleteLabelOfMenu());
- if (menu->getAlignment() == Alignment::BOTTOM) {
- elm_popup_orient_set(popup.get(), ELM_POPUP_ORIENT_BOTTOM);
- elm_popup_align_set(popup.get(), ELM_NOTIFY_ALIGN_FILL, EVAS_HINT_EXPAND);
- } else {
- elm_popup_orient_set(popup.get(), ELM_POPUP_ORIENT_CENTER);
- }
+ elm_popup_orient_set(popup.get(), menu->getAlignment() == Alignment::BOTTOM ? ELM_POPUP_ORIENT_BOTTOM : ELM_POPUP_ORIENT_CENTER);
+
elm_theme_extension_add(NULL, UNIVERSAL_SWITCH_EDJ);
elm_object_style_set(popup.get(), "universalSwitchTransparent");
#include "Ecore_Wayland.h"
Window::Window()
- : handler(nullptr, removeHandler), screenWidth(0), screenHeight(0)
+ : handler(nullptr, removeHandler)
{
DEBUG("adding window");
auto windowHandler = elm_win_add(NULL, "universal-switch", ELM_WIN_NOTIFICATION);
exit(1);
}
+ handler.reset(windowHandler);
+
// TODO: name setter should be removed after reaching full functionality by navigation interface
elm_atspi_accessible_name_set(windowHandler, "UniversalSwitch Main Window");
elm_win_override_set(windowHandler, EINA_TRUE);
elm_win_alpha_set(windowHandler, EINA_TRUE);
- elm_win_screen_size_get(windowHandler, NULL, NULL, &screenWidth, &screenHeight);
- evas_object_resize(windowHandler, screenWidth, screenHeight);
+ auto size = getDimensions().size;
+ evas_object_resize(windowHandler, size.width, size.height);
+ int rotations[] = {0, 90, 270};
+ elm_win_wm_rotation_available_rotations_set(windowHandler, rotations, 3);
evas_object_show(windowHandler);
waylandWindow = elm_win_wl_window_get(windowHandler);
- handler.reset(windowHandler);
ecore_wl_window_input_region_set(waylandWindow, 0, 0, 0, 0);
ecore_wl_window_focus_skip_set(waylandWindow, EINA_TRUE);
Rectangle Window::getDimensions() const
{
+ int screenWidth, screenHeight;
+ elm_win_screen_size_get(handler.get(), NULL, NULL, &screenWidth, &screenHeight);
+ if (elm_win_rotation_get(handler.get()) != 0)
+ std::swap(screenWidth, screenHeight);
return {{0, 0}, {screenWidth, screenHeight}};
}