Compare commits
5 Commits
wip/carlos
...
3.30.2
Author | SHA1 | Date | |
---|---|---|---|
bcd6103c44 | |||
8eabfaaa8b | |||
1d863f4d3e | |||
1abab3fe2e | |||
d364fa50ba |
15
NEWS
15
NEWS
@ -1,3 +1,18 @@
|
||||
3.30.2
|
||||
======
|
||||
* Fix handling of non-UTF8 encodings [Florian; !227]
|
||||
* Fix memory leaks introduced in 3.30.1 [Jonas; #653]
|
||||
* Work around hangul text input bug [Carlos; gtk#1365]
|
||||
* Fix crash when restarting window manager [Andrea; gnome-shell#595]
|
||||
* Fix crash on monitor hotplug [Olivier; #189]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Andrea Azzarone, Olivier Fourdan, Carlos Garnacho,
|
||||
Florian Müllner, Akira Nakajima
|
||||
|
||||
Translators:
|
||||
Dušan Kazik [sk]
|
||||
|
||||
3.30.1
|
||||
======
|
||||
* Improve trackball detection [Tony; #258]
|
||||
|
@ -2,7 +2,7 @@ AC_PREREQ(2.62)
|
||||
|
||||
m4_define([mutter_major_version], [3])
|
||||
m4_define([mutter_minor_version], [30])
|
||||
m4_define([mutter_micro_version], [1])
|
||||
m4_define([mutter_micro_version], [2])
|
||||
|
||||
m4_define([mutter_version],
|
||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||
|
113
po/sk.po
113
po/sk.po
@ -13,8 +13,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mutter\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/mutter/issues\n"
|
||||
"POT-Creation-Date: 2018-02-06 04:14+0000\n"
|
||||
"PO-Revision-Date: 2018-03-17 21:52+0100\n"
|
||||
"POT-Creation-Date: 2018-10-22 16:18+0000\n"
|
||||
"PO-Revision-Date: 2018-10-27 21:19+0200\n"
|
||||
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
|
||||
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
|
||||
"Language: sk\n"
|
||||
@ -22,7 +22,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"X-Generator: Poedit 2.2\n"
|
||||
|
||||
#: data/50-mutter-navigation.xml:6
|
||||
msgid "Navigation"
|
||||
@ -468,29 +468,26 @@ 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. • “remote-desktop” — "
|
||||
"enables remote desktop support. To support remote desktop with screen "
|
||||
"sharing, “screen-cast” must also be enabled. • “screen-cast” — enables "
|
||||
"screen cast support."
|
||||
"manage HiDPI monitors. Does not require a restart."
|
||||
msgstr ""
|
||||
|
||||
# summary
|
||||
#: data/org.gnome.mutter.gschema.xml.in:145
|
||||
#: data/org.gnome.mutter.gschema.xml.in:141
|
||||
msgid "Select window from tab popup"
|
||||
msgstr "Vybrať okno z rozbaľovacej ponuky tabulátora"
|
||||
|
||||
# summary
|
||||
#: data/org.gnome.mutter.gschema.xml.in:150
|
||||
#: data/org.gnome.mutter.gschema.xml.in:146
|
||||
msgid "Cancel tab popup"
|
||||
msgstr "Zrušit rozbaľovaciu ponuku tabulátora"
|
||||
|
||||
# PK: predpokladam ze to prepisane medzi tlacidlami
|
||||
# description
|
||||
#: data/org.gnome.mutter.gschema.xml.in:155
|
||||
#: data/org.gnome.mutter.gschema.xml.in:151
|
||||
msgid "Switch monitor configurations"
|
||||
msgstr "Prepnúť nastavenia monitorov"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:160
|
||||
#: data/org.gnome.mutter.gschema.xml.in:156
|
||||
msgid "Rotates the built-in monitor configuration"
|
||||
msgstr "Otočí nastavenie vstavaného monitora"
|
||||
|
||||
@ -587,7 +584,7 @@ msgstr ""
|
||||
#. TRANSLATORS: This string refers to a button that switches between
|
||||
#. * different modes.
|
||||
#.
|
||||
#: src/backends/meta-input-settings.c:2260
|
||||
#: src/backends/meta-input-settings.c:2310
|
||||
#, c-format
|
||||
msgid "Mode Switch (Group %d)"
|
||||
msgstr "Prepínač režimu (skupina č. %d)"
|
||||
@ -597,30 +594,30 @@ msgstr "Prepí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:2283
|
||||
#: src/backends/meta-input-settings.c:2333
|
||||
msgid "Switch monitor"
|
||||
msgstr "Prepnúť monitor"
|
||||
|
||||
#: src/backends/meta-input-settings.c:2285
|
||||
#: src/backends/meta-input-settings.c:2335
|
||||
msgid "Show on-screen help"
|
||||
msgstr "Zobraziť pomocníka na obrazovke"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:900
|
||||
#: src/backends/meta-monitor-manager.c:888
|
||||
msgid "Built-in display"
|
||||
msgstr "Vstavaný displej"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:923
|
||||
#: src/backends/meta-monitor-manager.c:911
|
||||
msgid "Unknown"
|
||||
msgstr "Neznámy"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:925
|
||||
#: src/backends/meta-monitor-manager.c:913
|
||||
msgid "Unknown Display"
|
||||
msgstr "Neznámy displej"
|
||||
|
||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
|
||||
#. * size in inches, like 'Dell 15"'
|
||||
#.
|
||||
#: src/backends/meta-monitor-manager.c:933
|
||||
#: src/backends/meta-monitor-manager.c:921
|
||||
#, c-format
|
||||
msgid "%s %s"
|
||||
msgstr "%s %s"
|
||||
@ -634,86 +631,84 @@ msgid ""
|
||||
msgstr ""
|
||||
"Pre obrazovku č. %i na displeji „%s“ je spustený už iný správca rozloženia."
|
||||
|
||||
#: src/core/bell.c:194
|
||||
#: src/core/bell.c:254
|
||||
msgid "Bell event"
|
||||
msgstr "Udalosť zvončeka"
|
||||
|
||||
# X window system preloz, napr. system na spravu okien X
|
||||
#: src/core/display.c:608
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display “%s”\n"
|
||||
msgstr "Zlyhalo otvorenie displeja systému na správu okien X „%s“\n"
|
||||
|
||||
# cmd desc
|
||||
#: src/core/main.c:190
|
||||
#: src/core/main.c:191
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Zakáže pripojenia k správcovi relácií"
|
||||
|
||||
# cmd desc
|
||||
#: src/core/main.c:196
|
||||
#: src/core/main.c:197
|
||||
msgid "Replace the running window manager"
|
||||
msgstr "Nahradí bežiaceho správcu okien"
|
||||
|
||||
# cmd desc
|
||||
#: src/core/main.c:202
|
||||
#: src/core/main.c:203
|
||||
msgid "Specify session management ID"
|
||||
msgstr "Zadá identifikátor správy relácií"
|
||||
|
||||
#: src/core/main.c:207
|
||||
#: src/core/main.c:208
|
||||
msgid "X Display to use"
|
||||
msgstr "X displej, ktorý bude použitý"
|
||||
|
||||
# cmd desc
|
||||
#: src/core/main.c:213
|
||||
#: src/core/main.c:214
|
||||
msgid "Initialize session from savefile"
|
||||
msgstr "Inicializuje reláciu z uloženého súboru"
|
||||
|
||||
# cmd desc
|
||||
#: src/core/main.c:219
|
||||
#: src/core/main.c:220
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "Použije synchrónne volania X"
|
||||
|
||||
# cmd desc
|
||||
#: src/core/main.c:226
|
||||
#: src/core/main.c:227
|
||||
msgid "Run as a wayland compositor"
|
||||
msgstr "Spustí ako kompozitor protokolu wayland"
|
||||
|
||||
# cmd desc
|
||||
#: src/core/main.c:232
|
||||
#: src/core/main.c:233
|
||||
msgid "Run as a nested compositor"
|
||||
msgstr "Spustí ako kompozitor s vnoreným režimom"
|
||||
|
||||
#: src/core/main.c:240
|
||||
#: src/core/main.c:239
|
||||
msgid "Run wayland compositor without starting Xwayland"
|
||||
msgstr ""
|
||||
|
||||
#: src/core/main.c:247
|
||||
msgid "Run as a full display server, rather than nested"
|
||||
msgstr "Spustí ako plnohodnotný zobrazovací server, namiesto vnoreného režimu"
|
||||
|
||||
#: src/core/main.c:246
|
||||
#: src/core/main.c:253
|
||||
msgid "Run with X11 backend"
|
||||
msgstr "Spustí s obslužným programom X11"
|
||||
|
||||
# %s is a window title
|
||||
#. Translators: %s is a window title
|
||||
#: src/core/meta-close-dialog-default.c:147
|
||||
#: src/core/meta-close-dialog-default.c:148
|
||||
#, c-format
|
||||
msgid "“%s” is not responding."
|
||||
msgstr "„%s“ neodpovedá."
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:149
|
||||
#: src/core/meta-close-dialog-default.c:150
|
||||
msgid "Application is not responding."
|
||||
msgstr "Aplikácia neodpovedá."
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:154
|
||||
#: src/core/meta-close-dialog-default.c:155
|
||||
msgid ""
|
||||
"You may choose to wait a short while for it to continue or force the "
|
||||
"application to quit entirely."
|
||||
msgstr ""
|
||||
"Môžete chvíľu počkať na pokračovanie aplikácie, alebo ju môžete ukončiť."
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:161
|
||||
#: src/core/meta-close-dialog-default.c:162
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Vynútiť ukončenie"
|
||||
|
||||
#: src/core/meta-close-dialog-default.c:161
|
||||
#: src/core/meta-close-dialog-default.c:162
|
||||
msgid "_Wait"
|
||||
msgstr "_Počkať"
|
||||
|
||||
@ -742,12 +737,21 @@ msgstr "Zobrazí verziu"
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "Použije zásuvný modul Mutter"
|
||||
|
||||
#: src/core/prefs.c:1997
|
||||
#: src/core/prefs.c:1787
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Pracovný priestor č. %d"
|
||||
|
||||
#: src/core/screen.c:583
|
||||
#: src/core/util.c:120
|
||||
msgid "Mutter was compiled without support for verbose mode\n"
|
||||
msgstr "Mutter bol skompilovaný bez výpisu podrobností pri behu\n"
|
||||
|
||||
#: src/wayland/meta-wayland-tablet-pad.c:567
|
||||
#, c-format
|
||||
msgid "Mode Switch: Mode %d"
|
||||
msgstr "Prepínač režimu: Režim č. %d"
|
||||
|
||||
#: src/x11/meta-x11-display.c:666
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Display “%s” already has a window manager; try using the --replace option to "
|
||||
@ -756,21 +760,22 @@ msgstr ""
|
||||
"Displej „%s“ už má správcu okien. Skúste použiť prepínač --replace, aby sa "
|
||||
"aktuálny správca nahradil."
|
||||
|
||||
#: src/core/screen.c:668
|
||||
#: src/x11/meta-x11-display.c:1010
|
||||
msgid "Failed to initialize GDK\n"
|
||||
msgstr "Zlyhala inicializácia rozhrania GDK\n"
|
||||
|
||||
# X window system preloz, napr. system na spravu okien X
|
||||
#: src/x11/meta-x11-display.c:1034
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display “%s”\n"
|
||||
msgstr "Zlyhalo otvorenie displeja systému na správu okien X „%s“\n"
|
||||
|
||||
#: src/x11/meta-x11-display.c:1117
|
||||
#, c-format
|
||||
msgid "Screen %d on display “%s” is invalid\n"
|
||||
msgstr "Obrazovka č. %d na displeji „%s“ nie je platná\n"
|
||||
|
||||
#: src/core/util.c:120
|
||||
msgid "Mutter was compiled without support for verbose mode\n"
|
||||
msgstr "Mutter bol skompilovaný bez výpisu podrobností pri behu\n"
|
||||
|
||||
#: src/wayland/meta-wayland-tablet-pad.c:563
|
||||
#, c-format
|
||||
msgid "Mode Switch: Mode %d"
|
||||
msgstr "Prepínač režimu: Režim č. %d"
|
||||
|
||||
#: src/x11/session.c:1818
|
||||
#: src/x11/session.c:1819
|
||||
msgid ""
|
||||
"These windows do not support “save current setup” and will have to be "
|
||||
"restarted manually next time you log in."
|
||||
@ -779,7 +784,7 @@ msgstr ""
|
||||
"prihlásení ich budete musieť znovu spustiť ručne."
|
||||
|
||||
# window title; wm_client_machine
|
||||
#: src/x11/window-props.c:559
|
||||
#: src/x11/window-props.c:565
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (na %s)"
|
||||
|
@ -82,6 +82,7 @@ typedef enum
|
||||
META_MOVE_RESIZE_UNMAXIMIZE = 1 << 6,
|
||||
META_MOVE_RESIZE_FORCE_MOVE = 1 << 7,
|
||||
META_MOVE_RESIZE_WAYLAND_STATE_CHANGED = 1 << 8,
|
||||
META_MOVE_RESIZE_FORCE_UPDATE_MONITOR = 1 << 9,
|
||||
} MetaMoveResizeFlags;
|
||||
|
||||
typedef enum
|
||||
|
@ -121,6 +121,7 @@ static gboolean queue_calc_showing_func (MetaWindow *window,
|
||||
void *data);
|
||||
|
||||
static void meta_window_move_between_rects (MetaWindow *window,
|
||||
MetaMoveResizeFlags move_resize_flags,
|
||||
const MetaRectangle *old_area,
|
||||
const MetaRectangle *new_area);
|
||||
|
||||
@ -3865,6 +3866,7 @@ meta_window_update_for_monitors_changed (MetaWindow *window)
|
||||
* monitors changed and the same index could be refereing
|
||||
* to a different monitor. */
|
||||
meta_window_move_between_rects (window,
|
||||
META_MOVE_RESIZE_FORCE_UPDATE_MONITOR,
|
||||
&old->rect,
|
||||
&new->rect);
|
||||
}
|
||||
@ -4046,6 +4048,8 @@ meta_window_move_resize_internal (MetaWindow *window,
|
||||
update_monitor_flags = META_WINDOW_UPDATE_MONITOR_FLAGS_NONE;
|
||||
if (flags & META_MOVE_RESIZE_USER_ACTION)
|
||||
update_monitor_flags |= META_WINDOW_UPDATE_MONITOR_FLAGS_USER_OP;
|
||||
if (flags & META_MOVE_RESIZE_FORCE_UPDATE_MONITOR)
|
||||
update_monitor_flags |= META_WINDOW_UPDATE_MONITOR_FLAGS_FORCE;
|
||||
|
||||
if (window->monitor)
|
||||
{
|
||||
@ -4105,6 +4109,7 @@ meta_window_move_frame (MetaWindow *window,
|
||||
|
||||
static void
|
||||
meta_window_move_between_rects (MetaWindow *window,
|
||||
MetaMoveResizeFlags move_resize_flags,
|
||||
const MetaRectangle *old_area,
|
||||
const MetaRectangle *new_area)
|
||||
{
|
||||
@ -4128,7 +4133,12 @@ meta_window_move_between_rects (MetaWindow *window,
|
||||
window->saved_rect.x = window->unconstrained_rect.x;
|
||||
window->saved_rect.y = window->unconstrained_rect.y;
|
||||
|
||||
meta_window_move_resize_now (window);
|
||||
meta_window_move_resize_internal (window,
|
||||
move_resize_flags |
|
||||
META_MOVE_RESIZE_MOVE_ACTION |
|
||||
META_MOVE_RESIZE_RESIZE_ACTION,
|
||||
NorthWestGravity,
|
||||
window->unconstrained_rect);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -4189,14 +4199,14 @@ meta_window_move_to_monitor (MetaWindow *window,
|
||||
window->unconstrained_rect.height == 0 ||
|
||||
!meta_rectangle_overlap (&window->unconstrained_rect, &old_area))
|
||||
{
|
||||
meta_window_move_between_rects (window, NULL, &new_area);
|
||||
meta_window_move_between_rects (window, 0, NULL, &new_area);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (monitor == window->monitor->number)
|
||||
return;
|
||||
|
||||
meta_window_move_between_rects (window, &old_area, &new_area);
|
||||
meta_window_move_between_rects (window, 0, &old_area, &new_area);
|
||||
}
|
||||
|
||||
window->preferred_output_winsys_id = window->monitor->winsys_id;
|
||||
|
@ -70,6 +70,8 @@ struct _MetaWaylandTextInput
|
||||
uint32_t content_type_purpose;
|
||||
uint32_t text_change_cause;
|
||||
gboolean enabled;
|
||||
|
||||
guint done_idle_id;
|
||||
};
|
||||
|
||||
struct _MetaWaylandTextInputFocus
|
||||
@ -114,6 +116,52 @@ increment_serial (MetaWaylandTextInput *text_input,
|
||||
GUINT_TO_POINTER (serial + 1));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
done_idle_cb (gpointer user_data)
|
||||
{
|
||||
ClutterInputFocus *focus = user_data;
|
||||
MetaWaylandTextInput *text_input;
|
||||
struct wl_resource *resource;
|
||||
|
||||
text_input = META_WAYLAND_TEXT_INPUT_FOCUS (focus)->text_input;
|
||||
|
||||
wl_resource_for_each (resource, &text_input->focus_resource_list)
|
||||
{
|
||||
zwp_text_input_v3_send_done (resource,
|
||||
lookup_serial (text_input, resource));
|
||||
}
|
||||
|
||||
text_input->done_idle_id = 0;
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_wayland_text_input_focus_defer_done (ClutterInputFocus *focus)
|
||||
{
|
||||
MetaWaylandTextInput *text_input;
|
||||
|
||||
text_input = META_WAYLAND_TEXT_INPUT_FOCUS (focus)->text_input;
|
||||
|
||||
if (text_input->done_idle_id != 0)
|
||||
return;
|
||||
|
||||
/* This operates on 3 principles:
|
||||
* - GDBus uses G_PRIORITY_DEFAULT to put messages in the thread default main
|
||||
* context.
|
||||
* - All relevant ClutterInputFocus methods are ultimately backed by
|
||||
* DBus methods inside IBus.
|
||||
* - We want to run .done after them all. The slightly lower
|
||||
* G_PRIORITY_DEFAULT + 1 priority should ensure we at least group
|
||||
* all messages seen so far.
|
||||
*
|
||||
* FIXME: .done may be delayed indefinitely if there's a high enough
|
||||
* priority idle source in the main loop. It's unlikely that
|
||||
* recurring idles run at this high priority though.
|
||||
*/
|
||||
text_input->done_idle_id = g_idle_add_full (G_PRIORITY_DEFAULT + 1,
|
||||
done_idle_cb, focus, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
meta_wayland_text_input_focus_delete_surrounding (ClutterInputFocus *focus,
|
||||
guint cursor,
|
||||
@ -127,9 +175,9 @@ meta_wayland_text_input_focus_delete_surrounding (ClutterInputFocus *focus,
|
||||
wl_resource_for_each (resource, &text_input->focus_resource_list)
|
||||
{
|
||||
zwp_text_input_v3_send_delete_surrounding_text (resource, cursor, len);
|
||||
zwp_text_input_v3_send_done (resource,
|
||||
lookup_serial (text_input, resource));
|
||||
}
|
||||
|
||||
meta_wayland_text_input_focus_defer_done (focus);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -145,9 +193,9 @@ meta_wayland_text_input_focus_commit_text (ClutterInputFocus *focus,
|
||||
{
|
||||
zwp_text_input_v3_send_preedit_string (resource, NULL, 0, 0);
|
||||
zwp_text_input_v3_send_commit_string (resource, text);
|
||||
zwp_text_input_v3_send_done (resource,
|
||||
lookup_serial (text_input, resource));
|
||||
}
|
||||
|
||||
meta_wayland_text_input_focus_defer_done (focus);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -163,9 +211,9 @@ meta_wayland_text_input_focus_set_preedit_text (ClutterInputFocus *focus,
|
||||
wl_resource_for_each (resource, &text_input->focus_resource_list)
|
||||
{
|
||||
zwp_text_input_v3_send_preedit_string (resource, text, cursor, cursor);
|
||||
zwp_text_input_v3_send_done (resource,
|
||||
lookup_serial (text_input, resource));
|
||||
}
|
||||
|
||||
meta_wayland_text_input_focus_defer_done (focus);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1138,6 +1138,18 @@ process_selection_request (MetaX11Display *x11_display,
|
||||
meta_verbose ("Handled selection request\n");
|
||||
}
|
||||
|
||||
static gboolean
|
||||
close_display_idle_cb (gpointer user_data)
|
||||
{
|
||||
MetaX11Display *x11_display = META_X11_DISPLAY (user_data);
|
||||
|
||||
meta_display_close (x11_display->display,
|
||||
x11_display->xselectionclear_timestamp);
|
||||
x11_display->display_close_idle = 0;
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
process_selection_clear (MetaX11Display *x11_display,
|
||||
XEvent *event)
|
||||
@ -1163,8 +1175,13 @@ process_selection_clear (MetaX11Display *x11_display,
|
||||
meta_verbose ("Got selection clear for on display %s\n",
|
||||
x11_display->name);
|
||||
|
||||
meta_display_close (x11_display->display,
|
||||
event->xselectionclear.time);
|
||||
/* We can't close a GdkDisplay in an even handler. */
|
||||
if (!x11_display->display_close_idle)
|
||||
{
|
||||
x11_display->xselectionclear_timestamp = event->xselectionclear.time;
|
||||
x11_display->display_close_idle = g_idle_add (close_display_idle_cb, x11_display);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -1818,11 +1835,8 @@ meta_x11_display_handle_xevent (MetaX11Display *x11_display,
|
||||
{
|
||||
if (process_selection_clear (x11_display, event))
|
||||
{
|
||||
/* This means we called meta_display_unmanage_screen, which
|
||||
* means the MetaDisplay is effectively dead. We don't want
|
||||
* to poke into display->current_time below, since that would
|
||||
* crash, so just directly return. */
|
||||
return TRUE;
|
||||
bypass_gtk = TRUE;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -92,6 +92,9 @@ struct _MetaX11Display
|
||||
Atom wm_sn_atom;
|
||||
guint32 wm_sn_timestamp;
|
||||
|
||||
guint display_close_idle;
|
||||
guint32 xselectionclear_timestamp;
|
||||
|
||||
Window wm_cm_selection_window;
|
||||
|
||||
Window composite_overlay_window;
|
||||
|
@ -215,6 +215,12 @@ meta_x11_display_dispose (GObject *object)
|
||||
x11_display->gdk_display = NULL;
|
||||
}
|
||||
|
||||
if (x11_display->display_close_idle)
|
||||
{
|
||||
g_source_remove (x11_display->display_close_idle);
|
||||
x11_display->display_close_idle = 0;
|
||||
}
|
||||
|
||||
g_free (x11_display->name);
|
||||
x11_display->name = NULL;
|
||||
|
||||
@ -1186,6 +1192,9 @@ meta_x11_display_new (MetaDisplay *display, GError **error)
|
||||
x11_display->timestamp_pinging_window = None;
|
||||
x11_display->wm_sn_selection_window = None;
|
||||
|
||||
x11_display->display_close_idle = 0;
|
||||
x11_display->xselectionclear_timestamp = 0;
|
||||
|
||||
x11_display->last_bell_time = 0;
|
||||
x11_display->focus_serial = 0;
|
||||
x11_display->server_focus_window = None;
|
||||
|
Reference in New Issue
Block a user