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,
|
||||
ClutterEvent *event,
|
||||
const ClutterEvent *to_discard);
|
||||
CLUTTER_EXPORT
|
||||
void clutter_device_manager_ensure_a11y_state (ClutterDeviceManager *device_manager);
|
||||
|
||||
/* input device */
|
||||
CLUTTER_EXPORT
|
||||
|
@ -607,6 +607,20 @@ _clutter_device_manager_compress_motion (ClutterDeviceManager *device_manager,
|
||||
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
|
||||
are_kbd_a11y_settings_equal (ClutterKbdA11ySettings *a,
|
||||
ClutterKbdA11ySettings *b)
|
||||
|
114
po/cs.po
114
po/cs.po
@ -12,8 +12,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mutter\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
||||
"POT-Creation-Date: 2019-02-04 17:52+0000\n"
|
||||
"PO-Revision-Date: 2019-02-12 14:21+0100\n"
|
||||
"POT-Creation-Date: 2019-08-06 00:49+0000\n"
|
||||
"PO-Revision-Date: 2019-09-03 22:19+0200\n"
|
||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\n"
|
||||
@ -396,7 +396,10 @@ msgid ""
|
||||
"proof. Currently possible keywords: • “scale-monitor-framebuffer” — makes "
|
||||
"mutter default to layout logical monitors in a logical pixel coordinate "
|
||||
"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 ""
|
||||
"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é "
|
||||
@ -407,21 +410,32 @@ msgstr ""
|
||||
"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, "
|
||||
"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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Postupně mění vestavěná nastavení monitoru"
|
||||
|
||||
@ -478,29 +492,39 @@ msgid "Re-enable shortcuts"
|
||||
msgstr "Znovu povolit klávesové zkratky"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:64
|
||||
msgid "Allow grabs with Xwayland"
|
||||
msgstr "Povolit zachytávání pomocí Xwaylandu"
|
||||
msgid "Allow X11 grabs to lock keyboard focus with Xwayland"
|
||||
msgstr ""
|
||||
"Povolit X11 zachytávání, aby mohl zabrat zaměření klávesnice pomocí Xwaylandu"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:65
|
||||
msgid ""
|
||||
"Allow keyboard grabs issued by X11 applications running in Xwayland to be "
|
||||
"taken into account. 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”."
|
||||
"Allow all keyboard events to be routed to X11 “override redirect” windows "
|
||||
"with a grab when running in Xwayland. This option is to support X11 clients "
|
||||
"which map an “override redirect” window (which do not receive keyboard "
|
||||
"focus) and issue a keyboard grab to force all keyboard events to that "
|
||||
"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 ""
|
||||
"Povolit, aby bylo bráno v úvahu zachytávání kláves, o které se stará "
|
||||
"aplikace X11 běžící v Xwaylandu. Aby bylo pod Waylandem zachytávání bráno v "
|
||||
"Umožňujs směrovat všechny události klávesnice do oken X11 typu „přebytí "
|
||||
"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 "
|
||||
"kořenového okna, nebo být mezi aplikacemi na bílé listině v klíči „xwayland-"
|
||||
"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"
|
||||
msgstr ""
|
||||
"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 ""
|
||||
"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 "
|
||||
@ -527,7 +551,7 @@ msgstr ""
|
||||
#. TRANSLATORS: This string refers to a button that switches between
|
||||
#. * different modes.
|
||||
#.
|
||||
#: src/backends/meta-input-settings.c:2423
|
||||
#: src/backends/meta-input-settings.c:2531
|
||||
#, c-format
|
||||
msgid "Mode Switch (Group %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'
|
||||
#. * mapping through the available outputs.
|
||||
#.
|
||||
#: src/backends/meta-input-settings.c:2446
|
||||
#: src/backends/meta-input-settings.c:2554
|
||||
msgid "Switch monitor"
|
||||
msgstr "Přepnout monitor"
|
||||
|
||||
#: src/backends/meta-input-settings.c:2448
|
||||
#: src/backends/meta-input-settings.c:2556
|
||||
msgid "Show on-screen help"
|
||||
msgstr "Zobrazit nápovědu na obrazovce"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:954
|
||||
#: src/backends/meta-monitor.c:223
|
||||
msgid "Built-in display"
|
||||
msgstr "Vestavěný displej"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:986
|
||||
#: src/backends/meta-monitor.c:252
|
||||
msgid "Unknown"
|
||||
msgstr "Neznámý"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:988
|
||||
#: src/backends/meta-monitor.c:254
|
||||
msgid "Unknown Display"
|
||||
msgstr "Neznámý displej"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:996
|
||||
#: src/backends/meta-monitor.c:262
|
||||
#, c-format
|
||||
msgctxt ""
|
||||
"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'"
|
||||
msgid "%s %s"
|
||||
msgstr "%s %s"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:1004
|
||||
#: src/backends/meta-monitor.c:270
|
||||
#, c-format
|
||||
msgctxt ""
|
||||
"This is a monitor vendor name followed by product/model name where size in "
|
||||
@ -570,15 +594,20 @@ msgctxt ""
|
||||
msgid "%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;
|
||||
#. * we have no way to get it to exit
|
||||
#: src/compositor/compositor.c:482
|
||||
#: src/compositor/compositor.c:510
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display “%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"
|
||||
msgstr "Událost zvonku"
|
||||
|
||||
@ -627,16 +656,16 @@ msgid "Run with X11 backend"
|
||||
msgstr "Spustit se serverem X11"
|
||||
|
||||
#. Translators: %s is a window title
|
||||
#: src/core/meta-close-dialog-default.c:150
|
||||
#: src/core/meta-close-dialog-default.c:151
|
||||
#, c-format
|
||||
msgid "“%s” is not responding."
|
||||
msgstr "„%s“ nereaguje."
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:152
|
||||
#: src/core/meta-close-dialog-default.c:153
|
||||
msgid "Application is not responding."
|
||||
msgstr "Aplikace nereaguje."
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:157
|
||||
#: src/core/meta-close-dialog-default.c:158
|
||||
msgid ""
|
||||
"You may choose to wait a short while for it to continue or force the "
|
||||
"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é "
|
||||
"ukončení aplikace."
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:164
|
||||
#: src/core/meta-close-dialog-default.c:165
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Vynutit ukončení"
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:164
|
||||
#: src/core/meta-close-dialog-default.c:165
|
||||
msgid "_Wait"
|
||||
msgstr "_Počkat"
|
||||
|
||||
@ -676,7 +705,7 @@ msgstr "Vypsat verzi"
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "Zásuvný modul Mutter, který se má použít"
|
||||
|
||||
#: src/core/prefs.c:1786
|
||||
#: src/core/prefs.c:1849
|
||||
#, c-format
|
||||
msgid "Workspace %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"
|
||||
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
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
msgstr "Selhala inicializace GDK\n"
|
||||
|
||||
#: src/x11/meta-x11-display.c:1032
|
||||
#: src/x11/meta-x11-display.c:1056
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display “%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
|
||||
msgid "Screen %d on display “%s” is invalid\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
|
||||
msgid ""
|
||||
"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 "
|
||||
"přihlášení je budete muset spustit ručně."
|
||||
|
||||
#: src/x11/window-props.c:568
|
||||
#: src/x11/window-props.c:569
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (na %s)"
|
||||
|
31
po/fur.po
31
po/fur.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mutter master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
||||
"POT-Creation-Date: 2019-07-18 21:05+0000\n"
|
||||
"PO-Revision-Date: 2019-07-28 10:06+0200\n"
|
||||
"POT-Creation-Date: 2019-08-06 00:49+0000\n"
|
||||
"PO-Revision-Date: 2019-09-03 09:53+0200\n"
|
||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
||||
"Language-Team: Friulian <fur@li.org>\n"
|
||||
"Language: fur\n"
|
||||
@ -393,7 +393,8 @@ msgid ""
|
||||
"space, while scaling monitor framebuffers instead of window content, to "
|
||||
"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."
|
||||
"must have CAP_SYS_NICE. Requires a restart. • “autostart-xwayland” — "
|
||||
"initializes Xwayland lazily if there are X11 clients. Requires restart."
|
||||
msgstr ""
|
||||
"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â "
|
||||
@ -407,29 +408,31 @@ msgstr ""
|
||||
"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 "
|
||||
"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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
msgstr "Anule tab popup"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:163
|
||||
#: data/org.gnome.mutter.gschema.xml.in:165
|
||||
msgid "Switch monitor configurations"
|
||||
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"
|
||||
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"
|
||||
msgstr "Cambie mût: mût %d"
|
||||
|
||||
#: src/x11/meta-x11-display.c:682
|
||||
#: src/x11/meta-x11-display.c:671
|
||||
#, c-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
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
|
||||
msgid "Failed to open X Window System display “%s”\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
|
||||
msgid "Screen %d on display “%s” is invalid\n"
|
||||
msgstr "Schermi %d su display “%s” no valit\n"
|
||||
|
50
po/hr.po
50
po/hr.po
@ -5,9 +5,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: metacity 0\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
||||
"POT-Creation-Date: 2019-06-20 08:28+0000\n"
|
||||
"PO-Revision-Date: 2019-06-22 18:00+0200\n"
|
||||
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
|
||||
"POT-Creation-Date: 2019-08-06 00:49+0000\n"
|
||||
"PO-Revision-Date: 2019-09-03 18:00+0200\n"
|
||||
"Last-Translator: gogo <linux.hr@protonmail.com>\n"
|
||||
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
|
||||
"Language: hr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -392,7 +392,8 @@ msgid ""
|
||||
"space, while scaling monitor framebuffers instead of window content, to "
|
||||
"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."
|
||||
"must have CAP_SYS_NICE. Requires a restart. • “autostart-xwayland” — "
|
||||
"initializes Xwayland lazily if there are X11 clients. Requires restart."
|
||||
msgstr ""
|
||||
"Za omogućavanje eksperimentalnih značajki, dodajte ključnu riječ značajke na "
|
||||
"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-"
|
||||
"scheduler” — čini zahtjeve muttera zakazanima u niskom prioritetu i "
|
||||
"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"
|
||||
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."
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Rotiraj ugrađeno podešavanje zaslona"
|
||||
|
||||
@ -540,7 +542,7 @@ msgstr ""
|
||||
#. TRANSLATORS: This string refers to a button that switches between
|
||||
#. * different modes.
|
||||
#.
|
||||
#: src/backends/meta-input-settings.c:2529
|
||||
#: src/backends/meta-input-settings.c:2531
|
||||
#, c-format
|
||||
msgid "Mode Switch (Group %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'
|
||||
#. * mapping through the available outputs.
|
||||
#.
|
||||
#: src/backends/meta-input-settings.c:2552
|
||||
#: src/backends/meta-input-settings.c:2554
|
||||
msgid "Switch monitor"
|
||||
msgstr "Prebaci zaslon"
|
||||
|
||||
#: src/backends/meta-input-settings.c:2554
|
||||
#: src/backends/meta-input-settings.c:2556
|
||||
msgid "Show on-screen help"
|
||||
msgstr "Prikaži zaslonsku pomoć"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:976
|
||||
#: src/backends/meta-monitor.c:223
|
||||
msgid "Built-in display"
|
||||
msgstr "Ugrađeni zaslon"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:1008
|
||||
#: src/backends/meta-monitor.c:252
|
||||
msgid "Unknown"
|
||||
msgstr "Nepoznat"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:1010
|
||||
#: src/backends/meta-monitor.c:254
|
||||
msgid "Unknown Display"
|
||||
msgstr "Nepoznat zaslon"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:1018
|
||||
#: src/backends/meta-monitor.c:262
|
||||
#, c-format
|
||||
msgctxt ""
|
||||
"This is a monitor vendor name, followed by a size in inches, like 'Dell 15\"'"
|
||||
msgid "%s %s"
|
||||
msgstr "%s %s"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:1026
|
||||
#: src/backends/meta-monitor.c:270
|
||||
#, c-format
|
||||
msgctxt ""
|
||||
"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"
|
||||
msgstr "Mutter priključak koji se koristi"
|
||||
|
||||
#: src/core/prefs.c:1834
|
||||
#: src/core/prefs.c:1849
|
||||
#, c-format
|
||||
msgid "Workspace %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"
|
||||
msgstr "Način prebacivanja: Način %d"
|
||||
|
||||
#: src/x11/meta-x11-display.c:681
|
||||
#: src/x11/meta-x11-display.c:671
|
||||
#, c-format
|
||||
msgid ""
|
||||
"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 "
|
||||
"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"
|
||||
msgstr "Neuspjelo GDK pokretanje\n"
|
||||
|
||||
#: src/x11/meta-x11-display.c:1047
|
||||
#: src/x11/meta-x11-display.c:1056
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display “%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
|
||||
msgid "Screen %d on display “%s” is invalid\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,
|
||||
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 */
|
||||
|
@ -483,6 +483,158 @@ meta_monitor_manager_ensure_initial_config (MetaMonitorManager *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
|
||||
meta_monitor_manager_apply_monitors_config (MetaMonitorManager *manager,
|
||||
MetaMonitorsConfig *config,
|
||||
|
@ -821,6 +821,7 @@ void meta_backend_native_resume (MetaBackendNative *native)
|
||||
META_MONITOR_MANAGER_KMS (monitor_manager);
|
||||
MetaInputSettings *input_settings;
|
||||
MetaIdleMonitor *idle_monitor;
|
||||
ClutterDeviceManager *device_manager;
|
||||
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaBackendNativeResume,
|
||||
"Backend (resume)");
|
||||
@ -839,4 +840,7 @@ void meta_backend_native_resume (MetaBackendNative *native)
|
||||
|
||||
input_settings = meta_backend_get_input_settings (backend);
|
||||
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,
|
||||
drmModeRes *drm_resources);
|
||||
|
||||
gboolean meta_kms_connector_is_same_as (MetaKmsConnector *connector,
|
||||
drmModeConnector *drm_connector);
|
||||
|
||||
#endif /* META_KMS_CONNECTOR_PRIVATE_H */
|
||||
|
@ -36,7 +36,6 @@ struct _MetaKmsConnector
|
||||
|
||||
uint32_t id;
|
||||
MetaConnectorType type;
|
||||
uint32_t type_id;
|
||||
char *name;
|
||||
|
||||
MetaKmsConnectorState *current_state;
|
||||
@ -563,15 +562,6 @@ make_connector_name (drmModeConnector *drm_connector)
|
||||
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 *
|
||||
meta_kms_connector_new (MetaKmsImplDevice *impl_device,
|
||||
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->id = drm_connector->connector_id;
|
||||
connector->type = (MetaConnectorType) drm_connector->connector_type;
|
||||
connector->type_id = drm_connector->connector_type_id;
|
||||
connector->name = make_connector_name (drm_connector);
|
||||
|
||||
find_property_ids (connector, impl_device, drm_connector);
|
||||
|
@ -24,7 +24,4 @@
|
||||
|
||||
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 */
|
||||
|
@ -108,31 +108,6 @@ meta_kms_device_get_primary_plane_for (MetaKmsDevice *device,
|
||||
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
|
||||
dispatch_in_impl (MetaKmsImpl *impl,
|
||||
gpointer user_data,
|
||||
|
@ -196,28 +196,10 @@ init_crtcs (MetaKmsImplDevice *impl_device,
|
||||
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
|
||||
update_connectors (MetaKmsImplDevice *impl_device,
|
||||
drmModeRes *drm_resources)
|
||||
init_connectors (MetaKmsImplDevice *impl_device,
|
||||
drmModeRes *drm_resources)
|
||||
{
|
||||
GList *connectors = NULL;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < drm_resources->count_connectors; i++)
|
||||
@ -230,19 +212,14 @@ update_connectors (MetaKmsImplDevice *impl_device,
|
||||
if (!drm_connector)
|
||||
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,
|
||||
drm_resources);
|
||||
connector = meta_kms_connector_new (impl_device, drm_connector,
|
||||
drm_resources);
|
||||
drmModeFreeConnector (drm_connector);
|
||||
|
||||
connectors = g_list_prepend (connectors, connector);
|
||||
impl_device->connectors = g_list_prepend (impl_device->connectors,
|
||||
connector);
|
||||
}
|
||||
|
||||
g_list_free_full (impl_device->connectors, g_object_unref);
|
||||
impl_device->connectors = g_list_reverse (connectors);
|
||||
impl_device->connectors = g_list_reverse (impl_device->connectors);
|
||||
}
|
||||
|
||||
static MetaKmsPlaneType
|
||||
@ -318,18 +295,13 @@ init_planes (MetaKmsImplDevice *impl_device)
|
||||
}
|
||||
|
||||
void
|
||||
meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device,
|
||||
MetaKmsUpdateStatesFlags flags)
|
||||
meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device)
|
||||
{
|
||||
drmModeRes *drm_resources;
|
||||
|
||||
meta_assert_in_kms_impl (meta_kms_impl_get_kms (impl_device->impl));
|
||||
|
||||
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,
|
||||
NULL);
|
||||
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;
|
||||
|
||||
init_crtcs (impl_device, drm_resources);
|
||||
init_connectors (impl_device, drm_resources);
|
||||
init_planes (impl_device);
|
||||
|
||||
update_connectors (impl_device, drm_resources);
|
||||
|
||||
drmModeFreeResources (drm_resources);
|
||||
|
||||
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);
|
||||
|
||||
void meta_kms_impl_device_update_states (MetaKmsImplDevice *impl_device,
|
||||
MetaKmsUpdateStatesFlags flags);
|
||||
void meta_kms_impl_device_update_states (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_is_waiting_for_impl_task (MetaKms *kms);
|
||||
|
||||
#define meta_assert_in_kms_impl(kms) \
|
||||
g_assert (meta_kms_in_impl_task (kms))
|
||||
#define meta_assert_not_in_kms_impl(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 */
|
||||
|
@ -56,10 +56,4 @@ typedef enum _MetaKmsDeviceFlag
|
||||
META_KMS_DEVICE_FLAG_PLATFORM_DEVICE = 1 << 1,
|
||||
} 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 */
|
||||
|
@ -119,15 +119,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
RESOURCES_CHANGED,
|
||||
|
||||
N_SIGNALS
|
||||
};
|
||||
|
||||
static int signals[N_SIGNALS];
|
||||
|
||||
typedef struct _MetaKmsCallbackData
|
||||
{
|
||||
MetaKmsCallback callback;
|
||||
@ -163,7 +154,6 @@ struct _MetaKms
|
||||
|
||||
MetaKmsImpl *impl;
|
||||
gboolean in_impl_task;
|
||||
gboolean waiting_for_impl_task;
|
||||
|
||||
GList *devices;
|
||||
|
||||
@ -176,8 +166,7 @@ struct _MetaKms
|
||||
G_DEFINE_TYPE (MetaKms, meta_kms, G_TYPE_OBJECT)
|
||||
|
||||
static void
|
||||
meta_kms_update_states_in_impl (MetaKms *kms,
|
||||
MetaKmsUpdateStatesFlags flags);
|
||||
meta_kms_update_states_in_impl (MetaKms *kms);
|
||||
|
||||
MetaKmsUpdate *
|
||||
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);
|
||||
|
||||
if (meta_kms_update_has_mode_set (update))
|
||||
meta_kms_update_states_in_impl (meta_kms_impl_get_kms (impl),
|
||||
META_KMS_UPDATE_STATES_FLAG_NONE);
|
||||
meta_kms_update_states_in_impl (meta_kms_impl_get_kms (impl));
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -334,9 +322,7 @@ meta_kms_run_impl_task_sync (MetaKms *kms,
|
||||
gboolean ret;
|
||||
|
||||
kms->in_impl_task = TRUE;
|
||||
kms->waiting_for_impl_task = TRUE;
|
||||
ret = func (kms->impl, user_data, error);
|
||||
kms->waiting_for_impl_task = FALSE;
|
||||
kms->in_impl_task = FALSE;
|
||||
|
||||
return ret;
|
||||
@ -454,15 +440,8 @@ meta_kms_in_impl_task (MetaKms *kms)
|
||||
return kms->in_impl_task;
|
||||
}
|
||||
|
||||
gboolean
|
||||
meta_kms_is_waiting_for_impl_task (MetaKms *kms)
|
||||
{
|
||||
return kms->waiting_for_impl_task;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_kms_update_states_in_impl (MetaKms *kms,
|
||||
MetaKmsUpdateStatesFlags flags)
|
||||
meta_kms_update_states_in_impl (MetaKms *kms)
|
||||
{
|
||||
GList *l;
|
||||
|
||||
@ -474,8 +453,9 @@ meta_kms_update_states_in_impl (MetaKms *kms,
|
||||
for (l = kms->devices; l; l = l->next)
|
||||
{
|
||||
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,
|
||||
GError **error)
|
||||
{
|
||||
MetaKms *kms = meta_kms_impl_get_kms (impl);;
|
||||
MetaKmsUpdateStatesFlags flags = GPOINTER_TO_UINT (user_data);
|
||||
MetaKms *kms = user_data;
|
||||
|
||||
meta_kms_update_states_in_impl (kms, flags);
|
||||
meta_kms_update_states_in_impl (kms);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
meta_kms_update_states_sync (MetaKms *kms,
|
||||
MetaKmsUpdateStatesFlags flags,
|
||||
GError **error)
|
||||
meta_kms_update_states_sync (MetaKms *kms,
|
||||
GError **error)
|
||||
{
|
||||
return meta_kms_run_impl_task_sync (kms,
|
||||
update_states_in_impl,
|
||||
GUINT_TO_POINTER (flags),
|
||||
kms,
|
||||
error);
|
||||
}
|
||||
|
||||
@ -508,12 +486,8 @@ handle_hotplug_event (MetaKms *kms)
|
||||
{
|
||||
g_autoptr (GError) error = NULL;
|
||||
|
||||
if (!meta_kms_update_states_sync (kms,
|
||||
META_KMS_UPDATE_STATES_FLAG_HOTPLUG,
|
||||
&error))
|
||||
if (!meta_kms_update_states_sync (kms, &error))
|
||||
g_warning ("Updating KMS state failed: %s", error->message);
|
||||
|
||||
g_signal_emit (kms, signals[RESOURCES_CHANGED], 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -616,12 +590,4 @@ meta_kms_class_init (MetaKmsClass *klass)
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
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;
|
||||
|
||||
gulong kms_resources_changed_handler_id;
|
||||
guint hotplug_handler_id;
|
||||
guint removed_handler_id;
|
||||
|
||||
guint logical_monitors_invalid : 1;
|
||||
};
|
||||
|
||||
struct _MetaMonitorManagerKmsClass
|
||||
@ -321,6 +324,7 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager *manager
|
||||
MetaMonitorsConfigMethod method,
|
||||
GError **error)
|
||||
{
|
||||
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
|
||||
GPtrArray *crtc_infos;
|
||||
GPtrArray *output_infos;
|
||||
|
||||
@ -344,6 +348,26 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager *manager
|
||||
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,
|
||||
(MetaCrtcInfo **) crtc_infos->pdata,
|
||||
crtc_infos->len,
|
||||
@ -355,6 +379,7 @@ meta_monitor_manager_kms_apply_monitors_config (MetaMonitorManager *manager
|
||||
|
||||
update_screen_size (manager, config);
|
||||
meta_monitor_manager_rebuild (manager, config);
|
||||
manager_kms->logical_monitors_invalid = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -473,13 +498,28 @@ meta_monitor_manager_kms_set_crtc_gamma (MetaMonitorManager *manager,
|
||||
static void
|
||||
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_on_hotplug (manager);
|
||||
}
|
||||
|
||||
static void
|
||||
on_kms_resources_changed (MetaKms *kms,
|
||||
MetaMonitorManager *manager)
|
||||
on_udev_hotplug (MetaUdev *udev,
|
||||
MetaMonitorManager *manager)
|
||||
{
|
||||
handle_hotplug_event (manager);
|
||||
}
|
||||
|
||||
static void
|
||||
on_udev_device_removed (MetaUdev *udev,
|
||||
GUdevDevice *device,
|
||||
MetaMonitorManager *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);
|
||||
MetaBackend *backend = meta_monitor_manager_get_backend (manager);
|
||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
||||
MetaKms *kms = meta_backend_native_get_kms (backend_native);
|
||||
MetaUdev *udev = meta_backend_native_get_udev (META_BACKEND_NATIVE (backend));
|
||||
|
||||
manager_kms->kms_resources_changed_handler_id =
|
||||
g_signal_connect (kms, "resources-changed",
|
||||
G_CALLBACK (on_kms_resources_changed), manager);
|
||||
manager_kms->hotplug_handler_id =
|
||||
g_signal_connect_after (udev, "hotplug",
|
||||
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
|
||||
@ -502,10 +544,12 @@ meta_monitor_manager_kms_disconnect_hotplug_handler (MetaMonitorManagerKms *mana
|
||||
{
|
||||
MetaMonitorManager *manager = META_MONITOR_MANAGER (manager_kms);
|
||||
MetaBackend *backend = meta_monitor_manager_get_backend (manager);
|
||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
||||
MetaKms *kms = meta_backend_native_get_kms (backend_native);
|
||||
MetaUdev *udev = meta_backend_native_get_udev (META_BACKEND_NATIVE (backend));
|
||||
|
||||
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
|
||||
|
@ -240,103 +240,6 @@ xrandr_set_crtc_config (MetaMonitorManagerXrandr *manager_xrandr,
|
||||
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 *
|
||||
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);
|
||||
}
|
||||
|
||||
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
|
||||
apply_crtc_assignments (MetaMonitorManager *manager,
|
||||
gboolean save_timestamp,
|
||||
@ -651,11 +519,11 @@ meta_monitor_manager_xrandr_apply_monitors_config (MetaMonitorManager *mana
|
||||
* must check that our new assignment actually changes anything, otherwise
|
||||
* just update the logical state.
|
||||
*/
|
||||
if (is_assignments_changed (manager,
|
||||
(MetaCrtcInfo **) crtc_infos->pdata,
|
||||
crtc_infos->len,
|
||||
(MetaOutputInfo **) output_infos->pdata,
|
||||
output_infos->len))
|
||||
if (meta_monitor_manager_get_has_changed (manager,
|
||||
(MetaCrtcInfo **) crtc_infos->pdata,
|
||||
crtc_infos->len,
|
||||
(MetaOutputInfo **) output_infos->pdata,
|
||||
output_infos->len))
|
||||
{
|
||||
apply_crtc_assignments (manager,
|
||||
TRUE,
|
||||
|
@ -52,6 +52,7 @@
|
||||
#include "clutter/x11/clutter-x11.h"
|
||||
#include "compositor/compositor-private.h"
|
||||
#include "compositor/meta-compositor-x11.h"
|
||||
#include "cogl/cogl-trace.h"
|
||||
#include "core/bell.h"
|
||||
#include "core/boxes-private.h"
|
||||
#include "core/display-private.h"
|
||||
@ -1481,6 +1482,8 @@ void
|
||||
meta_display_notify_window_created (MetaDisplay *display,
|
||||
MetaWindow *window)
|
||||
{
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaDisplayNotifyWindowCreated,
|
||||
"Display (notify window created)");
|
||||
g_signal_emit (display, display_signals[WINDOW_CREATED], 0, window);
|
||||
}
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "core/stack.h"
|
||||
|
||||
#include "backends/meta-logical-monitor.h"
|
||||
#include "cogl/cogl-trace.h"
|
||||
#include "core/frame.h"
|
||||
#include "core/meta-workspace-manager-private.h"
|
||||
#include "core/window-private.h"
|
||||
@ -275,6 +276,9 @@ meta_stack_add (MetaStack *stack,
|
||||
{
|
||||
MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
|
||||
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaStackAdd,
|
||||
"Stack (add window)");
|
||||
|
||||
g_return_if_fail (meta_window_is_stackable (window));
|
||||
|
||||
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;
|
||||
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaStackRemove,
|
||||
"Stack (remove window)");
|
||||
|
||||
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
|
||||
|
@ -67,6 +67,7 @@
|
||||
|
||||
#include "backends/meta-backend-private.h"
|
||||
#include "backends/meta-logical-monitor.h"
|
||||
#include "cogl/cogl-trace.h"
|
||||
#include "core/boxes-private.h"
|
||||
#include "core/constraints.h"
|
||||
#include "core/core.h"
|
||||
@ -947,6 +948,15 @@ meta_window_calculate_main_logical_monitor (MetaWindow *window)
|
||||
&window_rect);
|
||||
}
|
||||
|
||||
static void
|
||||
meta_window_manage (MetaWindow *window)
|
||||
{
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaWindowManage,
|
||||
"Window (manage)");
|
||||
|
||||
META_WINDOW_GET_CLASS (window)->manage (window);
|
||||
}
|
||||
|
||||
MetaWindow *
|
||||
_meta_window_shared_new (MetaDisplay *display,
|
||||
MetaWindowClientType client_type,
|
||||
@ -959,6 +969,9 @@ _meta_window_shared_new (MetaDisplay *display,
|
||||
MetaWorkspaceManager *workspace_manager = display->workspace_manager;
|
||||
MetaWindow *window;
|
||||
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaWindowSharedNew,
|
||||
"Window (new)");
|
||||
|
||||
g_assert (attrs != NULL);
|
||||
|
||||
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);
|
||||
|
||||
META_WINDOW_GET_CLASS (window)->manage (window);
|
||||
meta_window_manage (window);
|
||||
|
||||
if (!window->override_redirect)
|
||||
meta_window_update_icon_now (window, TRUE);
|
||||
|
@ -40,6 +40,7 @@
|
||||
|
||||
#include "backends/meta-backend-private.h"
|
||||
#include "backends/meta-logical-monitor.h"
|
||||
#include "cogl/cogl-trace.h"
|
||||
#include "core/boxes-private.h"
|
||||
#include "core/meta-workspace-manager-private.h"
|
||||
#include "core/workspace-private.h"
|
||||
@ -359,6 +360,9 @@ void
|
||||
meta_workspace_add_window (MetaWorkspace *workspace,
|
||||
MetaWindow *window)
|
||||
{
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaWorkspaceAddWindow,
|
||||
"Workspace (add window)");
|
||||
|
||||
g_assert (g_list_find (workspace->mru_list, window) == NULL);
|
||||
workspace->mru_list = g_list_prepend (workspace->mru_list, window);
|
||||
|
||||
@ -380,6 +384,9 @@ void
|
||||
meta_workspace_remove_window (MetaWorkspace *workspace,
|
||||
MetaWindow *window)
|
||||
{
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaWorkspaceRemoveWindow,
|
||||
"Workspace (remove window)");
|
||||
|
||||
workspace->windows = g_list_remove (workspace->windows, 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_keyboard_end_grab (drag_grab->keyboard_grab.keyboard);
|
||||
meta_display_sync_wayland_input_focus (meta_get_display ());
|
||||
}
|
||||
|
||||
g_slice_free (MetaWaylandDragGrab, drag_grab);
|
||||
@ -1315,11 +1316,8 @@ data_device_start_drag (struct wl_client *client,
|
||||
surface, drag_source, icon_surface);
|
||||
|
||||
if (meta_wayland_seat_has_keyboard (seat))
|
||||
{
|
||||
meta_wayland_keyboard_set_focus (seat->keyboard, NULL);
|
||||
meta_wayland_keyboard_start_grab (seat->keyboard,
|
||||
&seat->data_device.current_grab->keyboard_grab);
|
||||
}
|
||||
meta_wayland_keyboard_start_grab (seat->keyboard,
|
||||
&seat->data_device.current_grab->keyboard_grab);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "backends/meta-cursor-tracker-private.h"
|
||||
#include "clutter/clutter.h"
|
||||
#include "clutter/wayland/clutter-wayland-compositor.h"
|
||||
#include "cogl/cogl-trace.h"
|
||||
#include "cogl/cogl-wayland-server.h"
|
||||
#include "compositor/meta-surface-actor-wayland.h"
|
||||
#include "compositor/meta-surface-actor.h"
|
||||
@ -870,6 +871,9 @@ cleanup:
|
||||
static void
|
||||
meta_wayland_surface_commit (MetaWaylandSurface *surface)
|
||||
{
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaWaylandSurfaceCommit,
|
||||
"WaylandSurface (commit");
|
||||
|
||||
if (surface->pending->buffer &&
|
||||
!meta_wayland_buffer_is_realized (surface->pending->buffer))
|
||||
meta_wayland_buffer_realize (surface->pending->buffer);
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "backends/meta-cursor-tracker-private.h"
|
||||
#include "backends/x11/meta-backend-x11.h"
|
||||
#include "compositor/meta-compositor-x11.h"
|
||||
#include "cogl/cogl-trace.h"
|
||||
#include "core/bell.h"
|
||||
#include "core/display-private.h"
|
||||
#include "core/meta-workspace-manager-private.h"
|
||||
@ -1766,6 +1767,9 @@ meta_x11_display_handle_xevent (MetaX11Display *x11_display,
|
||||
XIEvent *input_event;
|
||||
MetaCursorTracker *cursor_tracker;
|
||||
|
||||
COGL_TRACE_BEGIN_SCOPED (MetaX11DisplayHandleXevent,
|
||||
"X11Display (handle X11 event)");
|
||||
|
||||
#if 0
|
||||
meta_spew_event_print (x11_display, event);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user