Compare commits
10 Commits
wip/kms-co
...
wip/carlos
Author | SHA1 | Date | |
---|---|---|---|
![]() |
18c85c9ffb | ||
![]() |
bcfac0d6dc | ||
![]() |
682d43b5ab | ||
![]() |
cd273e82ad | ||
![]() |
3c0067dc69 | ||
![]() |
a957c2f0c2 | ||
![]() |
908203c735 | ||
![]() |
2f072af02b | ||
![]() |
de98fb29da | ||
![]() |
82c92177ff |
@@ -210,6 +210,8 @@ ClutterBackend *_clutter_device_manager_get_backend (ClutterDeviceMa
|
|||||||
void _clutter_device_manager_compress_motion (ClutterDeviceManager *device_manger,
|
void _clutter_device_manager_compress_motion (ClutterDeviceManager *device_manger,
|
||||||
ClutterEvent *event,
|
ClutterEvent *event,
|
||||||
const ClutterEvent *to_discard);
|
const ClutterEvent *to_discard);
|
||||||
|
CLUTTER_EXPORT
|
||||||
|
void clutter_device_manager_ensure_a11y_state (ClutterDeviceManager *device_manager);
|
||||||
|
|
||||||
/* input device */
|
/* input device */
|
||||||
CLUTTER_EXPORT
|
CLUTTER_EXPORT
|
||||||
|
@@ -607,6 +607,20 @@ _clutter_device_manager_compress_motion (ClutterDeviceManager *device_manager,
|
|||||||
manager_class->compress_motion (device_manager, event, to_discard);
|
manager_class->compress_motion (device_manager, event, to_discard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
clutter_device_manager_ensure_a11y_state (ClutterDeviceManager *device_manager)
|
||||||
|
{
|
||||||
|
ClutterInputDevice *core_pointer;
|
||||||
|
|
||||||
|
core_pointer = clutter_device_manager_get_core_device (device_manager,
|
||||||
|
CLUTTER_POINTER_DEVICE);
|
||||||
|
if (core_pointer)
|
||||||
|
{
|
||||||
|
if (_clutter_is_input_pointer_a11y_enabled (core_pointer))
|
||||||
|
_clutter_input_pointer_a11y_add_device (core_pointer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
are_kbd_a11y_settings_equal (ClutterKbdA11ySettings *a,
|
are_kbd_a11y_settings_equal (ClutterKbdA11ySettings *a,
|
||||||
ClutterKbdA11ySettings *b)
|
ClutterKbdA11ySettings *b)
|
||||||
|
114
po/cs.po
114
po/cs.po
@@ -12,8 +12,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter\n"
|
"Project-Id-Version: mutter\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
||||||
"POT-Creation-Date: 2019-02-04 17:52+0000\n"
|
"POT-Creation-Date: 2019-08-06 00:49+0000\n"
|
||||||
"PO-Revision-Date: 2019-02-12 14:21+0100\n"
|
"PO-Revision-Date: 2019-09-03 22:19+0200\n"
|
||||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||||
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
|
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
|
||||||
"Language: cs\n"
|
"Language: cs\n"
|
||||||
@@ -396,7 +396,10 @@ msgid ""
|
|||||||
"proof. Currently possible keywords: • “scale-monitor-framebuffer” — makes "
|
"proof. Currently possible keywords: • “scale-monitor-framebuffer” — makes "
|
||||||
"mutter default to layout logical monitors in a logical pixel coordinate "
|
"mutter default to layout logical monitors in a logical pixel coordinate "
|
||||||
"space, while scaling monitor framebuffers instead of window content, to "
|
"space, while scaling monitor framebuffers instead of window content, to "
|
||||||
"manage HiDPI monitors. Does not require a restart."
|
"manage HiDPI monitors. Does not require a restart. • “rt-scheduler” — makes "
|
||||||
|
"mutter request a low priority real-time scheduling. The executable or user "
|
||||||
|
"must have CAP_SYS_NICE. Requires a restart. • “autostart-xwayland” — "
|
||||||
|
"initializes Xwayland lazily if there are X11 clients. Requires restart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Chcete-li povolit experimentální funkce, přidejte klíčové slovo funkce do "
|
"Chcete-li povolit experimentální funkce, přidejte klíčové slovo funkce do "
|
||||||
"seznamu. Zda funkce vyžaduje restartování kompozitoru, závisí na dané "
|
"seznamu. Zda funkce vyžaduje restartování kompozitoru, závisí na dané "
|
||||||
@@ -407,21 +410,32 @@ msgstr ""
|
|||||||
"mutter výchozí pro logické uspořádání monitorů v logickém souřadnicovém "
|
"mutter výchozí pro logické uspořádání monitorů v logickém souřadnicovém "
|
||||||
"prostoru pixelů, zatímco škáluje přímo v grafické vyrovnávací paměti, "
|
"prostoru pixelů, zatímco škáluje přímo v grafické vyrovnávací paměti, "
|
||||||
"namísto v obsahu oken, aby se postaral o správu montorů s HiDPI. Nevyžaduje "
|
"namísto v obsahu oken, aby se postaral o správu montorů s HiDPI. Nevyžaduje "
|
||||||
"restart."
|
"restart. • „rt-scheduler“ – zajistí, aby měly požadavky mutter nízkou "
|
||||||
|
"prioritu v plánování reálného času. Spustitelný soubor nebo uživatel musí "
|
||||||
|
"mít CAP_SYS_NICE. Vyžaduje restart. • „autostart-xwayland“ – inicializuje "
|
||||||
|
"Xwayland líněji v situaci, kdy existují klienti X11. Vyžaduje restart."
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:141
|
#: data/org.gnome.mutter.gschema.xml.in:134
|
||||||
|
msgid "Modifier to use to locate the pointer"
|
||||||
|
msgstr "Modifikátor ke zjištění pozice ukazatele"
|
||||||
|
|
||||||
|
#: data/org.gnome.mutter.gschema.xml.in:135
|
||||||
|
msgid "This key will initiate the “locate pointer” action."
|
||||||
|
msgstr "Tato klávesa spustí činnost „zjisti polohu ukazatele“."
|
||||||
|
|
||||||
|
#: data/org.gnome.mutter.gschema.xml.in:155
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "Vybrat okno z překryvné nabídky tabulátoru"
|
msgstr "Vybrat okno z překryvné nabídky tabulátoru"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:146
|
#: data/org.gnome.mutter.gschema.xml.in:160
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "Zrušit překryvné okno tabulátoru"
|
msgstr "Zrušit překryvné okno tabulátoru"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:151
|
#: data/org.gnome.mutter.gschema.xml.in:165
|
||||||
msgid "Switch monitor configurations"
|
msgid "Switch monitor configurations"
|
||||||
msgstr "Přepnout nastavení monitoru"
|
msgstr "Přepnout nastavení monitoru"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:156
|
#: data/org.gnome.mutter.gschema.xml.in:170
|
||||||
msgid "Rotates the built-in monitor configuration"
|
msgid "Rotates the built-in monitor configuration"
|
||||||
msgstr "Postupně mění vestavěná nastavení monitoru"
|
msgstr "Postupně mění vestavěná nastavení monitoru"
|
||||||
|
|
||||||
@@ -478,29 +492,39 @@ msgid "Re-enable shortcuts"
|
|||||||
msgstr "Znovu povolit klávesové zkratky"
|
msgstr "Znovu povolit klávesové zkratky"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:64
|
#: data/org.gnome.mutter.wayland.gschema.xml.in:64
|
||||||
msgid "Allow grabs with Xwayland"
|
msgid "Allow X11 grabs to lock keyboard focus with Xwayland"
|
||||||
msgstr "Povolit zachytávání pomocí Xwaylandu"
|
msgstr ""
|
||||||
|
"Povolit X11 zachytávání, aby mohl zabrat zaměření klávesnice pomocí Xwaylandu"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:65
|
#: data/org.gnome.mutter.wayland.gschema.xml.in:65
|
||||||
msgid ""
|
msgid ""
|
||||||
"Allow keyboard grabs issued by X11 applications running in Xwayland to be "
|
"Allow all keyboard events to be routed to X11 “override redirect” windows "
|
||||||
"taken into account. For a X11 grab to be taken into account under Wayland, "
|
"with a grab when running in Xwayland. This option is to support X11 clients "
|
||||||
"the client must also either send a specific X11 ClientMessage to the root "
|
"which map an “override redirect” window (which do not receive keyboard "
|
||||||
"window or be among the applications white-listed in key “xwayland-grab-"
|
"focus) and issue a keyboard grab to force all keyboard events to that "
|
||||||
"access-rules”."
|
"window. This option is seldom used and has no effect on regular X11 windows "
|
||||||
|
"which can receive keyboard focus under normal circumstances. For a X11 grab "
|
||||||
|
"to be taken into account under Wayland, the client must also either send a "
|
||||||
|
"specific X11 ClientMessage to the root window or be among the applications "
|
||||||
|
"white-listed in key “xwayland-grab-access-rules”."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Povolit, aby bylo bráno v úvahu zachytávání kláves, o které se stará "
|
"Umožňujs směrovat všechny události klávesnice do oken X11 typu „přebytí "
|
||||||
"aplikace X11 běžící v Xwaylandu. Aby bylo pod Waylandem zachytávání bráno v "
|
"přesměrování“ pomocí zachytávání při běhu Xwaylandu. Tato volba je určena pro "
|
||||||
|
"podporu klientů X11, kteří mapují okna „přebytí přesměrování“ (která "
|
||||||
|
"nepřijímají zaměření klávesnice) a vynucuje zachytávání klávesnice zasílat "
|
||||||
|
"všechny události klávesnice do těchto oken. Tato volba je využívána jen "
|
||||||
|
"zřídka a nemá žádný vliv na běžná okna X11, která mohou přijímat zaměření "
|
||||||
|
"klávesnice za normálních podmínek. Aby bylo pod Waylandem zachytávání bráno v "
|
||||||
"úvahu, musí klient navíc buď poslat specifickou zprávu X11 ClientMessage do "
|
"úvahu, musí klient navíc buď poslat specifickou zprávu X11 ClientMessage do "
|
||||||
"kořenového okna, nebo být mezi aplikacemi na bílé listině v klíči „xwayland-"
|
"kořenového okna, nebo být mezi aplikacemi na bílé listině v klíči „xwayland-"
|
||||||
"grab-access-rules“."
|
"grab-access-rules“."
|
||||||
|
|
||||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:77
|
#: data/org.gnome.mutter.wayland.gschema.xml.in:84
|
||||||
msgid "Xwayland applications allowed to issue keyboard grabs"
|
msgid "Xwayland applications allowed to issue keyboard grabs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Aplikace pod Xwaylandem mají povoleno se starat o zachytávání klávesnice"
|
"Aplikace pod Xwaylandem mají povoleno se starat o zachytávání klávesnice"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:78
|
#: data/org.gnome.mutter.wayland.gschema.xml.in:85
|
||||||
msgid ""
|
msgid ""
|
||||||
"List the resource names or resource class of X11 windows either allowed or "
|
"List the resource names or resource class of X11 windows either allowed or "
|
||||||
"not allowed to issue X11 keyboard grabs under Xwayland. The resource name or "
|
"not allowed to issue X11 keyboard grabs under Xwayland. The resource name or "
|
||||||
@@ -527,7 +551,7 @@ msgstr ""
|
|||||||
#. TRANSLATORS: This string refers to a button that switches between
|
#. TRANSLATORS: This string refers to a button that switches between
|
||||||
#. * different modes.
|
#. * different modes.
|
||||||
#.
|
#.
|
||||||
#: src/backends/meta-input-settings.c:2423
|
#: src/backends/meta-input-settings.c:2531
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Mode Switch (Group %d)"
|
msgid "Mode Switch (Group %d)"
|
||||||
msgstr "Přepínač režimu (skupina %d)"
|
msgstr "Přepínač režimu (skupina %d)"
|
||||||
@@ -535,34 +559,34 @@ msgstr "Přepínač režimu (skupina %d)"
|
|||||||
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
|
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
|
||||||
#. * mapping through the available outputs.
|
#. * mapping through the available outputs.
|
||||||
#.
|
#.
|
||||||
#: src/backends/meta-input-settings.c:2446
|
#: src/backends/meta-input-settings.c:2554
|
||||||
msgid "Switch monitor"
|
msgid "Switch monitor"
|
||||||
msgstr "Přepnout monitor"
|
msgstr "Přepnout monitor"
|
||||||
|
|
||||||
#: src/backends/meta-input-settings.c:2448
|
#: src/backends/meta-input-settings.c:2556
|
||||||
msgid "Show on-screen help"
|
msgid "Show on-screen help"
|
||||||
msgstr "Zobrazit nápovědu na obrazovce"
|
msgstr "Zobrazit nápovědu na obrazovce"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:954
|
#: src/backends/meta-monitor.c:223
|
||||||
msgid "Built-in display"
|
msgid "Built-in display"
|
||||||
msgstr "Vestavěný displej"
|
msgstr "Vestavěný displej"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:986
|
#: src/backends/meta-monitor.c:252
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Neznámý"
|
msgstr "Neznámý"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:988
|
#: src/backends/meta-monitor.c:254
|
||||||
msgid "Unknown Display"
|
msgid "Unknown Display"
|
||||||
msgstr "Neznámý displej"
|
msgstr "Neznámý displej"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:996
|
#: src/backends/meta-monitor.c:262
|
||||||
#, c-format
|
#, c-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'"
|
"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'"
|
||||||
msgid "%s %s"
|
msgid "%s %s"
|
||||||
msgstr "%s %s"
|
msgstr "%s %s"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:1004
|
#: src/backends/meta-monitor.c:270
|
||||||
#, c-format
|
#, c-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"This is a monitor vendor name followed by product/model name where size in "
|
"This is a monitor vendor name followed by product/model name where size in "
|
||||||
@@ -570,15 +594,20 @@ msgctxt ""
|
|||||||
msgid "%s %s"
|
msgid "%s %s"
|
||||||
msgstr "%s %s"
|
msgstr "%s %s"
|
||||||
|
|
||||||
|
#. Translators: this string will appear in Sysprof
|
||||||
|
#: src/backends/meta-profiler.c:82
|
||||||
|
msgid "Compositor"
|
||||||
|
msgstr "Kompozitor"
|
||||||
|
|
||||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||||
#. * we have no way to get it to exit
|
#. * we have no way to get it to exit
|
||||||
#: src/compositor/compositor.c:482
|
#: src/compositor/compositor.c:510
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Another compositing manager is already running on screen %i on display “%s”."
|
"Another compositing manager is already running on screen %i on display “%s”."
|
||||||
msgstr "Jiný kompozitní správce již běží na obrazovce %i displeje „%s“."
|
msgstr "Jiný kompozitní správce již běží na obrazovce %i displeje „%s“."
|
||||||
|
|
||||||
#: src/core/bell.c:252
|
#: src/core/bell.c:192
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Událost zvonku"
|
msgstr "Událost zvonku"
|
||||||
|
|
||||||
@@ -627,16 +656,16 @@ msgid "Run with X11 backend"
|
|||||||
msgstr "Spustit se serverem X11"
|
msgstr "Spustit se serverem X11"
|
||||||
|
|
||||||
#. Translators: %s is a window title
|
#. Translators: %s is a window title
|
||||||
#: src/core/meta-close-dialog-default.c:150
|
#: src/core/meta-close-dialog-default.c:151
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "“%s” is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "„%s“ nereaguje."
|
msgstr "„%s“ nereaguje."
|
||||||
|
|
||||||
#: src/core/meta-close-dialog-default.c:152
|
#: src/core/meta-close-dialog-default.c:153
|
||||||
msgid "Application is not responding."
|
msgid "Application is not responding."
|
||||||
msgstr "Aplikace nereaguje."
|
msgstr "Aplikace nereaguje."
|
||||||
|
|
||||||
#: src/core/meta-close-dialog-default.c:157
|
#: src/core/meta-close-dialog-default.c:158
|
||||||
msgid ""
|
msgid ""
|
||||||
"You may choose to wait a short while for it to continue or force the "
|
"You may choose to wait a short while for it to continue or force the "
|
||||||
"application to quit entirely."
|
"application to quit entirely."
|
||||||
@@ -644,11 +673,11 @@ msgstr ""
|
|||||||
"Je možné chvíli počkat, aby aplikace mohla pokračovat, nebo si vynutit úplné "
|
"Je možné chvíli počkat, aby aplikace mohla pokračovat, nebo si vynutit úplné "
|
||||||
"ukončení aplikace."
|
"ukončení aplikace."
|
||||||
|
|
||||||
#: src/core/meta-close-dialog-default.c:164
|
#: src/core/meta-close-dialog-default.c:165
|
||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Vynutit ukončení"
|
msgstr "_Vynutit ukončení"
|
||||||
|
|
||||||
#: src/core/meta-close-dialog-default.c:164
|
#: src/core/meta-close-dialog-default.c:165
|
||||||
msgid "_Wait"
|
msgid "_Wait"
|
||||||
msgstr "_Počkat"
|
msgstr "_Počkat"
|
||||||
|
|
||||||
@@ -676,7 +705,7 @@ msgstr "Vypsat verzi"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "Zásuvný modul Mutter, který se má použít"
|
msgstr "Zásuvný modul Mutter, který se má použít"
|
||||||
|
|
||||||
#: src/core/prefs.c:1786
|
#: src/core/prefs.c:1849
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Plocha %d"
|
msgstr "Plocha %d"
|
||||||
@@ -690,7 +719,7 @@ msgstr "Mutter bylo přeloženo bez podpory podrobného režimu\n"
|
|||||||
msgid "Mode Switch: Mode %d"
|
msgid "Mode Switch: Mode %d"
|
||||||
msgstr "Přepínač režimu: režim %d"
|
msgstr "Přepínač režimu: režim %d"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:666
|
#: src/x11/meta-x11-display.c:671
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Display “%s” already has a window manager; try using the --replace option to "
|
"Display “%s” already has a window manager; try using the --replace option to "
|
||||||
@@ -699,20 +728,25 @@ msgstr ""
|
|||||||
"Displej „%s“ již správce oken má; zkuste prosím nahradit aktuálního správce "
|
"Displej „%s“ již správce oken má; zkuste prosím nahradit aktuálního správce "
|
||||||
"oken pomocí přepínače --replace."
|
"oken pomocí přepínače --replace."
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1008
|
#: src/x11/meta-x11-display.c:1032
|
||||||
msgid "Failed to initialize GDK\n"
|
msgid "Failed to initialize GDK\n"
|
||||||
msgstr "Selhala inicializace GDK\n"
|
msgstr "Selhala inicializace GDK\n"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1032
|
#: src/x11/meta-x11-display.c:1056
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display “%s”\n"
|
msgid "Failed to open X Window System display “%s”\n"
|
||||||
msgstr "Nelze otevřít displej X Window System „%s“\n"
|
msgstr "Nelze otevřít displej X Window System „%s“\n"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1115
|
#: src/x11/meta-x11-display.c:1140
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display “%s” is invalid\n"
|
msgid "Screen %d on display “%s” is invalid\n"
|
||||||
msgstr "Obrazovka %d na displeji „%s“ je neplatná\n"
|
msgstr "Obrazovka %d na displeji „%s“ je neplatná\n"
|
||||||
|
|
||||||
|
#: src/x11/meta-x11-selection-input-stream.c:445
|
||||||
|
#, c-format
|
||||||
|
msgid "Format %s not supported"
|
||||||
|
msgstr "Formát %s není podporován"
|
||||||
|
|
||||||
#: src/x11/session.c:1821
|
#: src/x11/session.c:1821
|
||||||
msgid ""
|
msgid ""
|
||||||
"These windows do not support “save current setup” and will have to be "
|
"These windows do not support “save current setup” and will have to be "
|
||||||
@@ -721,7 +755,7 @@ msgstr ""
|
|||||||
"Tato okna nepodporují „uložení aktuálního nastavení“ a po svém příštím "
|
"Tato okna nepodporují „uložení aktuálního nastavení“ a po svém příštím "
|
||||||
"přihlášení je budete muset spustit ručně."
|
"přihlášení je budete muset spustit ručně."
|
||||||
|
|
||||||
#: src/x11/window-props.c:568
|
#: src/x11/window-props.c:569
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (na %s)"
|
msgstr "%s (na %s)"
|
||||||
|
31
po/fur.po
31
po/fur.po
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter master\n"
|
"Project-Id-Version: mutter master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
||||||
"POT-Creation-Date: 2019-07-18 21:05+0000\n"
|
"POT-Creation-Date: 2019-08-06 00:49+0000\n"
|
||||||
"PO-Revision-Date: 2019-07-28 10:06+0200\n"
|
"PO-Revision-Date: 2019-09-03 09:53+0200\n"
|
||||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
||||||
"Language-Team: Friulian <fur@li.org>\n"
|
"Language-Team: Friulian <fur@li.org>\n"
|
||||||
"Language: fur\n"
|
"Language: fur\n"
|
||||||
@@ -393,7 +393,8 @@ msgid ""
|
|||||||
"space, while scaling monitor framebuffers instead of window content, to "
|
"space, while scaling monitor framebuffers instead of window content, to "
|
||||||
"manage HiDPI monitors. Does not require a restart. • “rt-scheduler” — makes "
|
"manage HiDPI monitors. Does not require a restart. • “rt-scheduler” — makes "
|
||||||
"mutter request a low priority real-time scheduling. The executable or user "
|
"mutter request a low priority real-time scheduling. The executable or user "
|
||||||
"must have CAP_SYS_NICE. Requires a restart."
|
"must have CAP_SYS_NICE. Requires a restart. • “autostart-xwayland” — "
|
||||||
|
"initializes Xwayland lazily if there are X11 clients. Requires restart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Par abilitâ lis funzionalitâts sperimentâls, zonte la peraule clâf de "
|
"Par abilitâ lis funzionalitâts sperimentâls, zonte la peraule clâf de "
|
||||||
"funzionalitât ae liste. Il fat che la funzionalitât e vedi bisugne di tornâ "
|
"funzionalitât ae liste. Il fat che la funzionalitât e vedi bisugne di tornâ "
|
||||||
@@ -407,29 +408,31 @@ msgstr ""
|
|||||||
"dal barcon; dut chest par gjestî i visôrs HiDPI. Nol covente tornâ a inviâ. "
|
"dal barcon; dut chest par gjestî i visôrs HiDPI. Nol covente tornâ a inviâ. "
|
||||||
"• “rt-scheduler” — al fâs in mût che mutter al domandi une programazion in "
|
"• “rt-scheduler” — al fâs in mût che mutter al domandi une programazion in "
|
||||||
"timp reâl a prioritât basse. L'eseguibil o l'utent a scugnin vê "
|
"timp reâl a prioritât basse. L'eseguibil o l'utent a scugnin vê "
|
||||||
"CAP_SYS_NICE. Al covente tornâ a inviâ."
|
"CAP_SYS_NICE. Al covente tornâ a inviâ. • “autostart-xwayland” — al "
|
||||||
|
"inizialize Xwayland in maniere sflacjose se a son presints clients X11. Al "
|
||||||
|
"covente tornâ a inviâ."
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:132
|
#: data/org.gnome.mutter.gschema.xml.in:134
|
||||||
msgid "Modifier to use to locate the pointer"
|
msgid "Modifier to use to locate the pointer"
|
||||||
msgstr "Modificadôr di doprâ par localizâ il pontadôr"
|
msgstr "Modificadôr di doprâ par localizâ il pontadôr"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:133
|
#: data/org.gnome.mutter.gschema.xml.in:135
|
||||||
msgid "This key will initiate the “locate pointer” action."
|
msgid "This key will initiate the “locate pointer” action."
|
||||||
msgstr "Cheste clâf e inizializerâ la azion “localize pontadôr”."
|
msgstr "Cheste clâf e inizializerâ la azion “localize pontadôr”."
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:153
|
#: data/org.gnome.mutter.gschema.xml.in:155
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "Selezione barcon dal tab popup"
|
msgstr "Selezione barcon dal tab popup"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:158
|
#: data/org.gnome.mutter.gschema.xml.in:160
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "Anule tab popup"
|
msgstr "Anule tab popup"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:163
|
#: data/org.gnome.mutter.gschema.xml.in:165
|
||||||
msgid "Switch monitor configurations"
|
msgid "Switch monitor configurations"
|
||||||
msgstr "Cambie configurazions visôr"
|
msgstr "Cambie configurazions visôr"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:168
|
#: data/org.gnome.mutter.gschema.xml.in:170
|
||||||
msgid "Rotates the built-in monitor configuration"
|
msgid "Rotates the built-in monitor configuration"
|
||||||
msgstr "Al volte la configurazion dal visôr integrât"
|
msgstr "Al volte la configurazion dal visôr integrât"
|
||||||
|
|
||||||
@@ -712,7 +715,7 @@ msgstr "Mutter al è stât compilât cence supuart pe modalitât fetose\n"
|
|||||||
msgid "Mode Switch: Mode %d"
|
msgid "Mode Switch: Mode %d"
|
||||||
msgstr "Cambie mût: mût %d"
|
msgstr "Cambie mût: mût %d"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:682
|
#: src/x11/meta-x11-display.c:671
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Display “%s” already has a window manager; try using the --replace option to "
|
"Display “%s” already has a window manager; try using the --replace option to "
|
||||||
@@ -721,16 +724,16 @@ msgstr ""
|
|||||||
"Il display “%s” al à za un window manager; prove dopre la opzion --replace "
|
"Il display “%s” al à za un window manager; prove dopre la opzion --replace "
|
||||||
"par rimplaçâ chel atuâl."
|
"par rimplaçâ chel atuâl."
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1024
|
#: src/x11/meta-x11-display.c:1032
|
||||||
msgid "Failed to initialize GDK\n"
|
msgid "Failed to initialize GDK\n"
|
||||||
msgstr "No si è rivâts a inizializâ GDK\n"
|
msgstr "No si è rivâts a inizializâ GDK\n"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1048
|
#: src/x11/meta-x11-display.c:1056
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display “%s”\n"
|
msgid "Failed to open X Window System display “%s”\n"
|
||||||
msgstr "Impussibil vierzi il display “%s” di X Window System\n"
|
msgstr "Impussibil vierzi il display “%s” di X Window System\n"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1132
|
#: src/x11/meta-x11-display.c:1140
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display “%s” is invalid\n"
|
msgid "Screen %d on display “%s” is invalid\n"
|
||||||
msgstr "Schermi %d su display “%s” no valit\n"
|
msgstr "Schermi %d su display “%s” no valit\n"
|
||||||
|
50
po/hr.po
50
po/hr.po
@@ -5,9 +5,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: metacity 0\n"
|
"Project-Id-Version: metacity 0\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
||||||
"POT-Creation-Date: 2019-06-20 08:28+0000\n"
|
"POT-Creation-Date: 2019-08-06 00:49+0000\n"
|
||||||
"PO-Revision-Date: 2019-06-22 18:00+0200\n"
|
"PO-Revision-Date: 2019-09-03 18:00+0200\n"
|
||||||
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
|
"Last-Translator: gogo <linux.hr@protonmail.com>\n"
|
||||||
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
|
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
|
||||||
"Language: hr\n"
|
"Language: hr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -392,7 +392,8 @@ msgid ""
|
|||||||
"space, while scaling monitor framebuffers instead of window content, to "
|
"space, while scaling monitor framebuffers instead of window content, to "
|
||||||
"manage HiDPI monitors. Does not require a restart. • “rt-scheduler” — makes "
|
"manage HiDPI monitors. Does not require a restart. • “rt-scheduler” — makes "
|
||||||
"mutter request a low priority real-time scheduling. The executable or user "
|
"mutter request a low priority real-time scheduling. The executable or user "
|
||||||
"must have CAP_SYS_NICE. Requires a restart."
|
"must have CAP_SYS_NICE. Requires a restart. • “autostart-xwayland” — "
|
||||||
|
"initializes Xwayland lazily if there are X11 clients. Requires restart."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Za omogućavanje eksperimentalnih značajki, dodajte ključnu riječ značajke na "
|
"Za omogućavanje eksperimentalnih značajki, dodajte ključnu riječ značajke na "
|
||||||
"popis. Zahtijeva li značajka ponovno pokretanje kompozitora ovisi o zadanoj "
|
"popis. Zahtijeva li značajka ponovno pokretanje kompozitora ovisi o zadanoj "
|
||||||
@@ -405,29 +406,30 @@ msgstr ""
|
|||||||
"zaslonima visoke razlučivosti. Ne zahtijeva ponovno pokretanje. • “rt-"
|
"zaslonima visoke razlučivosti. Ne zahtijeva ponovno pokretanje. • “rt-"
|
||||||
"scheduler” — čini zahtjeve muttera zakazanima u niskom prioritetu i "
|
"scheduler” — čini zahtjeve muttera zakazanima u niskom prioritetu i "
|
||||||
"stvaranom vremenu. Izvršitelj ili korisnik mora imati CAP_SYS_NICE. "
|
"stvaranom vremenu. Izvršitelj ili korisnik mora imati CAP_SYS_NICE. "
|
||||||
"Zahtijeva ponovno pokretanje."
|
"Zahtijeva ponovno pokretanje. • “autostart-xwayland” — pokreće Xwayland "
|
||||||
|
"lijeno ako je dostupan X11 klijent. Zahtijeva ponovno pokretanje."
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:132
|
#: data/org.gnome.mutter.gschema.xml.in:134
|
||||||
msgid "Modifier to use to locate the pointer"
|
msgid "Modifier to use to locate the pointer"
|
||||||
msgstr "Izmjenjivač za korištenje lociranja pokazivača"
|
msgstr "Izmjenjivač za korištenje lociranja pokazivača"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:133
|
#: data/org.gnome.mutter.gschema.xml.in:135
|
||||||
msgid "This key will initiate the “locate pointer” action."
|
msgid "This key will initiate the “locate pointer” action."
|
||||||
msgstr "Ova tipka će pokrenuti “lociraj pokazivač” radnju."
|
msgstr "Ova tipka će pokrenuti “lociraj pokazivač” radnju."
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:153
|
#: data/org.gnome.mutter.gschema.xml.in:155
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "Odaberi prozor iz skočnog prozora"
|
msgstr "Odaberi prozor iz skočnog prozora"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:158
|
#: data/org.gnome.mutter.gschema.xml.in:160
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "Prekini skočni prozor"
|
msgstr "Prekini skočni prozor"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:163
|
#: data/org.gnome.mutter.gschema.xml.in:165
|
||||||
msgid "Switch monitor configurations"
|
msgid "Switch monitor configurations"
|
||||||
msgstr "Prebacivanje podešavanja zaslona"
|
msgstr "Prebacivanje podešavanja zaslona"
|
||||||
|
|
||||||
#: data/org.gnome.mutter.gschema.xml.in:168
|
#: data/org.gnome.mutter.gschema.xml.in:170
|
||||||
msgid "Rotates the built-in monitor configuration"
|
msgid "Rotates the built-in monitor configuration"
|
||||||
msgstr "Rotiraj ugrađeno podešavanje zaslona"
|
msgstr "Rotiraj ugrađeno podešavanje zaslona"
|
||||||
|
|
||||||
@@ -540,7 +542,7 @@ msgstr ""
|
|||||||
#. TRANSLATORS: This string refers to a button that switches between
|
#. TRANSLATORS: This string refers to a button that switches between
|
||||||
#. * different modes.
|
#. * different modes.
|
||||||
#.
|
#.
|
||||||
#: src/backends/meta-input-settings.c:2529
|
#: src/backends/meta-input-settings.c:2531
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Mode Switch (Group %d)"
|
msgid "Mode Switch (Group %d)"
|
||||||
msgstr "Način prebacivanja (Grupa %d)"
|
msgstr "Način prebacivanja (Grupa %d)"
|
||||||
@@ -548,34 +550,34 @@ msgstr "Način prebacivanja (Grupa %d)"
|
|||||||
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
|
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
|
||||||
#. * mapping through the available outputs.
|
#. * mapping through the available outputs.
|
||||||
#.
|
#.
|
||||||
#: src/backends/meta-input-settings.c:2552
|
#: src/backends/meta-input-settings.c:2554
|
||||||
msgid "Switch monitor"
|
msgid "Switch monitor"
|
||||||
msgstr "Prebaci zaslon"
|
msgstr "Prebaci zaslon"
|
||||||
|
|
||||||
#: src/backends/meta-input-settings.c:2554
|
#: src/backends/meta-input-settings.c:2556
|
||||||
msgid "Show on-screen help"
|
msgid "Show on-screen help"
|
||||||
msgstr "Prikaži zaslonsku pomoć"
|
msgstr "Prikaži zaslonsku pomoć"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:976
|
#: src/backends/meta-monitor.c:223
|
||||||
msgid "Built-in display"
|
msgid "Built-in display"
|
||||||
msgstr "Ugrađeni zaslon"
|
msgstr "Ugrađeni zaslon"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:1008
|
#: src/backends/meta-monitor.c:252
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Nepoznat"
|
msgstr "Nepoznat"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:1010
|
#: src/backends/meta-monitor.c:254
|
||||||
msgid "Unknown Display"
|
msgid "Unknown Display"
|
||||||
msgstr "Nepoznat zaslon"
|
msgstr "Nepoznat zaslon"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:1018
|
#: src/backends/meta-monitor.c:262
|
||||||
#, c-format
|
#, c-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'"
|
"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'"
|
||||||
msgid "%s %s"
|
msgid "%s %s"
|
||||||
msgstr "%s %s"
|
msgstr "%s %s"
|
||||||
|
|
||||||
#: src/backends/meta-monitor-manager.c:1026
|
#: src/backends/meta-monitor.c:270
|
||||||
#, c-format
|
#, c-format
|
||||||
msgctxt ""
|
msgctxt ""
|
||||||
"This is a monitor vendor name followed by product/model name where size in "
|
"This is a monitor vendor name followed by product/model name where size in "
|
||||||
@@ -694,7 +696,7 @@ msgstr "Inačica za ispis"
|
|||||||
msgid "Mutter plugin to use"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "Mutter priključak koji se koristi"
|
msgstr "Mutter priključak koji se koristi"
|
||||||
|
|
||||||
#: src/core/prefs.c:1834
|
#: src/core/prefs.c:1849
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Radni prostor %d"
|
msgstr "Radni prostor %d"
|
||||||
@@ -708,7 +710,7 @@ msgstr "Mutter je kompiliran bez podrške za opširan način rada\n"
|
|||||||
msgid "Mode Switch: Mode %d"
|
msgid "Mode Switch: Mode %d"
|
||||||
msgstr "Način prebacivanja: Način %d"
|
msgstr "Način prebacivanja: Način %d"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:681
|
#: src/x11/meta-x11-display.c:671
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Display “%s” already has a window manager; try using the --replace option to "
|
"Display “%s” already has a window manager; try using the --replace option to "
|
||||||
@@ -717,16 +719,16 @@ msgstr ""
|
|||||||
"Prikaz \"%s\" već ima upravitelja prozora; pokušajte koristiti --replace "
|
"Prikaz \"%s\" već ima upravitelja prozora; pokušajte koristiti --replace "
|
||||||
"mogućnost za zamjenu trenutnog upravitelja prozora."
|
"mogućnost za zamjenu trenutnog upravitelja prozora."
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1023
|
#: src/x11/meta-x11-display.c:1032
|
||||||
msgid "Failed to initialize GDK\n"
|
msgid "Failed to initialize GDK\n"
|
||||||
msgstr "Neuspjelo GDK pokretanje\n"
|
msgstr "Neuspjelo GDK pokretanje\n"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1047
|
#: src/x11/meta-x11-display.c:1056
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display “%s”\n"
|
msgid "Failed to open X Window System display “%s”\n"
|
||||||
msgstr "Neuspjelo otvaranje sustava prikaza X prozora \"%s\"\n"
|
msgstr "Neuspjelo otvaranje sustava prikaza X prozora \"%s\"\n"
|
||||||
|
|
||||||
#: src/x11/meta-x11-display.c:1131
|
#: src/x11/meta-x11-display.c:1140
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display “%s” is invalid\n"
|
msgid "Screen %d on display “%s” is invalid\n"
|
||||||
msgstr "Zaslon %d na prikazu '%s' je neispravan\n"
|
msgstr "Zaslon %d na prikazu '%s' je neispravan\n"
|
||||||
|
@@ -388,4 +388,10 @@ gboolean meta_monitor_has_aspect_as_size (MetaMonitor *monitor);
|
|||||||
char * meta_monitor_manager_get_vendor_name (MetaMonitorManager *manager,
|
char * meta_monitor_manager_get_vendor_name (MetaMonitorManager *manager,
|
||||||
const char *vendor);
|
const char *vendor);
|
||||||
|
|
||||||
|
gboolean meta_monitor_manager_get_has_changed (MetaMonitorManager *manager,
|
||||||
|
MetaCrtcInfo **crtc_infos,
|
||||||
|
unsigned int n_crtc_infos,
|
||||||
|
MetaOutputInfo **output_infos,
|
||||||
|
unsigned int n_output_infos);
|
||||||
|
|
||||||
#endif /* META_MONITOR_MANAGER_PRIVATE_H */
|
#endif /* META_MONITOR_MANAGER_PRIVATE_H */
|
||||||
|
@@ -483,6 +483,158 @@ meta_monitor_manager_ensure_initial_config (MetaMonitorManager *manager)
|
|||||||
META_MONITOR_MANAGER_GET_CLASS (manager)->ensure_initial_config (manager);
|
META_MONITOR_MANAGER_GET_CLASS (manager)->ensure_initial_config (manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
is_crtc_assignment_changed (MetaCrtc *crtc,
|
||||||
|
MetaCrtcInfo **crtc_infos,
|
||||||
|
unsigned int n_crtc_infos)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
for (i = 0; i < n_crtc_infos; i++)
|
||||||
|
{
|
||||||
|
MetaCrtcInfo *crtc_info = crtc_infos[i];
|
||||||
|
unsigned int j;
|
||||||
|
|
||||||
|
if (crtc_info->crtc != crtc)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (crtc->current_mode != crtc_info->mode)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (crtc->rect.x != crtc_info->x)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (crtc->rect.y != crtc_info->y)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (crtc->transform != crtc_info->transform)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
for (j = 0; j < crtc_info->outputs->len; j++)
|
||||||
|
{
|
||||||
|
MetaOutput *output = ((MetaOutput**) crtc_info->outputs->pdata)[j];
|
||||||
|
MetaCrtc *assigned_crtc;
|
||||||
|
|
||||||
|
assigned_crtc = meta_output_get_assigned_crtc (output);
|
||||||
|
if (assigned_crtc != crtc)
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return crtc->current_mode != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
is_output_assignment_changed (MetaOutput *output,
|
||||||
|
MetaCrtcInfo **crtc_infos,
|
||||||
|
unsigned int n_crtc_infos,
|
||||||
|
MetaOutputInfo **output_infos,
|
||||||
|
unsigned int n_output_infos)
|
||||||
|
{
|
||||||
|
MetaCrtc *assigned_crtc;
|
||||||
|
gboolean output_is_found = FALSE;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
for (i = 0; i < n_output_infos; i++)
|
||||||
|
{
|
||||||
|
MetaOutputInfo *output_info = output_infos[i];
|
||||||
|
|
||||||
|
if (output_info->output != output)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (output->is_primary != output_info->is_primary)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (output->is_presentation != output_info->is_presentation)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (output->is_underscanning != output_info->is_underscanning)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
output_is_found = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
assigned_crtc = meta_output_get_assigned_crtc (output);
|
||||||
|
|
||||||
|
if (!output_is_found)
|
||||||
|
return assigned_crtc != NULL;
|
||||||
|
|
||||||
|
for (i = 0; i < n_crtc_infos; i++)
|
||||||
|
{
|
||||||
|
MetaCrtcInfo *crtc_info = crtc_infos[i];
|
||||||
|
unsigned int j;
|
||||||
|
|
||||||
|
for (j = 0; j < crtc_info->outputs->len; j++)
|
||||||
|
{
|
||||||
|
MetaOutput *crtc_info_output =
|
||||||
|
((MetaOutput**) crtc_info->outputs->pdata)[j];
|
||||||
|
|
||||||
|
if (crtc_info_output == output &&
|
||||||
|
crtc_info->crtc == assigned_crtc)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
is_assignments_changed (MetaMonitorManager *manager,
|
||||||
|
MetaGpu *gpu,
|
||||||
|
MetaCrtcInfo **crtc_infos,
|
||||||
|
unsigned int n_crtc_infos,
|
||||||
|
MetaOutputInfo **output_infos,
|
||||||
|
unsigned int n_output_infos)
|
||||||
|
{
|
||||||
|
GList *l;
|
||||||
|
|
||||||
|
for (l = meta_gpu_get_crtcs (gpu); l; l = l->next)
|
||||||
|
{
|
||||||
|
MetaCrtc *crtc = l->data;
|
||||||
|
|
||||||
|
if (is_crtc_assignment_changed (crtc, crtc_infos, n_crtc_infos))
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (l = meta_gpu_get_outputs (gpu); l; l = l->next)
|
||||||
|
{
|
||||||
|
MetaOutput *output = l->data;
|
||||||
|
|
||||||
|
if (is_output_assignment_changed (output,
|
||||||
|
crtc_infos,
|
||||||
|
n_crtc_infos,
|
||||||
|
output_infos,
|
||||||
|
n_output_infos))
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
meta_monitor_manager_get_has_changed (MetaMonitorManager *manager,
|
||||||
|
MetaCrtcInfo **crtc_infos,
|
||||||
|
unsigned int n_crtc_infos,
|
||||||
|
MetaOutputInfo **output_infos,
|
||||||
|
unsigned int n_output_infos)
|
||||||
|
{
|
||||||
|
GList *gpus;
|
||||||
|
GList *l;
|
||||||
|
|
||||||
|
gpus = meta_backend_get_gpus (manager->backend);
|
||||||
|
for (l = gpus; l; l = l->next)
|
||||||
|
{
|
||||||
|
if (is_assignments_changed (manager, l->data,
|
||||||
|
crtc_infos, n_crtc_infos,
|
||||||
|
output_infos, n_output_infos))
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
meta_monitor_manager_apply_monitors_config (MetaMonitorManager *manager,
|
meta_monitor_manager_apply_monitors_config (MetaMonitorManager *manager,
|
||||||
MetaMonitorsConfig *config,
|
MetaMonitorsConfig *config,
|
||||||
|
@@ -821,6 +821,7 @@ void meta_backend_native_resume (MetaBackendNative *native)
|
|||||||
META_MONITOR_MANAGER_KMS (monitor_manager);
|
META_MONITOR_MANAGER_KMS (monitor_manager);
|
||||||
MetaInputSettings *input_settings;
|
MetaInputSettings *input_settings;
|
||||||
MetaIdleMonitor *idle_monitor;
|
MetaIdleMonitor *idle_monitor;
|
||||||
|
ClutterDeviceManager *device_manager;
|
||||||
|
|
||||||
COGL_TRACE_BEGIN_SCOPED (MetaBackendNativeResume,
|
COGL_TRACE_BEGIN_SCOPED (MetaBackendNativeResume,
|
||||||
"Backend (resume)");
|
"Backend (resume)");
|
||||||
@@ -839,4 +840,7 @@ void meta_backend_native_resume (MetaBackendNative *native)
|
|||||||
|
|
||||||
input_settings = meta_backend_get_input_settings (backend);
|
input_settings = meta_backend_get_input_settings (backend);
|
||||||
meta_input_settings_maybe_restore_numlock_state (input_settings);
|
meta_input_settings_maybe_restore_numlock_state (input_settings);
|
||||||
|
|
||||||
|
device_manager = clutter_device_manager_get_default ();
|
||||||
|
clutter_device_manager_ensure_a11y_state (device_manager);
|
||||||
}
|
}
|
||||||
|
@@ -29,7 +29,4 @@ MetaKmsConnector * meta_kms_connector_new (MetaKmsImplDevice *impl_device,
|
|||||||
drmModeConnector *drm_connector,
|
drmModeConnector *drm_connector,
|
||||||
drmModeRes *drm_resources);
|
drmModeRes *drm_resources);
|
||||||
|
|
||||||
gboolean meta_kms_connector_is_same_as (MetaKmsConnector *connector,
|
|
||||||
drmModeConnector *drm_connector);
|
|
||||||
|
|
||||||
#endif /* META_KMS_CONNECTOR_PRIVATE_H */
|
#endif /* META_KMS_CONNECTOR_PRIVATE_H */
|
||||||
|
@@ -36,7 +36,6 @@ struct _MetaKmsConnector
|
|||||||
|
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
MetaConnectorType type;
|
MetaConnectorType type;
|
||||||
uint32_t type_id;
|
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
MetaKmsConnectorState *current_state;
|
MetaKmsConnectorState *current_state;
|
||||||
@@ -563,15 +562,6 @@ make_connector_name (drmModeConnector *drm_connector)
|
|||||||
drm_connector->connector_type_id);
|
drm_connector->connector_type_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
|
||||||
meta_kms_connector_is_same_as (MetaKmsConnector *connector,
|
|
||||||
drmModeConnector *drm_connector)
|
|
||||||
{
|
|
||||||
return (connector->id == drm_connector->connector_id &&
|
|
||||||
connector->type == drm_connector->connector_type &&
|
|
||||||
connector->type_id == drm_connector->connector_type_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
MetaKmsConnector *
|
MetaKmsConnector *
|
||||||
meta_kms_connector_new (MetaKmsImplDevice *impl_device,
|
meta_kms_connector_new (MetaKmsImplDevice *impl_device,
|
||||||
drmModeConnector *drm_connector,
|
drmModeConnector *drm_connector,
|
||||||
@@ -583,7 +573,6 @@ meta_kms_connector_new (MetaKmsImplDevice *impl_device,
|
|||||||
connector->device = meta_kms_impl_device_get_device (impl_device);
|
connector->device = meta_kms_impl_device_get_device (impl_device);
|
||||||
connector->id = drm_connector->connector_id;
|
connector->id = drm_connector->connector_id;
|
||||||
connector->type = (MetaConnectorType) drm_connector->connector_type;
|
connector->type = (MetaConnectorType) drm_connector->connector_type;
|
||||||
connector->type_id = drm_connector->connector_type_id;
|
|
||||||
connector->name = make_connector_name (drm_connector);
|
connector->name = make_connector_name (drm_connector);
|
||||||
|
|
||||||
find_property_ids (connector, impl_device, drm_connector);
|
find_property_ids (connector, impl_device, drm_connector);
|
||||||
|
@@ -24,7 +24,4 @@
|
|||||||
|
|
||||||
MetaKmsImplDevice * meta_kms_device_get_impl_device (MetaKmsDevice *device);
|
MetaKmsImplDevice * meta_kms_device_get_impl_device (MetaKmsDevice *device);
|
||||||
|
|
||||||
void meta_kms_device_update_states_in_impl (MetaKmsDevice *device,
|
|
||||||
MetaKmsUpdateStatesFlags flags);
|
|
||||||
|
|
||||||
#endif /* META_KMS_DEVICE_PRIVATE_H */
|
#endif /* META_KMS_DEVICE_PRIVATE_H */
|
||||||
|
@@ -108,31 +108,6 @@ meta_kms_device_get_primary_plane_for (MetaKmsDevice *device,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
meta_kms_device_update_states_in_impl (MetaKmsDevice *device,
|
|
||||||
MetaKmsUpdateStatesFlags flags)
|
|
||||||
{
|
|
||||||
MetaKmsImplDevice *impl_device = meta_kms_device_get_impl_device (device);
|
|
||||||
|
|
||||||
meta_assert_in_kms_impl (device->kms);
|
|
||||||
|
|
||||||
meta_kms_impl_device_update_states (impl_device, flags);
|
|
||||||
|
|
||||||
if (flags & META_KMS_UPDATE_STATES_FLAG_HOTPLUG)
|
|
||||||
{
|
|
||||||
meta_assert_is_waiting_for_kms_impl_task (device->kms);
|
|
||||||
|
|
||||||
g_list_free (device->crtcs);
|
|
||||||
device->crtcs = meta_kms_impl_device_copy_crtcs (impl_device);
|
|
||||||
|
|
||||||
g_list_free (device->connectors);
|
|
||||||
device->connectors = meta_kms_impl_device_copy_connectors (impl_device);
|
|
||||||
|
|
||||||
g_list_free (device->planes);
|
|
||||||
device->planes = meta_kms_impl_device_copy_planes (impl_device);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
dispatch_in_impl (MetaKmsImpl *impl,
|
dispatch_in_impl (MetaKmsImpl *impl,
|
||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
|
@@ -196,28 +196,10 @@ init_crtcs (MetaKmsImplDevice *impl_device,
|
|||||||
impl_device->crtcs = g_list_reverse (impl_device->crtcs);
|
impl_device->crtcs = g_list_reverse (impl_device->crtcs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaKmsConnector *
|
|
||||||
find_existing_connector (MetaKmsImplDevice *impl_device,
|
|
||||||
drmModeConnector *drm_connector)
|
|
||||||
{
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
for (l = impl_device->connectors; l; l = l->next)
|
|
||||||
{
|
|
||||||
MetaKmsConnector *connector = l->data;
|
|
||||||
|
|
||||||
if (meta_kms_connector_is_same_as (connector, drm_connector))
|
|
||||||
return connector;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
update_connectors (MetaKmsImplDevice *impl_device,
|
init_connectors (MetaKmsImplDevice *impl_device,
|
||||||
drmModeRes *drm_resources)
|
drmModeRes *drm_resources)
|
||||||
{
|
{
|
||||||
GList *connectors = NULL;
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0; i < drm_resources->count_connectors; i++)
|
for (i = 0; i < drm_resources->count_connectors; i++)
|
||||||
@@ -230,19 +212,14 @@ update_connectors (MetaKmsImplDevice *impl_device,
|
|||||||
if (!drm_connector)
|
if (!drm_connector)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
connector = find_existing_connector (impl_device, drm_connector);
|
|
||||||
if (connector)
|
|
||||||
connector = g_object_ref (connector);
|
|
||||||
else
|
|
||||||
connector = meta_kms_connector_new (impl_device, drm_connector,
|
connector = meta_kms_connector_new (impl_device, drm_connector,
|
||||||
drm_resources);
|
drm_resources);
|
||||||
drmModeFreeConnector (drm_connector);
|
drmModeFreeConnector (drm_connector);
|
||||||
|
|
||||||
connectors = g_list_prepend (connectors, connector);
|
impl_device->connectors = g_list_prepend (impl_device->connectors,
|
||||||
|
connector);
|
||||||
}
|
}
|
||||||
|
impl_device->connectors = g_list_reverse (impl_device->connectors);
|
||||||
g_list_free_full (impl_device->connectors, g_object_unref);
|
|
||||||
impl_device->connectors = g_list_reverse (connectors);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaKmsPlaneType
|
static MetaKmsPlaneType
|
||||||
@@ -318,18 +295,13 @@ init_planes (MetaKmsImplDevice *impl_device)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device,
|
meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device)
|
||||||
MetaKmsUpdateStatesFlags flags)
|
|
||||||
{
|
{
|
||||||
drmModeRes *drm_resources;
|
drmModeRes *drm_resources;
|
||||||
|
|
||||||
meta_assert_in_kms_impl (meta_kms_impl_get_kms (impl_device->impl));
|
meta_assert_in_kms_impl (meta_kms_impl_get_kms (impl_device->impl));
|
||||||
|
|
||||||
drm_resources = drmModeGetResources (impl_device->fd);
|
drm_resources = drmModeGetResources (impl_device->fd);
|
||||||
|
|
||||||
if (flags & META_KMS_UPDATE_STATES_FLAG_HOTPLUG)
|
|
||||||
update_connectors (impl_device, drm_resources);
|
|
||||||
|
|
||||||
g_list_foreach (impl_device->crtcs, (GFunc) meta_kms_crtc_update_state,
|
g_list_foreach (impl_device->crtcs, (GFunc) meta_kms_crtc_update_state,
|
||||||
NULL);
|
NULL);
|
||||||
g_list_foreach (impl_device->connectors, (GFunc) meta_kms_connector_update_state,
|
g_list_foreach (impl_device->connectors, (GFunc) meta_kms_connector_update_state,
|
||||||
@@ -374,10 +346,9 @@ meta_kms_impl_device_new (MetaKmsDevice *device,
|
|||||||
impl_device->fd = fd;
|
impl_device->fd = fd;
|
||||||
|
|
||||||
init_crtcs (impl_device, drm_resources);
|
init_crtcs (impl_device, drm_resources);
|
||||||
|
init_connectors (impl_device, drm_resources);
|
||||||
init_planes (impl_device);
|
init_planes (impl_device);
|
||||||
|
|
||||||
update_connectors (impl_device, drm_resources);
|
|
||||||
|
|
||||||
drmModeFreeResources (drm_resources);
|
drmModeFreeResources (drm_resources);
|
||||||
|
|
||||||
impl_device->fd_source =
|
impl_device->fd_source =
|
||||||
|
@@ -53,8 +53,7 @@ int meta_kms_impl_device_get_fd (MetaKmsImplDevice *impl_device);
|
|||||||
|
|
||||||
int meta_kms_impl_device_leak_fd (MetaKmsImplDevice *impl_device);
|
int meta_kms_impl_device_leak_fd (MetaKmsImplDevice *impl_device);
|
||||||
|
|
||||||
void meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device,
|
void meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device);
|
||||||
MetaKmsUpdateStatesFlags flags);
|
|
||||||
|
|
||||||
int meta_kms_impl_device_close (MetaKmsImplDevice *impl_device);
|
int meta_kms_impl_device_close (MetaKmsImplDevice *impl_device);
|
||||||
|
|
||||||
|
@@ -55,13 +55,9 @@ GSource * meta_kms_register_fd_in_impl (MetaKms *kms,
|
|||||||
|
|
||||||
gboolean meta_kms_in_impl_task (MetaKms *kms);
|
gboolean meta_kms_in_impl_task (MetaKms *kms);
|
||||||
|
|
||||||
gboolean meta_kms_is_waiting_for_impl_task (MetaKms *kms);
|
|
||||||
|
|
||||||
#define meta_assert_in_kms_impl(kms) \
|
#define meta_assert_in_kms_impl(kms) \
|
||||||
g_assert (meta_kms_in_impl_task (kms))
|
g_assert (meta_kms_in_impl_task (kms))
|
||||||
#define meta_assert_not_in_kms_impl(kms) \
|
#define meta_assert_not_in_kms_impl(kms) \
|
||||||
g_assert (!meta_kms_in_impl_task (kms))
|
g_assert (!meta_kms_in_impl_task (kms))
|
||||||
#define meta_assert_is_waiting_for_kms_impl_task(kms) \
|
|
||||||
g_assert (meta_kms_is_waiting_for_impl_task (kms))
|
|
||||||
|
|
||||||
#endif /* META_KMS_PRIVATE_H */
|
#endif /* META_KMS_PRIVATE_H */
|
||||||
|
@@ -56,10 +56,4 @@ typedef enum _MetaKmsDeviceFlag
|
|||||||
META_KMS_DEVICE_FLAG_PLATFORM_DEVICE = 1 << 1,
|
META_KMS_DEVICE_FLAG_PLATFORM_DEVICE = 1 << 1,
|
||||||
} MetaKmsDeviceFlag;
|
} MetaKmsDeviceFlag;
|
||||||
|
|
||||||
typedef enum _MetaKmsUpdateStatesFlags
|
|
||||||
{
|
|
||||||
META_KMS_UPDATE_STATES_FLAG_NONE = 0,
|
|
||||||
META_KMS_UPDATE_STATES_FLAG_HOTPLUG = 1 << 0,
|
|
||||||
} MetaKmsUpdateStatesFlags;
|
|
||||||
|
|
||||||
#endif /* META_KMS_IMPL_TYPES_H */
|
#endif /* META_KMS_IMPL_TYPES_H */
|
||||||
|
@@ -119,15 +119,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
RESOURCES_CHANGED,
|
|
||||||
|
|
||||||
N_SIGNALS
|
|
||||||
};
|
|
||||||
|
|
||||||
static int signals[N_SIGNALS];
|
|
||||||
|
|
||||||
typedef struct _MetaKmsCallbackData
|
typedef struct _MetaKmsCallbackData
|
||||||
{
|
{
|
||||||
MetaKmsCallback callback;
|
MetaKmsCallback callback;
|
||||||
@@ -163,7 +154,6 @@ struct _MetaKms
|
|||||||
|
|
||||||
MetaKmsImpl *impl;
|
MetaKmsImpl *impl;
|
||||||
gboolean in_impl_task;
|
gboolean in_impl_task;
|
||||||
gboolean waiting_for_impl_task;
|
|
||||||
|
|
||||||
GList *devices;
|
GList *devices;
|
||||||
|
|
||||||
@@ -176,8 +166,7 @@ struct _MetaKms
|
|||||||
G_DEFINE_TYPE (MetaKms, meta_kms, G_TYPE_OBJECT)
|
G_DEFINE_TYPE (MetaKms, meta_kms, G_TYPE_OBJECT)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_kms_update_states_in_impl (MetaKms *kms,
|
meta_kms_update_states_in_impl (MetaKms *kms);
|
||||||
MetaKmsUpdateStatesFlags flags);
|
|
||||||
|
|
||||||
MetaKmsUpdate *
|
MetaKmsUpdate *
|
||||||
meta_kms_ensure_pending_update (MetaKms *kms)
|
meta_kms_ensure_pending_update (MetaKms *kms)
|
||||||
@@ -205,8 +194,7 @@ meta_kms_update_process_in_impl (MetaKmsImpl *impl,
|
|||||||
ret = meta_kms_impl_process_update (impl, update, error);
|
ret = meta_kms_impl_process_update (impl, update, error);
|
||||||
|
|
||||||
if (meta_kms_update_has_mode_set (update))
|
if (meta_kms_update_has_mode_set (update))
|
||||||
meta_kms_update_states_in_impl (meta_kms_impl_get_kms (impl),
|
meta_kms_update_states_in_impl (meta_kms_impl_get_kms (impl));
|
||||||
META_KMS_UPDATE_STATES_FLAG_NONE);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -334,9 +322,7 @@ meta_kms_run_impl_task_sync (MetaKms *kms,
|
|||||||
gboolean ret;
|
gboolean ret;
|
||||||
|
|
||||||
kms->in_impl_task = TRUE;
|
kms->in_impl_task = TRUE;
|
||||||
kms->waiting_for_impl_task = TRUE;
|
|
||||||
ret = func (kms->impl, user_data, error);
|
ret = func (kms->impl, user_data, error);
|
||||||
kms->waiting_for_impl_task = FALSE;
|
|
||||||
kms->in_impl_task = FALSE;
|
kms->in_impl_task = FALSE;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@@ -454,15 +440,8 @@ meta_kms_in_impl_task (MetaKms *kms)
|
|||||||
return kms->in_impl_task;
|
return kms->in_impl_task;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
|
||||||
meta_kms_is_waiting_for_impl_task (MetaKms *kms)
|
|
||||||
{
|
|
||||||
return kms->waiting_for_impl_task;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_kms_update_states_in_impl (MetaKms *kms,
|
meta_kms_update_states_in_impl (MetaKms *kms)
|
||||||
MetaKmsUpdateStatesFlags flags)
|
|
||||||
{
|
{
|
||||||
GList *l;
|
GList *l;
|
||||||
|
|
||||||
@@ -474,8 +453,9 @@ meta_kms_update_states_in_impl (MetaKms *kms,
|
|||||||
for (l = kms->devices; l; l = l->next)
|
for (l = kms->devices; l; l = l->next)
|
||||||
{
|
{
|
||||||
MetaKmsDevice *device = l->data;
|
MetaKmsDevice *device = l->data;
|
||||||
|
MetaKmsImplDevice *impl_device = meta_kms_device_get_impl_device (device);
|
||||||
|
|
||||||
meta_kms_device_update_states_in_impl (device, flags);
|
meta_kms_impl_device_update_states (impl_device);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -484,22 +464,20 @@ update_states_in_impl (MetaKmsImpl *impl,
|
|||||||
gpointer user_data,
|
gpointer user_data,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
MetaKms *kms = meta_kms_impl_get_kms (impl);;
|
MetaKms *kms = user_data;
|
||||||
MetaKmsUpdateStatesFlags flags = GPOINTER_TO_UINT (user_data);
|
|
||||||
|
|
||||||
meta_kms_update_states_in_impl (kms, flags);
|
meta_kms_update_states_in_impl (kms);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
meta_kms_update_states_sync (MetaKms *kms,
|
meta_kms_update_states_sync (MetaKms *kms,
|
||||||
MetaKmsUpdateStatesFlags flags,
|
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
return meta_kms_run_impl_task_sync (kms,
|
return meta_kms_run_impl_task_sync (kms,
|
||||||
update_states_in_impl,
|
update_states_in_impl,
|
||||||
GUINT_TO_POINTER (flags),
|
kms,
|
||||||
error);
|
error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -508,12 +486,8 @@ handle_hotplug_event (MetaKms *kms)
|
|||||||
{
|
{
|
||||||
g_autoptr (GError) error = NULL;
|
g_autoptr (GError) error = NULL;
|
||||||
|
|
||||||
if (!meta_kms_update_states_sync (kms,
|
if (!meta_kms_update_states_sync (kms, &error))
|
||||||
META_KMS_UPDATE_STATES_FLAG_HOTPLUG,
|
|
||||||
&error))
|
|
||||||
g_warning ("Updating KMS state failed: %s", error->message);
|
g_warning ("Updating KMS state failed: %s", error->message);
|
||||||
|
|
||||||
g_signal_emit (kms, signals[RESOURCES_CHANGED], 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -616,12 +590,4 @@ meta_kms_class_init (MetaKmsClass *klass)
|
|||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
|
|
||||||
object_class->finalize = meta_kms_finalize;
|
object_class->finalize = meta_kms_finalize;
|
||||||
|
|
||||||
signals[RESOURCES_CHANGED] =
|
|
||||||
g_signal_new ("resources-changed",
|
|
||||||
G_TYPE_FROM_CLASS (klass),
|
|
||||||
G_SIGNAL_RUN_LAST,
|
|
||||||
0,
|
|
||||||
NULL, NULL, NULL,
|
|
||||||
G_TYPE_NONE, 0);
|
|
||||||
}
|
}
|
||||||
|
@@ -75,7 +75,10 @@ struct _MetaMonitorManagerKms
|
|||||||
{
|
{
|
||||||
MetaMonitorManager parent_instance;
|
MetaMonitorManager parent_instance;
|
||||||
|
|
||||||
gulong kms_resources_changed_handler_id;
|
guint hotplug_handler_id;
|
||||||
|
guint removed_handler_id;
|
||||||
|
|
||||||
|
guint logical_monitors_invalid : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MetaMonitorManagerKmsClass
|
struct _MetaMonitorManagerKmsClass
|
||||||
@@ -321,6 +324,7 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager *manager
|
|||||||
MetaMonitorsConfigMethod method,
|
MetaMonitorsConfigMethod method,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
|
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
||||||
GPtrArray *crtc_infos;
|
GPtrArray *crtc_infos;
|
||||||
GPtrArray *output_infos;
|
GPtrArray *output_infos;
|
||||||
|
|
||||||
@@ -344,6 +348,26 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager *manager
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!meta_monitor_manager_get_has_changed (manager,
|
||||||
|
(MetaCrtcInfo **) crtc_infos->pdata,
|
||||||
|
crtc_infos->len,
|
||||||
|
(MetaOutputInfo **) output_infos->pdata,
|
||||||
|
output_infos->len))
|
||||||
|
{
|
||||||
|
/* Rebuild logical monitors if invalid, i.e. after
|
||||||
|
* meta_monitor_manager_read_current_state().
|
||||||
|
*/
|
||||||
|
if (manager_kms->logical_monitors_invalid)
|
||||||
|
{
|
||||||
|
meta_monitor_manager_rebuild (manager, config);
|
||||||
|
manager_kms->logical_monitors_invalid = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_ptr_array_free (crtc_infos, TRUE);
|
||||||
|
g_ptr_array_free (output_infos, TRUE);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
apply_crtc_assignments (manager,
|
apply_crtc_assignments (manager,
|
||||||
(MetaCrtcInfo **) crtc_infos->pdata,
|
(MetaCrtcInfo **) crtc_infos->pdata,
|
||||||
crtc_infos->len,
|
crtc_infos->len,
|
||||||
@@ -355,6 +379,7 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager *manager
|
|||||||
|
|
||||||
update_screen_size (manager, config);
|
update_screen_size (manager, config);
|
||||||
meta_monitor_manager_rebuild (manager, config);
|
meta_monitor_manager_rebuild (manager, config);
|
||||||
|
manager_kms->logical_monitors_invalid = FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -473,12 +498,27 @@ meta_monitor_manager_kms_set_crtc_gamma (MetaMonitorManager *manager,
|
|||||||
static void
|
static void
|
||||||
handle_hotplug_event (MetaMonitorManager *manager)
|
handle_hotplug_event (MetaMonitorManager *manager)
|
||||||
{
|
{
|
||||||
|
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
||||||
|
|
||||||
|
/* read_current_state() will rebuild monitors, leaving MetaLogicalMonitors
|
||||||
|
* with stale pointers to those. We will need to rebuild those even though
|
||||||
|
* the configuration might not have actually changed (eg. tty switch).
|
||||||
|
*/
|
||||||
|
manager_kms->logical_monitors_invalid = TRUE;
|
||||||
meta_monitor_manager_read_current_state (manager);
|
meta_monitor_manager_read_current_state (manager);
|
||||||
meta_monitor_manager_on_hotplug (manager);
|
meta_monitor_manager_on_hotplug (manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_kms_resources_changed (MetaKms *kms,
|
on_udev_hotplug (MetaUdev *udev,
|
||||||
|
MetaMonitorManager *manager)
|
||||||
|
{
|
||||||
|
handle_hotplug_event (manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_udev_device_removed (MetaUdev *udev,
|
||||||
|
GUdevDevice *device,
|
||||||
MetaMonitorManager *manager)
|
MetaMonitorManager *manager)
|
||||||
{
|
{
|
||||||
handle_hotplug_event (manager);
|
handle_hotplug_event (manager);
|
||||||
@@ -489,12 +529,14 @@ meta_monitor_manager_kms_connect_hotplug_handler (MetaMonitorManagerKms *manager
|
|||||||
{
|
{
|
||||||
MetaMonitorManager *manager = META_MONITOR_MANAGER (manager_kms);
|
MetaMonitorManager *manager = META_MONITOR_MANAGER (manager_kms);
|
||||||
MetaBackend *backend = meta_monitor_manager_get_backend (manager);
|
MetaBackend *backend = meta_monitor_manager_get_backend (manager);
|
||||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
MetaUdev *udev = meta_backend_native_get_udev (META_BACKEND_NATIVE (backend));
|
||||||
MetaKms *kms = meta_backend_native_get_kms (backend_native);
|
|
||||||
|
|
||||||
manager_kms->kms_resources_changed_handler_id =
|
manager_kms->hotplug_handler_id =
|
||||||
g_signal_connect (kms, "resources-changed",
|
g_signal_connect_after (udev, "hotplug",
|
||||||
G_CALLBACK (on_kms_resources_changed), manager);
|
G_CALLBACK (on_udev_hotplug), manager);
|
||||||
|
manager_kms->removed_handler_id =
|
||||||
|
g_signal_connect_after (udev, "device-removed",
|
||||||
|
G_CALLBACK (on_udev_device_removed), manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -502,10 +544,12 @@ meta_monitor_manager_kms_disconnect_hotplug_handler (MetaMonitorManagerKms *mana
|
|||||||
{
|
{
|
||||||
MetaMonitorManager *manager = META_MONITOR_MANAGER (manager_kms);
|
MetaMonitorManager *manager = META_MONITOR_MANAGER (manager_kms);
|
||||||
MetaBackend *backend = meta_monitor_manager_get_backend (manager);
|
MetaBackend *backend = meta_monitor_manager_get_backend (manager);
|
||||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
MetaUdev *udev = meta_backend_native_get_udev (META_BACKEND_NATIVE (backend));
|
||||||
MetaKms *kms = meta_backend_native_get_kms (backend_native);
|
|
||||||
|
|
||||||
g_clear_signal_handler (&manager_kms->kms_resources_changed_handler_id, kms);
|
g_signal_handler_disconnect (udev, manager_kms->hotplug_handler_id);
|
||||||
|
manager_kms->hotplug_handler_id = 0;
|
||||||
|
g_signal_handler_disconnect (udev, manager_kms->removed_handler_id);
|
||||||
|
manager_kms->removed_handler_id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@@ -240,103 +240,6 @@ xrandr_set_crtc_config (MetaMonitorManagerXrandr *manager_xrandr,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
is_crtc_assignment_changed (MetaCrtc *crtc,
|
|
||||||
MetaCrtcInfo **crtc_infos,
|
|
||||||
unsigned int n_crtc_infos)
|
|
||||||
{
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
for (i = 0; i < n_crtc_infos; i++)
|
|
||||||
{
|
|
||||||
MetaCrtcInfo *crtc_info = crtc_infos[i];
|
|
||||||
unsigned int j;
|
|
||||||
|
|
||||||
if (crtc_info->crtc != crtc)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (crtc->current_mode != crtc_info->mode)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
if (crtc->rect.x != crtc_info->x)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
if (crtc->rect.y != crtc_info->y)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
if (crtc->transform != crtc_info->transform)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
for (j = 0; j < crtc_info->outputs->len; j++)
|
|
||||||
{
|
|
||||||
MetaOutput *output = ((MetaOutput**) crtc_info->outputs->pdata)[j];
|
|
||||||
MetaCrtc *assigned_crtc;
|
|
||||||
|
|
||||||
assigned_crtc = meta_output_get_assigned_crtc (output);
|
|
||||||
if (assigned_crtc != crtc)
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return crtc->current_mode != NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
is_output_assignment_changed (MetaOutput *output,
|
|
||||||
MetaCrtcInfo **crtc_infos,
|
|
||||||
unsigned int n_crtc_infos,
|
|
||||||
MetaOutputInfo **output_infos,
|
|
||||||
unsigned int n_output_infos)
|
|
||||||
{
|
|
||||||
MetaCrtc *assigned_crtc;
|
|
||||||
gboolean output_is_found = FALSE;
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
for (i = 0; i < n_output_infos; i++)
|
|
||||||
{
|
|
||||||
MetaOutputInfo *output_info = output_infos[i];
|
|
||||||
|
|
||||||
if (output_info->output != output)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (output->is_primary != output_info->is_primary)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
if (output->is_presentation != output_info->is_presentation)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
if (output->is_underscanning != output_info->is_underscanning)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
output_is_found = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
assigned_crtc = meta_output_get_assigned_crtc (output);
|
|
||||||
|
|
||||||
if (!output_is_found)
|
|
||||||
return assigned_crtc != NULL;
|
|
||||||
|
|
||||||
for (i = 0; i < n_crtc_infos; i++)
|
|
||||||
{
|
|
||||||
MetaCrtcInfo *crtc_info = crtc_infos[i];
|
|
||||||
unsigned int j;
|
|
||||||
|
|
||||||
for (j = 0; j < crtc_info->outputs->len; j++)
|
|
||||||
{
|
|
||||||
MetaOutput *crtc_info_output =
|
|
||||||
((MetaOutput**) crtc_info->outputs->pdata)[j];
|
|
||||||
|
|
||||||
if (crtc_info_output == output &&
|
|
||||||
crtc_info->crtc == assigned_crtc)
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaGpu *
|
static MetaGpu *
|
||||||
meta_monitor_manager_xrandr_get_gpu (MetaMonitorManagerXrandr *manager_xrandr)
|
meta_monitor_manager_xrandr_get_gpu (MetaMonitorManagerXrandr *manager_xrandr)
|
||||||
{
|
{
|
||||||
@@ -346,41 +249,6 @@ meta_monitor_manager_xrandr_get_gpu (MetaMonitorManagerXrandr *manager_xrandr)
|
|||||||
return META_GPU (meta_backend_get_gpus (backend)->data);
|
return META_GPU (meta_backend_get_gpus (backend)->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
is_assignments_changed (MetaMonitorManager *manager,
|
|
||||||
MetaCrtcInfo **crtc_infos,
|
|
||||||
unsigned int n_crtc_infos,
|
|
||||||
MetaOutputInfo **output_infos,
|
|
||||||
unsigned int n_output_infos)
|
|
||||||
{
|
|
||||||
MetaMonitorManagerXrandr *manager_xrandr =
|
|
||||||
META_MONITOR_MANAGER_XRANDR (manager);
|
|
||||||
MetaGpu *gpu = meta_monitor_manager_xrandr_get_gpu (manager_xrandr);
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
for (l = meta_gpu_get_crtcs (gpu); l; l = l->next)
|
|
||||||
{
|
|
||||||
MetaCrtc *crtc = l->data;
|
|
||||||
|
|
||||||
if (is_crtc_assignment_changed (crtc, crtc_infos, n_crtc_infos))
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (l = meta_gpu_get_outputs (gpu); l; l = l->next)
|
|
||||||
{
|
|
||||||
MetaOutput *output = l->data;
|
|
||||||
|
|
||||||
if (is_output_assignment_changed (output,
|
|
||||||
crtc_infos,
|
|
||||||
n_crtc_infos,
|
|
||||||
output_infos,
|
|
||||||
n_output_infos))
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
apply_crtc_assignments (MetaMonitorManager *manager,
|
apply_crtc_assignments (MetaMonitorManager *manager,
|
||||||
gboolean save_timestamp,
|
gboolean save_timestamp,
|
||||||
@@ -651,7 +519,7 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana
|
|||||||
* must check that our new assignment actually changes anything, otherwise
|
* must check that our new assignment actually changes anything, otherwise
|
||||||
* just update the logical state.
|
* just update the logical state.
|
||||||
*/
|
*/
|
||||||
if (is_assignments_changed (manager,
|
if (meta_monitor_manager_get_has_changed (manager,
|
||||||
(MetaCrtcInfo **) crtc_infos->pdata,
|
(MetaCrtcInfo **) crtc_infos->pdata,
|
||||||
crtc_infos->len,
|
crtc_infos->len,
|
||||||
(MetaOutputInfo **) output_infos->pdata,
|
(MetaOutputInfo **) output_infos->pdata,
|
||||||
|
@@ -52,6 +52,7 @@
|
|||||||
#include "clutter/x11/clutter-x11.h"
|
#include "clutter/x11/clutter-x11.h"
|
||||||
#include "compositor/compositor-private.h"
|
#include "compositor/compositor-private.h"
|
||||||
#include "compositor/meta-compositor-x11.h"
|
#include "compositor/meta-compositor-x11.h"
|
||||||
|
#include "cogl/cogl-trace.h"
|
||||||
#include "core/bell.h"
|
#include "core/bell.h"
|
||||||
#include "core/boxes-private.h"
|
#include "core/boxes-private.h"
|
||||||
#include "core/display-private.h"
|
#include "core/display-private.h"
|
||||||
@@ -1481,6 +1482,8 @@ void
|
|||||||
meta_display_notify_window_created (MetaDisplay *display,
|
meta_display_notify_window_created (MetaDisplay *display,
|
||||||
MetaWindow *window)
|
MetaWindow *window)
|
||||||
{
|
{
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaDisplayNotifyWindowCreated,
|
||||||
|
"Display (notify window created)");
|
||||||
g_signal_emit (display, display_signals[WINDOW_CREATED], 0, window);
|
g_signal_emit (display, display_signals[WINDOW_CREATED], 0, window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -30,6 +30,7 @@
|
|||||||
#include "core/stack.h"
|
#include "core/stack.h"
|
||||||
|
|
||||||
#include "backends/meta-logical-monitor.h"
|
#include "backends/meta-logical-monitor.h"
|
||||||
|
#include "cogl/cogl-trace.h"
|
||||||
#include "core/frame.h"
|
#include "core/frame.h"
|
||||||
#include "core/meta-workspace-manager-private.h"
|
#include "core/meta-workspace-manager-private.h"
|
||||||
#include "core/window-private.h"
|
#include "core/window-private.h"
|
||||||
@@ -275,6 +276,9 @@ meta_stack_add (MetaStack *stack,
|
|||||||
{
|
{
|
||||||
MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
|
MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
|
||||||
|
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaStackAdd,
|
||||||
|
"Stack (add window)");
|
||||||
|
|
||||||
g_return_if_fail (meta_window_is_stackable (window));
|
g_return_if_fail (meta_window_is_stackable (window));
|
||||||
|
|
||||||
meta_topic (META_DEBUG_STACK, "Adding window %s to the stack\n", window->desc);
|
meta_topic (META_DEBUG_STACK, "Adding window %s to the stack\n", window->desc);
|
||||||
@@ -305,6 +309,9 @@ meta_stack_remove (MetaStack *stack,
|
|||||||
{
|
{
|
||||||
MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
|
MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
|
||||||
|
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaStackRemove,
|
||||||
|
"Stack (remove window)");
|
||||||
|
|
||||||
meta_topic (META_DEBUG_STACK, "Removing window %s from the stack\n", window->desc);
|
meta_topic (META_DEBUG_STACK, "Removing window %s from the stack\n", window->desc);
|
||||||
|
|
||||||
/* Set window to top position, so removing it will not leave gaps
|
/* Set window to top position, so removing it will not leave gaps
|
||||||
|
@@ -67,6 +67,7 @@
|
|||||||
|
|
||||||
#include "backends/meta-backend-private.h"
|
#include "backends/meta-backend-private.h"
|
||||||
#include "backends/meta-logical-monitor.h"
|
#include "backends/meta-logical-monitor.h"
|
||||||
|
#include "cogl/cogl-trace.h"
|
||||||
#include "core/boxes-private.h"
|
#include "core/boxes-private.h"
|
||||||
#include "core/constraints.h"
|
#include "core/constraints.h"
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
@@ -947,6 +948,15 @@ meta_window_calculate_main_logical_monitor (MetaWindow *window)
|
|||||||
&window_rect);
|
&window_rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_window_manage (MetaWindow *window)
|
||||||
|
{
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaWindowManage,
|
||||||
|
"Window (manage)");
|
||||||
|
|
||||||
|
META_WINDOW_GET_CLASS (window)->manage (window);
|
||||||
|
}
|
||||||
|
|
||||||
MetaWindow *
|
MetaWindow *
|
||||||
_meta_window_shared_new (MetaDisplay *display,
|
_meta_window_shared_new (MetaDisplay *display,
|
||||||
MetaWindowClientType client_type,
|
MetaWindowClientType client_type,
|
||||||
@@ -959,6 +969,9 @@ _meta_window_shared_new (MetaDisplay *display,
|
|||||||
MetaWorkspaceManager *workspace_manager = display->workspace_manager;
|
MetaWorkspaceManager *workspace_manager = display->workspace_manager;
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
|
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaWindowSharedNew,
|
||||||
|
"Window (new)");
|
||||||
|
|
||||||
g_assert (attrs != NULL);
|
g_assert (attrs != NULL);
|
||||||
|
|
||||||
meta_verbose ("attrs->map_state = %d (%s)\n",
|
meta_verbose ("attrs->map_state = %d (%s)\n",
|
||||||
@@ -1171,7 +1184,7 @@ _meta_window_shared_new (MetaDisplay *display,
|
|||||||
|
|
||||||
window->id = meta_display_generate_window_id (display);
|
window->id = meta_display_generate_window_id (display);
|
||||||
|
|
||||||
META_WINDOW_GET_CLASS (window)->manage (window);
|
meta_window_manage (window);
|
||||||
|
|
||||||
if (!window->override_redirect)
|
if (!window->override_redirect)
|
||||||
meta_window_update_icon_now (window, TRUE);
|
meta_window_update_icon_now (window, TRUE);
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
|
|
||||||
#include "backends/meta-backend-private.h"
|
#include "backends/meta-backend-private.h"
|
||||||
#include "backends/meta-logical-monitor.h"
|
#include "backends/meta-logical-monitor.h"
|
||||||
|
#include "cogl/cogl-trace.h"
|
||||||
#include "core/boxes-private.h"
|
#include "core/boxes-private.h"
|
||||||
#include "core/meta-workspace-manager-private.h"
|
#include "core/meta-workspace-manager-private.h"
|
||||||
#include "core/workspace-private.h"
|
#include "core/workspace-private.h"
|
||||||
@@ -359,6 +360,9 @@ void
|
|||||||
meta_workspace_add_window (MetaWorkspace *workspace,
|
meta_workspace_add_window (MetaWorkspace *workspace,
|
||||||
MetaWindow *window)
|
MetaWindow *window)
|
||||||
{
|
{
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaWorkspaceAddWindow,
|
||||||
|
"Workspace (add window)");
|
||||||
|
|
||||||
g_assert (g_list_find (workspace->mru_list, window) == NULL);
|
g_assert (g_list_find (workspace->mru_list, window) == NULL);
|
||||||
workspace->mru_list = g_list_prepend (workspace->mru_list, window);
|
workspace->mru_list = g_list_prepend (workspace->mru_list, window);
|
||||||
|
|
||||||
@@ -380,6 +384,9 @@ void
|
|||||||
meta_workspace_remove_window (MetaWorkspace *workspace,
|
meta_workspace_remove_window (MetaWorkspace *workspace,
|
||||||
MetaWindow *window)
|
MetaWindow *window)
|
||||||
{
|
{
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaWorkspaceRemoveWindow,
|
||||||
|
"Workspace (remove window)");
|
||||||
|
|
||||||
workspace->windows = g_list_remove (workspace->windows, window);
|
workspace->windows = g_list_remove (workspace->windows, window);
|
||||||
|
|
||||||
workspace->mru_list = g_list_remove (workspace->mru_list, window);
|
workspace->mru_list = g_list_remove (workspace->mru_list, window);
|
||||||
|
@@ -977,6 +977,7 @@ data_device_end_drag_grab (MetaWaylandDragGrab *drag_grab)
|
|||||||
{
|
{
|
||||||
meta_wayland_pointer_end_grab (drag_grab->generic.pointer);
|
meta_wayland_pointer_end_grab (drag_grab->generic.pointer);
|
||||||
meta_wayland_keyboard_end_grab (drag_grab->keyboard_grab.keyboard);
|
meta_wayland_keyboard_end_grab (drag_grab->keyboard_grab.keyboard);
|
||||||
|
meta_display_sync_wayland_input_focus (meta_get_display ());
|
||||||
}
|
}
|
||||||
|
|
||||||
g_slice_free (MetaWaylandDragGrab, drag_grab);
|
g_slice_free (MetaWaylandDragGrab, drag_grab);
|
||||||
@@ -1315,12 +1316,9 @@ data_device_start_drag (struct wl_client *client,
|
|||||||
surface, drag_source, icon_surface);
|
surface, drag_source, icon_surface);
|
||||||
|
|
||||||
if (meta_wayland_seat_has_keyboard (seat))
|
if (meta_wayland_seat_has_keyboard (seat))
|
||||||
{
|
|
||||||
meta_wayland_keyboard_set_focus (seat->keyboard, NULL);
|
|
||||||
meta_wayland_keyboard_start_grab (seat->keyboard,
|
meta_wayland_keyboard_start_grab (seat->keyboard,
|
||||||
&seat->data_device.current_grab->keyboard_grab);
|
&seat->data_device.current_grab->keyboard_grab);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
selection_data_source_destroyed (gpointer data, GObject *object_was_here)
|
selection_data_source_destroyed (gpointer data, GObject *object_was_here)
|
||||||
|
@@ -30,6 +30,7 @@
|
|||||||
#include "backends/meta-cursor-tracker-private.h"
|
#include "backends/meta-cursor-tracker-private.h"
|
||||||
#include "clutter/clutter.h"
|
#include "clutter/clutter.h"
|
||||||
#include "clutter/wayland/clutter-wayland-compositor.h"
|
#include "clutter/wayland/clutter-wayland-compositor.h"
|
||||||
|
#include "cogl/cogl-trace.h"
|
||||||
#include "cogl/cogl-wayland-server.h"
|
#include "cogl/cogl-wayland-server.h"
|
||||||
#include "compositor/meta-surface-actor-wayland.h"
|
#include "compositor/meta-surface-actor-wayland.h"
|
||||||
#include "compositor/meta-surface-actor.h"
|
#include "compositor/meta-surface-actor.h"
|
||||||
@@ -870,6 +871,9 @@ cleanup:
|
|||||||
static void
|
static void
|
||||||
meta_wayland_surface_commit (MetaWaylandSurface *surface)
|
meta_wayland_surface_commit (MetaWaylandSurface *surface)
|
||||||
{
|
{
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaWaylandSurfaceCommit,
|
||||||
|
"WaylandSurface (commit");
|
||||||
|
|
||||||
if (surface->pending->buffer &&
|
if (surface->pending->buffer &&
|
||||||
!meta_wayland_buffer_is_realized (surface->pending->buffer))
|
!meta_wayland_buffer_is_realized (surface->pending->buffer))
|
||||||
meta_wayland_buffer_realize (surface->pending->buffer);
|
meta_wayland_buffer_realize (surface->pending->buffer);
|
||||||
|
@@ -32,6 +32,7 @@
|
|||||||
#include "backends/meta-cursor-tracker-private.h"
|
#include "backends/meta-cursor-tracker-private.h"
|
||||||
#include "backends/x11/meta-backend-x11.h"
|
#include "backends/x11/meta-backend-x11.h"
|
||||||
#include "compositor/meta-compositor-x11.h"
|
#include "compositor/meta-compositor-x11.h"
|
||||||
|
#include "cogl/cogl-trace.h"
|
||||||
#include "core/bell.h"
|
#include "core/bell.h"
|
||||||
#include "core/display-private.h"
|
#include "core/display-private.h"
|
||||||
#include "core/meta-workspace-manager-private.h"
|
#include "core/meta-workspace-manager-private.h"
|
||||||
@@ -1766,6 +1767,9 @@ meta_x11_display_handle_xevent (MetaX11Display *x11_display,
|
|||||||
XIEvent *input_event;
|
XIEvent *input_event;
|
||||||
MetaCursorTracker *cursor_tracker;
|
MetaCursorTracker *cursor_tracker;
|
||||||
|
|
||||||
|
COGL_TRACE_BEGIN_SCOPED (MetaX11DisplayHandleXevent,
|
||||||
|
"X11Display (handle X11 event)");
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
meta_spew_event_print (x11_display, event);
|
meta_spew_event_print (x11_display, event);
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user