diff --git a/po/sr.po b/po/sr.po index 3f9e78f084..4a6eb244c0 100644 --- a/po/sr.po +++ b/po/sr.po @@ -4,23 +4,20 @@ # FIRST AUTHOR , 2013. # Саша Петровић , 2013, 2015. # -#: src/lib/elementary/elm_config.c:4135 msgid "" msgstr "" "Project-Id-Version: а\n" -"Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2019-04-15 12:03+0100\n" -"PO-Revision-Date: 2015-01-31 14:06+0100\n" +"Report-Msgid-Bugs-To: $MSGID_BUGS_ADDRESS\n" +"POT-Creation-Date: 2017-09-02 20:01+0200\n" +"PO-Revision-Date: 2020-03-08 19:04+0100\n" "Last-Translator: Саша Петровић \n" "Language-Team: српски \n" -"Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-14 05:42+0000\n" -"X-Generator: Gtranslator 2.91.6\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Launchpad-Export-Date: 2017-09-03 05:32+0000\n" +"X-Generator: Poedit 2.2.1\n" +"Language: sr\n" #: src/lib/ecore/ecore_getopt.c:89 msgid "Version:" @@ -242,236 +239,220 @@ msgstr "Слике" msgid "Videos" msgstr "Видео снимци" -#: src/lib/elementary/elc_fileselector.c:1705 +#: src/lib/elementary/elc_fileselector.c:1905 msgid "Up" msgstr "Горе" -#: src/lib/elementary/elc_fileselector.c:1719 +#: src/lib/elementary/elc_fileselector.c:1919 msgid "Home" msgstr "Лична фасцикла" -#: src/lib/elementary/elc_fileselector.c:1738 +#: src/lib/elementary/elc_fileselector.c:1938 msgid "Search" msgstr "Тражи" -#: src/lib/elementary/elc_fileselector.c:2012 +#: src/lib/elementary/elc_fileselector.c:2232 msgid "OK" msgstr "У реду" -#: src/lib/elementary/elc_fileselector.c:2022 -#: src/lib/elementary/elm_entry.c:1759 src/lib/elementary/elm_entry.c:1784 +#: src/lib/elementary/elc_fileselector.c:2242 +#: src/lib/elementary/elm_entry.c:1719 src/lib/elementary/elm_entry.c:1744 msgid "Cancel" msgstr "Откажи" -#: src/lib/elementary/elc_hoversel.c:439 src/lib/elementary/efl_ui_button.c:208 -#: src/lib/elementary/efl_ui_check.c:187 src/lib/elementary/elm_gengrid.c:1532 -#: src/lib/elementary/elm_genlist.c:1769 src/lib/elementary/elm_list.c:2185 -#: src/lib/elementary/efl_ui_radio.c:201 -#: src/lib/elementary/elm_segment_control.c:525 -#: src/lib/elementary/elm_spinner.c:1041 src/lib/elementary/elm_toolbar.c:2294 +#: src/lib/elementary/elc_hoversel.c:436 src/lib/elementary/efl_ui_button.c:263 +#: src/lib/elementary/efl_ui_check.c:197 src/lib/elementary/elm_gengrid.c:1470 +#: src/lib/elementary/elm_genlist.c:1738 src/lib/elementary/elm_list.c:2155 +#: src/lib/elementary/efl_ui_radio.c:199 +#: src/lib/elementary/elm_segment_control.c:526 +#: src/lib/elementary/efl_ui_spinner.c:1020 +#: src/lib/elementary/elm_toolbar.c:2335 msgid "State: Disabled" msgstr "Стање: онемогућено" -#: src/lib/elementary/elc_hoversel.c:652 +#: src/lib/elementary/elc_hoversel.c:638 msgid "Hoversel" -msgstr "" +msgstr "Лебедна ћелија" -#: src/lib/elementary/elc_multibuttonentry.c:682 +#: src/lib/elementary/elc_multibuttonentry.c:723 msgid "multi button entry label" msgstr "ознака улаза са више дугмади" -#: src/lib/elementary/elc_multibuttonentry.c:704 +#: src/lib/elementary/elc_multibuttonentry.c:745 msgid "multi button entry item" msgstr "ставка улаза са више дугмади" -#: src/lib/elementary/elc_multibuttonentry.c:1586 +#: src/lib/elementary/elc_multibuttonentry.c:1634 msgid "multi button entry" msgstr "улаз са више дугмади" -#: src/lib/elementary/elc_naviframe.c:408 -#: src/lib/elementary/elc_naviframe.c:436 +#: src/lib/elementary/elc_naviframe.c:467 msgid "Title" msgstr "Наслов" -#: src/lib/elementary/elc_naviframe.c:415 -#, fuzzy -msgid "Subtitle" -msgstr "Наслов" - -#: src/lib/elementary/elc_naviframe.c:968 -#: src/lib/elementary/elc_naviframe.c:1186 +#: src/lib/elementary/elc_naviframe.c:1026 +#: src/lib/elementary/elc_naviframe.c:1244 msgid "Back" msgstr "Назад" -#: src/lib/elementary/elc_naviframe.c:1358 +#: src/lib/elementary/elc_naviframe.c:1342 msgid "Next" msgstr "Следеће" -#: src/lib/elementary/elc_popup.c:320 src/lib/elementary/elc_popup.c:984 +#: src/lib/elementary/elc_popup.c:308 src/lib/elementary/elc_popup.c:975 msgid "Popup Title" msgstr "Искачући наслов" -#: src/lib/elementary/elc_popup.c:330 src/lib/elementary/elc_popup.c:1060 +#: src/lib/elementary/elc_popup.c:318 src/lib/elementary/elc_popup.c:1051 msgid "Popup Body Text" msgstr "Тело искачућег текста" -#: src/lib/elementary/elc_popup.c:1836 -msgid "Alert" -msgstr "" - -#: src/lib/elementary/elm_bubble.c:163 +#: src/lib/elementary/elm_bubble.c:200 msgid "Bubble" msgstr "Мехур" -#: src/lib/elementary/efl_ui_button.c:71 +#: src/lib/elementary/efl_ui_button.c:70 msgid "Clicked" msgstr "Кликнуто" -#: src/lib/elementary/efl_ui_button.c:250 +#: src/lib/elementary/efl_ui_button.c:288 msgid "Button" msgstr "Дугме" -#: src/lib/elementary/elm_calendar.c:225 -#: src/lib/elementary/efl_ui_calendar.c:193 +#: src/lib/elementary/elm_calendar.c:272 msgid "%B %Y" msgstr "%B %Y" -#: src/lib/elementary/elm_calendar.c:231 +#: src/lib/elementary/elm_calendar.c:278 msgid "%B" msgstr "%B" -#: src/lib/elementary/elm_calendar.c:237 +#: src/lib/elementary/elm_calendar.c:284 msgid "%Y" msgstr "%Y" -#: src/lib/elementary/elm_calendar.c:363 -#: src/lib/elementary/efl_ui_calendar.c:240 +#: src/lib/elementary/elm_calendar.c:409 msgid "calendar item" msgstr "ставка календара" -#: src/lib/elementary/elm_calendar.c:391 -#: src/lib/elementary/efl_ui_calendar.c:267 +#: src/lib/elementary/elm_calendar.c:436 msgid "calendar decrement month button" msgstr "дугме померања месеца календара уназад" -#: src/lib/elementary/elm_calendar.c:397 +#: src/lib/elementary/elm_calendar.c:442 msgid "calendar decrement year button" msgstr "дугме померања година календара уназад" -#: src/lib/elementary/elm_calendar.c:403 -#: src/lib/elementary/efl_ui_calendar.c:273 +#: src/lib/elementary/elm_calendar.c:448 msgid "calendar increment month button" msgstr "дугме померања месеца календара унапред" -#: src/lib/elementary/elm_calendar.c:409 +#: src/lib/elementary/elm_calendar.c:454 msgid "calendar increment year button" msgstr "дугме померања година календара унапред" -#: src/lib/elementary/elm_calendar.c:414 -#: src/lib/elementary/efl_ui_calendar.c:278 +#: src/lib/elementary/elm_calendar.c:459 msgid "calendar month" msgstr "месец календара" -#: src/lib/elementary/elm_calendar.c:419 +#: src/lib/elementary/elm_calendar.c:464 msgid "calendar year" msgstr "година календара" -#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:200 -#: src/lib/elementary/efl_ui_radio.c:136 src/lib/elementary/efl_ui_radio.c:202 +#: src/lib/elementary/efl_ui_check.c:65 src/lib/elementary/efl_ui_check.c:210 +#: src/lib/elementary/efl_ui_radio.c:119 src/lib/elementary/efl_ui_radio.c:200 msgid "State: On" msgstr "Стање : укључен" -#: src/lib/elementary/efl_ui_check.c:96 src/lib/elementary/efl_ui_check.c:212 -#: src/lib/elementary/efl_ui_radio.c:204 +#: src/lib/elementary/efl_ui_check.c:76 src/lib/elementary/efl_ui_check.c:222 +#: src/lib/elementary/efl_ui_radio.c:202 msgid "State: Off" msgstr "Стање: искључен" -#: src/lib/elementary/efl_ui_check.c:196 src/lib/elementary/efl_ui_check.c:209 +#: src/lib/elementary/efl_ui_check.c:206 src/lib/elementary/efl_ui_check.c:219 msgid "State" msgstr "Стање" -#: src/lib/elementary/efl_ui_check.c:348 +#: src/lib/elementary/efl_ui_check.c:300 msgid "Check" msgstr "Провера" -#: src/lib/elementary/elm_clock.c:309 +#: src/lib/elementary/elm_clock.c:303 msgid "clock increment button for am,pm" msgstr "дугме за увећање часовника са am,pm" -#: src/lib/elementary/elm_clock.c:317 +#: src/lib/elementary/elm_clock.c:311 msgid "clock decrement button for am,pm" msgstr "дугме за смањивање часовника са am,pm" -#: src/lib/elementary/elm_clock.c:714 +#: src/lib/elementary/elm_clock.c:647 msgid "State: Editable" msgstr "Стање: уредиво" -#: src/lib/elementary/elm_clock.c:749 +#: src/lib/elementary/elm_clock.c:682 msgid "Clock" msgstr "Сат" -#: src/lib/elementary/elm_colorselector.c:939 +#: src/lib/elementary/elm_colorselector.c:914 msgid "Pick a color" -msgstr "" +msgstr "Изаберите боју" -#: src/lib/elementary/elm_colorselector.c:977 +#: src/lib/elementary/elm_colorselector.c:952 msgid "R:" -msgstr "" +msgstr "Ц:" -#: src/lib/elementary/elm_colorselector.c:979 +#: src/lib/elementary/elm_colorselector.c:954 msgid "G:" -msgstr "" +msgstr "З:" -#: src/lib/elementary/elm_colorselector.c:981 +#: src/lib/elementary/elm_colorselector.c:956 msgid "B:" -msgstr "" +msgstr "М:" -#: src/lib/elementary/elm_colorselector.c:983 +#: src/lib/elementary/elm_colorselector.c:958 msgid "A:" -msgstr "" +msgstr "П:" -#: src/lib/elementary/elm_colorselector.c:1707 +#: src/lib/elementary/elm_colorselector.c:1681 msgid "color selector palette item" msgstr "ставка избирача палете боја" -#. TRANSLATORS: This string is special and defines if the language -#. by default is a Left To Right or Right To Left language. Most -#. languages are LTR and thus the default string is "default:LTR" -#. but if this is a right-to-left language like arabic, Farsi, -#. Hebrew, etc. then change this string to be "default:RTL" -#. -#: src/lib/elementary/elm_config.c:4158 +#: src/lib/elementary/elm_config.c:3808 msgid "default:LTR" -msgstr "default:LTR" +msgstr "задато:слева на десно" -#: src/lib/elementary/elm_dayselector.c:437 +#: src/lib/elementary/elm_dayselector.c:401 msgid "day selector item" msgstr "ставка одабирач дана" -#: src/lib/elementary/elm_diskselector.c:701 +#: src/lib/elementary/elm_diskselector.c:700 msgid "diskselector item" msgstr "ставка одабира диска" -#: src/lib/elementary/elm_entry.c:1749 +#: src/lib/elementary/elm_entry.c:1709 msgid "Cut" msgstr "Исеци" -#: src/lib/elementary/elm_entry.c:1752 +#: src/lib/elementary/elm_entry.c:1712 msgid "Copy" msgstr "Умножи" -#: src/lib/elementary/elm_entry.c:1756 src/lib/elementary/elm_entry.c:1778 +#: src/lib/elementary/elm_entry.c:1716 src/lib/elementary/elm_entry.c:1738 msgid "Paste" msgstr "Прилепи" -#: src/lib/elementary/elm_entry.c:1771 +#: src/lib/elementary/elm_entry.c:1731 msgid "Select" msgstr "Изаберите" -#: src/lib/elementary/elm_entry.c:3937 +#: src/lib/elementary/elm_entry.c:3826 msgid "Entry" msgstr "Улаз" +#: src/lib/elementary/elm_gengrid.c:1500 +msgid "Gengrid Item" +msgstr "Ставка родне мреже" + #: src/lib/elementary/elm_index.c:95 msgid "Index" msgstr "Садржина" @@ -480,99 +461,98 @@ msgstr "Садржина" msgid "Index Item" msgstr "Ставка садржине" -#: src/lib/elementary/elm_label.c:403 +#: src/lib/elementary/elm_label.c:405 msgid "Label" msgstr "Натпис" -#: src/lib/elementary/elm_panel.c:84 +#: src/lib/elementary/elm_panel.c:82 msgid "state: opened" msgstr "стање: отворено" -#: src/lib/elementary/elm_panel.c:85 +#: src/lib/elementary/elm_panel.c:83 msgid "state: closed" msgstr "стање: затворено" -#: src/lib/elementary/elm_panel.c:127 +#: src/lib/elementary/elm_panel.c:123 msgid "A panel is open" msgstr "Полица је отворена" -#: src/lib/elementary/elm_panel.c:129 +#: src/lib/elementary/elm_panel.c:125 msgid "Double tap to close panel menu" msgstr "Двапут додирните за затварање изборника полице" -#: src/lib/elementary/elm_panel.c:181 +#: src/lib/elementary/elm_panel.c:177 msgid "panel button" msgstr "дугме полице" -#: src/lib/elementary/efl_ui_progressbar.c:397 +#: src/lib/elementary/efl_ui_progressbar.c:328 msgid "progressbar" msgstr "трака напретка" -#: src/lib/elementary/efl_ui_radio.c:231 +#: src/lib/elementary/efl_ui_radio.c:228 msgid "Radio" msgstr "Искључујуће дугме" -#: src/lib/elementary/elm_segment_control.c:528 -#: src/lib/elementary/elm_toolbar.c:2296 +#: src/lib/elementary/elm_segment_control.c:529 +#: src/lib/elementary/elm_toolbar.c:2337 msgid "State: Selected" msgstr "Стање: означено" -#: src/lib/elementary/elm_segment_control.c:530 +#: src/lib/elementary/elm_segment_control.c:531 msgid "State: Unselected" msgstr "Стање: неозначено" -#: src/lib/elementary/elm_segment_control.c:544 +#: src/lib/elementary/elm_segment_control.c:545 msgid "Segment Control Item" msgstr "Ставка провере дела" -#: src/lib/elementary/efl_ui_slider.c:704 +#: src/lib/elementary/efl_ui_slider.c:1189 msgid "slider" msgstr "клизач" -#: src/lib/elementary/elm_spinner.c:1071 +#: src/lib/elementary/efl_ui_spinner.c:1050 msgid "incremented" -msgstr "" +msgstr "растуће" -#: src/lib/elementary/elm_spinner.c:1077 +#: src/lib/elementary/efl_ui_spinner.c:1056 msgid "decremented" -msgstr "" +msgstr "опадајуће" -#: src/lib/elementary/elm_spinner.c:1110 src/lib/elementary/elm_spinner.c:1177 +#: src/lib/elementary/efl_ui_spinner.c:1089 +#: src/lib/elementary/efl_ui_spinner.c:1156 msgid "spinner" msgstr "избирач са стрелицама" -#: src/lib/elementary/elm_spinner.c:1119 src/lib/elementary/elm_spinner.c:1160 +#: src/lib/elementary/efl_ui_spinner.c:1098 +#: src/lib/elementary/efl_ui_spinner.c:1139 msgid "spinner increment button" msgstr "стрелица избирача увећaња" -#: src/lib/elementary/elm_spinner.c:1122 src/lib/elementary/elm_spinner.c:1169 +#: src/lib/elementary/efl_ui_spinner.c:1101 +#: src/lib/elementary/efl_ui_spinner.c:1148 msgid "spinner decrement button" msgstr "стрелица избирача смањења" -#: src/lib/elementary/elm_spinner.c:1124 -#, fuzzy +#: src/lib/elementary/efl_ui_spinner.c:1103 msgid "spinner text" -msgstr "избирач са стрелицама" +msgstr "листајуће дугме" -#: src/lib/elementary/elm_toolbar.c:1753 src/lib/elementary/elm_toolbar.c:2355 +#: src/lib/elementary/elm_toolbar.c:1792 src/lib/elementary/elm_toolbar.c:2399 msgid "Selected" msgstr "Изабрано" -#: src/lib/elementary/elm_toolbar.c:2292 +#: src/lib/elementary/elm_toolbar.c:2333 msgid "Separator" msgstr "Одвајач" -#: src/lib/elementary/elm_toolbar.c:2298 +#: src/lib/elementary/elm_toolbar.c:2339 msgid "Has menu" msgstr "Има изборник" -#: src/lib/elementary/elm_toolbar.c:2350 +#: src/lib/elementary/elm_toolbar.c:2394 msgid "Unselected" msgstr "Неозначено" -#: src/lib/elementary/elm_toolbar.c:2367 +#: src/lib/elementary/elm_toolbar.c:2411 msgid "Toolbar Item" msgstr "Ставка траке алата" - -#~ msgid "Gengrid Item" -#~ msgstr "Ставка родне мреже" diff --git a/src/bin/efl_canvas_wl/efl_canvas_wl_test.c b/src/bin/efl_canvas_wl/efl_canvas_wl_test.c index 4bb7e616af..6bedb9ce47 100644 --- a/src/bin/efl_canvas_wl/efl_canvas_wl_test.c +++ b/src/bin/efl_canvas_wl/efl_canvas_wl_test.c @@ -63,8 +63,8 @@ main(int argc, char *argv[]) elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); o = efl_add(EFL_CANVAS_WL_CLASS, win); - efl_canvas_wl_aspect_set(o, 1); - efl_canvas_wl_minmax_set(o, 1); + efl_canvas_wl_aspect_propagate_set(o, 1); + efl_canvas_wl_minmax_propagate_set(o, 1); evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_event_callback_add(o, EVAS_CALLBACK_CHANGED_SIZE_HINTS, hints_changed, win); diff --git a/src/lib/efl_canvas_wl/Efl_Canvas_Wl.h b/src/lib/efl_canvas_wl/Efl_Canvas_Wl.h index 0fae48a3a9..b0c0772ab8 100644 --- a/src/lib/efl_canvas_wl/Efl_Canvas_Wl.h +++ b/src/lib/efl_canvas_wl/Efl_Canvas_Wl.h @@ -44,164 +44,6 @@ typedef struct Efl_Canvas_Wl_Xkb_State Efl_Canvas_Wl_Xkb_State; #endif #include #include -/** - * @defgroup Efl_Wl_Group EFL Wayland - * - * A multiseat xdg-shell compliant Wayland compositor in an Evas object. - * All toplevel windows will be sized to the size of the compositor object. - * @since 1.20 - * @{ - */ -#if 0 -/** - * Add a compositor widget to the given canvas. - * - * The following smart callbacks will trigger on the compositor object: - * "toplevel_added" - A toplevel surface has been added; event info is Evas_Object *surface @since 1.24 - * "child_added" - A toplevel surface with a parent has been added; event info is Evas_Object *surface - * "popup_added" - A popup surface has been added; event info is Evas_Object *surface - * "seat_added" - A compositor seat has been added; event info is Eo *dev - * - * @param e The canvas - * @return The compositor object, @c NULL on failure - */ -EAPI Evas_Object *efl_canvas_wl_add(Evas *e); - -/** - * Run a command in the compositor widget. - * - * @note If GL is available, the ELM_ACCEL environment variable will be - * set to "gl" while executing the command. - * - * @param obj The compositor widget - * @param cmd The command to run - * @return The Ecore_Exe from the executed process, @c NULL on failure - */ -EAPI Ecore_Exe *efl_canvas_wl_run(Evas_Object *obj, const char *cmd); - -/** - * Run a command in the compositor widget with specified flags. - * - * @note If GL is available, the ELM_ACCEL environment variable will be - * set to "gl" while executing the command. - * - * @param obj The compositor widget - * @param cmd The command to run - * @param flags The flags to use - * @return The Ecore_Exe from the executed process, @c NULL on failure - */ -Ecore_Exe *efl_canvas_wl_flags_run(Evas_Object *obj, const char *cmd, Ecore_Exe_Flags flags); - -/** - * Add a process to the list of allowed clients for the compositor widget - * - * @param obj The compositor widget - * @param pid The process to allow - * @since 1.21 - */ -EAPI void efl_canvas_wl_pid_add(Evas_Object *obj, int32_t pid); - -/** - * Remove a process from the list of allowed clients for the compositor widget - * - * @param obj The compositor widget - * @param pid The process to deny - * @since 1.21 - */ -EAPI void efl_canvas_wl_pid_del(Evas_Object *obj, int32_t pid); - -/** - * Put the bottom-most toplevel window on top and apply focus to it - * - * @param obj The compositor widget - * @return EINA_TRUE if the window stacking was changed - */ -EAPI Eina_Bool efl_canvas_wl_surface_next(Evas_Object *obj); - -/** - * Put the second top-most toplevel window on top and apply focus to it - * - * @param obj The compositor widget - * @return EINA_TRUE if the window stacking was changed - */ -EAPI Eina_Bool efl_canvas_wl_surface_prev(Evas_Object *obj); - -/** - * Set rotation and flip for the compositor's output - * - * @param obj The compositor widget - * @param rot The rotation to apply - * @param rtl If set, the output will apply a flip around the Y axis - * @note rtl is equivalent to WL_OUTPUT_TRANSFORM_FLIPPED and rotations are applied - * on top - */ -EAPI void efl_canvas_wl_rotate(Evas_Object *obj, Efl_Wl_Rotation rot, Eina_Bool rtl); - -/** - * Set the scale factor for the compositor's output - * - * @param obj The compositor widget - * @param scale The scale factor to set - */ -EAPI void efl_canvas_wl_scale_set(Evas_Object *obj, double scale); - -/** - * Transfer aspect hints from top-most surface onto the efl_canvas_wl object - * - * @param obj The compositor widget - * @param set Whether to enable aspect setting - * @since 1.21 - */ -EAPI void efl_canvas_wl_aspect_set(Evas_Object *obj, Eina_Bool set); - -/** - * Transfer min/max hints from top-most surface onto the efl_canvas_wl object - * - * @param obj The compositor widget - * @param set Whether to enable min/max setting - * @since 1.21 - */ -EAPI void efl_canvas_wl_minmax_set(Evas_Object *obj, Eina_Bool set); - -/** - * Add an externally-managed global to the compositor - * @note The external implementation is expected to restrict access to authorized - * clients - * @see wl_global_create() docs - * - * @param obj The compositor widget - * @param interface The Wayland protocol interface struct of the protocol's global - * @param version The version of the global to use - * @param data User data to use with this interface - * @param bind_cb The callback which should be triggered when the global is bound by a client - * @return The created global (struct wl_global), or NULL on failure - * @since 1.21 - */ -EAPI void *efl_canvas_wl_global_add(Evas_Object *obj, const void *interface, uint32_t version, void *data, void *bind_cb); - -/** - * Extract a child surface from the compositor - * - * An extracted surface can be freely manipulated by external code. - * @note size hints must be respected, and the extracted object must not be externally deleted - * - * @param surface The surface to extract - * @return True if the surface was successfully extracted - * @since 1.21 - */ -EAPI Eina_Bool efl_canvas_wl_surface_extract(Evas_Object *surface); - -/** - * Return the pid for the surface's client - * - * Get the pid of the underlying client that created the surface. - * - * @param surface The surface to extract - * @return The pid of the surface, or -1 on failure - * @since 1.24 - */ -EAPI int32_t efl_canvas_wl_surface_pid_get(Evas_Object *surface); -#endif /** * Get the Evas_Object for an extracted wl_surface resource created by an efl_canvas_wl object * @@ -209,47 +51,9 @@ EAPI int32_t efl_canvas_wl_surface_pid_get(Evas_Object *surface); * * @param surface_resource The wl_resource for a wl_surface * @return The Evas_Object of the surface, NULL on failure - * @since 1.21 + * @since 1.24 */ EAPI Evas_Object *efl_canvas_wl_extracted_surface_object_find(void *surface_resource); -#if 0 -/** - * Get the Evas_Object for an extracted surface's parent, or NULL if the parent is not extracted - * - * @note Passing anything other than a valid, extracted surface guarantees a crash. - * - * @param surface The extracted surface for a wl_surface - * @return The Evas_Object of the parent surface, NULL on failure or if there is no parent - * @since 1.21 - */ -EAPI Evas_Object *efl_canvas_wl_extracted_surface_extracted_parent_get(Evas_Object *surface); - -/** - * Set external xkbcommon resources to be used read-only by the compositor object - * - * Use this function if you have available the necessary xkbcommon objects which are used - * to handle keyboard states in a compositor. The passed objects will not be modified or copied, - * so this function must be called again in the case that the compositor widget outlives the - * lifetime of any of the passed pointers. - * - * @param obj The compositor widget - * @param seat The seat to set the keymap for, NULL to set the keymap for all seats - * @param keymap The xkb_keymap object to use - * @param state The xkb_state object to use - * @param str The string containing the keymap - * @param wl_key_array A pointer to the wl_array in which keys are stored - * @since 1.21 - */ -EAPI void efl_canvas_wl_seat_keymap_set(Evas_Object *obj, Eo *seat, void *state, char *str, void *wl_key_array); - -/** - * Set the key repeat rate for a seat in the compositor - * - * @param obj The compositor widget - * @since 1.21 - */ -EAPI void efl_canvas_wl_seat_key_repeat_set(Evas_Object *obj, Eo *seat, int repeat_rate, int repeat_delay); -#endif #undef EAPI #define EAPI #undef EAPI_WEAK diff --git a/src/lib/efl_canvas_wl/efl_canvas_wl.c b/src/lib/efl_canvas_wl/efl_canvas_wl.c index 997703299f..734378fcff 100644 --- a/src/lib/efl_canvas_wl/efl_canvas_wl.c +++ b/src/lib/efl_canvas_wl/efl_canvas_wl.c @@ -5690,13 +5690,13 @@ _efl_canvas_wl_efl_gfx_entity_scale_set(Eo *obj EINA_UNUSED, Comp *c, double sca } EOLIAN static Eina_Bool -_efl_canvas_wl_aspect_get(const Eo *obj EINA_UNUSED, Comp *c) +_efl_canvas_wl_aspect_propagate_get(const Eo *obj EINA_UNUSED, Comp *c) { return c->aspect; } EOLIAN static void -_efl_canvas_wl_aspect_set(Eo *obj, Comp *c, Eina_Bool set) +_efl_canvas_wl_aspect_propagate_set(Eo *obj, Comp *c, Eina_Bool set) { if (c->aspect == (!!set)) return; c->aspect = !!set; @@ -5707,13 +5707,13 @@ _efl_canvas_wl_aspect_set(Eo *obj, Comp *c, Eina_Bool set) } EOLIAN static Eina_Bool -_efl_canvas_wl_minmax_get(const Eo *obj EINA_UNUSED, Comp *c) +_efl_canvas_wl_minmax_propagate_get(const Eo *obj EINA_UNUSED, Comp *c) { return c->minmax; } EOLIAN static void -_efl_canvas_wl_minmax_set(Eo *obj, Comp *c, Eina_Bool set) +_efl_canvas_wl_minmax_propagate_set(Eo *obj, Comp *c, Eina_Bool set) { if (c->minmax == (!!set)) return; c->minmax = !!set; diff --git a/src/lib/efl_canvas_wl/efl_canvas_wl.eo b/src/lib/efl_canvas_wl/efl_canvas_wl.eo index 9924ce9a1f..4481ef4f12 100644 --- a/src/lib/efl_canvas_wl/efl_canvas_wl.eo +++ b/src/lib/efl_canvas_wl/efl_canvas_wl.eo @@ -23,87 +23,147 @@ enum @beta Efl.Canvas.Wl.Rotation class @beta Efl.Canvas.Wl extends Efl.Canvas.Group { - [[ + [[A multiseat xdg-shell compliant Wayland compositor which runs in a canvas object. + + All toplevel windows will be sized to the size of the compositor object unless extracted with + @Efl.Canvas.Wl_Surface.extract. + + Only clients executed with @Efl.Canvas.Wl.run or added with @.allowed_pid_add will + be permitted to connect to this compositor. + + If no surface is activated at the time of the first toplevel surface's first buffer commit, this + first surface will automatically be activated so long as its geometry is not externally modified + during this time. If regularly modifying geometry is necessary, surfaces should be manually activated + with the @.active_surface property. + @since 1.24 ]] data: Comp; methods { run { - [[This runs a command in the compositor using the @Efl.Exe_Flags.term_with_parent flag. + [[ + Run a specified command in the compositor widget. + If GL is available, the ELM_ACCEL environment variable will be set to "gl" while executing the command. ]] params { - cmd: string; + cmd: string; [[The command to execute.]] } - return: Efl.Exe; + return: Efl.Exe; [[The exe object for the executed process. $NULL on failure.]] } @property exec_flags { + [[The flags to be used when running commands with @Efl.Canvas.Wl.run. + Changing this value will only affect commands run after this call. + + The default is @Efl.Exe_Flags.term_with_parent. + ]] values { - flags: Efl.Exe_Flags; + flags: Efl.Exe_Flags; [[A bitmask of flags.]] } } allowed_pid_add { + [[Add a process to the list of allowed clients for the compositor widget. + + Once called, this client will be capable of connecting to the internal compositor + even if it was not executed by the widget. + ]] params { - pid: int; + pid: int; [[The pid to add.]] } } allowed_pid_del { + [[Remove a process from the list of allowed clients for the compositor widget. + + Once called, this client will be incapable of connecting to the internal compositor + even if it was executed by the widget. + ]] params { - pid: int; + pid: int; [[The pid to remove.]] } } surface_next { - return: Efl.Canvas.Wl.Surface; + [[Activate and raise the bottom-most toplevel surface.]] + return: Efl.Canvas.Wl_Surface; [[The surface that was activated, or $NULL if no change was made.]] } surface_prev { - return: Efl.Canvas.Wl.Surface; + [[Activate and raise the second top-most toplevel surface.]] + return: Efl.Canvas.Wl_Surface; [[The surface that was activated, or $NULL if no change was made.]] } @property active_surface { + [[This is the currently activated surface in the compositor widget. + Only one surface can be activated at a time. + ]] get {} set { - return: bool; + return: bool; [[Returns $true if a change was successfully made.]] } values { - surface: Efl.Canvas.Wl.Surface; + surface: Efl.Canvas.Wl_Surface; [[The activated surface.]] } } - @property aspect { + @property aspect_propagate { + [[When set to $true, the compositor will propagate the aspect ratio of the top-most + surface to the @Efl.Gfx.Hint.hint_aspect of the compositor widget. + ]] values { - set: bool; + set: bool; [[Whether to propagate the hint.]] } } - @property minmax { + @property minmax_propagate { + [[When set to $true, the compositor will propagate the min and max hints of the top-most + surface to the @Efl.Gfx.Hint.hint_size_min and @Efl.Gfx.Hint.hint_size_max of the compositor widget. + ]] values { - set: bool; + set: bool; [[Whether to propagate the hints.]] } } @property rotation { + [[Set the rotation and flip for the compositor's internal output, which is passed to clients. + + Note that the rotation provided here is counter-clockwise. + ]] values { - rotation: Efl.Canvas.Wl.Rotation; - rtl: bool; + rotation: Efl.Canvas.Wl.Rotation; [[The rotation to apply to the internal output.]] + rtl: bool; [[The horizontal flip to apply to the internal output.]] } } global_add { + [[Add a new wl_global to the internal compositor. + + Use this to add implementations of custom extensions for use in the compositor. + Globals are removed with wl_global_destroy in libwayland. + + Read Wayland documentation for more info. + ]] params { - interface: const(Efl.Canvas.Wl_Wl_Interface) @by_ref; - version: uint; - data: Efl.Canvas.Wl_Wl_Interface_Data @by_ref; - bind_cb: Efl.Canvas.Wl_Wl_Interface_Bind_Cb @by_ref; + interface: const(Efl.Canvas.Wl_Wl_Interface) @by_ref; [[The wl_interface of callbacks for the protocol.]] + version: uint; [[The version of the protocol.]] + data: Efl.Canvas.Wl_Wl_Interface_Data @by_ref; [[The data to be passed to the callback functions.]] + bind_cb: Efl.Canvas.Wl_Wl_Interface_Bind_Cb @by_ref; [[The callback to trigger when a client has bound this global.]] } - return: Efl.Canvas.Wl_Wl_Global @by_ref; + return: Efl.Canvas.Wl_Wl_Global @by_ref; [[The $wl_global or $NULL on failure.]] } seat_keymap_set { + [[Sets the keymap for the internal compositor's seat. + + This is useful when nesting the compositor widget inside another compositor in order to reuse the existing keymap and state. + ]] params { - seat: Efl.Input.Device; - state: Efl.Canvas.Wl_Xkb_State @by_ref; - keymap_str: string; - key_array: Efl.Canvas.Wl_Wl_Array @by_ref; + seat: Efl.Input.Device; [[The seat to set the keymap of, or $NULL for all seats.]] + state: Efl.Canvas.Wl_Xkb_State @by_ref; [[The $xkb_state to apply.]] + keymap_str: string; [[The keymap type as a string, as reported by libxkbcommon. + The lifetime of the passed string must exceed the lifetime of the compositor widget. + ]] + key_array: Efl.Canvas.Wl_Wl_Array @by_ref; [[The current $wl_array of keys.]] } } seat_key_repeat_set { + [[Modify the key repeat rate and delay of the internal compositor for a given seat. + This is the value sent to clients. + ]] params { - seat: Efl.Input.Device; - repeat_rate: int; - repeat_delay: int; + seat: Efl.Input.Device; [[The seat to set the repeat rate and delay of, or $NULL for all seats.]] + repeat_rate: int; [[The repeat rate to set in number of times per second keys should repeat.]] + repeat_delay: int; [[The delay before repeating should begin in milliseconds.]] } } } @@ -115,9 +175,9 @@ class @beta Efl.Canvas.Wl extends Efl.Canvas.Group Efl.Gfx.Entity.scale { get; set; } } events { - toplevel,added: Efl.Canvas.Wl.Surface; [[]] - child,added: Efl.Canvas.Wl.Surface; [[]] - popup,added: Efl.Canvas.Wl.Surface; [[]] - seat,added: Efl.Input.Device; [[The seat object added.]] + toplevel,added: Efl.Canvas.Wl_Surface; [[Contains the toplevel surface which was added.]] + child,added: Efl.Canvas.Wl_Surface; [[Contains the toplevel child surface which was added.]] + popup,added: Efl.Canvas.Wl_Surface; [[Contains the popup surface which was added.]] + seat,added: Efl.Input.Device; [[Contains the seat object that was added.]] } } diff --git a/src/lib/efl_canvas_wl/efl_canvas_wl_surface.eo b/src/lib/efl_canvas_wl/efl_canvas_wl_surface.eo index f2a351becc..d2646f8431 100644 --- a/src/lib/efl_canvas_wl/efl_canvas_wl_surface.eo +++ b/src/lib/efl_canvas_wl/efl_canvas_wl_surface.eo @@ -1,27 +1,61 @@ -class @beta Efl.Canvas.Wl.Surface extends Efl.Canvas.Group +class @beta Efl.Canvas.Wl_Surface extends Efl.Canvas.Group { - [[@since 1.24]] + [[A canvas object representing a Wayland toplevel or popup surface. + + This object's geometry properties reflect the properties of the underlying surface. If + the client is using a protocol to export its size hints, those hints will be directly + applied to this object any time they change in the application. + + Changes to geometry and visibility of this object must not be made while @.extracted + is $false. + + Changes to size of this object will be immediately propagated to the underlying application. + + Hiding this object will have differing effects based on the surface's xdg-shell role. + If the surface is a popup, it will be sent the 'done' protocol event which will close it. + If the surface is a toplevel, it will be deactivated if it was active. + + This object's lifetime is bound to the lifetime of the underlying surface or the compositor widget. + + This object must not be manually deleted. + @since 1.24 + ]] data: Comp_Surface; methods { extract { - return: bool; + [[Extract a surface from the compositor widget. + + Call this prior to making any calls which directly modify the geometry of + the surface. Once extracted, the compositor will no longer attempt to automatically + apply geometry or stacking changes to the surface. + + Once extracted, a surface cannot be un-extracted. + ]] + return: bool; [[Returns $true if the surface was successfully extracted.]] } @property pid { + [[The process id of the surface's application.]] get {} values { - pid: int; + pid: int; [[The process id, or -1 if the surface has been asynchronously destroyed.]] } } @property parent_surface { + [[The parent surface of the given surface. This value is $NULL for toplevel surfaces without a parent. + + For popup surfaces, this may be another popup or a toplevel. + For toplevel surfaces, this will always be another toplevel or $NULL. + ]] get {} values { - parent: Efl.Canvas.Wl.Surface; + parent: Efl.Canvas.Wl_Surface; [[The parent surface. $NULL if no parent exists or the surface was asynchronously destroyed.]] } } @property extracted { + [[The extracted state of the surface.]] get {} values { - extracted: bool; + extracted: bool; [[$true if @.extract was successfully called previously.]] } } } diff --git a/src/lib/evas/common/evas_convert_gry_8.c b/src/lib/evas/common/evas_convert_gry_8.c index 30993ce498..bef3b39de0 100644 --- a/src/lib/evas/common/evas_convert_gry_8.c +++ b/src/lib/evas/common/evas_convert_gry_8.c @@ -25,7 +25,7 @@ void evas_common_convert_rgba_to_8bpp_gry_256_dith (DATA32 *src, DATA8 *dst, b = (B_VAL(src_ptr)); // Y = 0.299 * R + 0.587 * G + 0.114 * B; - gry8 = ((r * 19595) + (g * 38469) + (b * 7471)) >> 16; + gry8 = ((r * 19596) + (g * 38470) + (b * 7472)) >> 16; *dst_ptr = gry8; @@ -54,7 +54,7 @@ void evas_common_convert_rgba_to_8bpp_gry_16_dith (DATA32 *src, DATA8 *dst, b = (B_VAL(src_ptr)); // Y = 0.299 * R + 0.587 * G + 0.114 * B; - gry8 = ((r * 19595) + (g * 38469) + (b * 7471)) >> 16; + gry8 = ((r * 19596) + (g * 38470) + (b * 7472)) >> 16; if (((gry8 - gry8 * 255 / 4) >= dith) && (gry8 < 0x07)) gry8++; diff --git a/src/lib/evas/gesture/efl_canvas_gesture_manager.c b/src/lib/evas/gesture/efl_canvas_gesture_manager.c index 29745843bb..4a1239637f 100644 --- a/src/lib/evas/gesture/efl_canvas_gesture_manager.c +++ b/src/lib/evas/gesture/efl_canvas_gesture_manager.c @@ -162,7 +162,6 @@ _efl_canvas_gesture_manager_efl_object_constructor(Eo *obj, Efl_Canvas_Gesture_M efl_gesture_manager_recognizer_register(obj, efl_add(EFL_CANVAS_GESTURE_RECOGNIZER_ROTATE_CLASS, obj)); efl_gesture_manager_recognizer_register(obj, efl_add(EFL_CANVAS_GESTURE_RECOGNIZER_ZOOM_CLASS, obj)); /* realistically this will never fail, but the whole gesture layer breaks if this is 0 */ - finger_size = efl_config_int_get(config, "glayer_tap_finger_size"); if (!getenv("EFL_RUN_IN_TREE")) finger_size = efl_config_int_get(config, "glayer_tap_finger_size"); if (finger_size < 1) finger_size = 10;